嵌入式软件开发好,还是硬件开发好?
近些天许多学嵌入式的小伙伴前来咨询,问:嵌入式软件开发好,还是硬件开发好?在小编看来,想要成为一名优秀的嵌入式开发师,还是软硬兼修为好,我们来看看这是为啥。
软硬兼修,后顾无忧
据网友光华居士表示“嵌入式软件工程师,两手都要硬!”嵌入式软件编程显然不同于PC软件开发,它和硬件密切相关。想写好嵌入式软件代码,就必须了解清楚所使用MCU的硬件特性、各个外围电路和接口电路的原理。不仅要深挖细究MCU内核架构的知识,是否支持浮点处理器/DSP,是否支持协处理器、指令数据缓存。
还要了解MCU的编程模型、各种存储器的地址空间分配及其访问效率如何,在MCU之外,还必须了解各种电路知识,什么地方需要上下拉,什么地方需要加滤波电路,什么地方必须隔离,哪里必须加抑制器件,等等不一而足。
软硬结合,可以更好地实现用户需求
比如输入捕捉,如果是通过上升沿或者下降沿捕捉,加了不合适的滤波电容会造成对沿的破坏,不加滤波电容就会受困于各种空间干扰产生的杂波。
倘若硬件工程师搬来的是加了不合适电容的电路,搞得沿之间位宽失真,便会出现数据不正常的偶发故障,倘若硬件工程师搬来的是不加电容的电路,搞得软件工程师必须进行软件滤波,把代码搞得又复杂又难解,你说这怨谁来着?
方便定位Bug
钻研硬件电路可以帮助软件工程师提出更多解决问题的思路,发现导致Bug的更多可能性。一般来说,当遇到Bug时,对硬件一知半解的软件工程师只在代码层面上打转转,基本不会在硬件方面提出问题,最终为了迎合蹩脚的硬件设计出别扭无比的代码,却不曾想,只要稍稍改变一下硬件设计,就可以轻松且优雅地完成代码设计。
技多不压身
当我们对硬件电路设计起了怀疑,倘若自己悄没声地拿起烙铁飞个线、换个元件,验证了自己的思路,这时直起腰版、拿着板子理直气壮地去找硬件工程师,岂不是顺顺利利,又送顺水人情?
倘若直接拿着板子,心底发虚面上露怯地去找硬件工程师理论,一场唇枪舌战在所难免,腥风血雨不说,到头来硬件工程师硬着头皮给你调调电路,真是解决了问题还好说,若是自己思路错了,那不是自找苦吃?上个班,挣点钱养家糊口而已,当个老好人,和同事其乐融融多好,吵来吵去,搞得那么辛苦,何必来着?
但是实际中嵌入式开发需要的知识体系和技能,80%其实跟硬件平台无没有无关系的。比如计算机系统原理、编程技能、程序的编译链接、你对Linux内核的理解、设备模型、驱动架构、项目管理等等。
结语:嵌入式学习偏软还是偏硬?就找工作而言,主要看大家是编程能力强,还是硬件操作能力强,但就个人提升而言,软硬兼修,一定会让你走向更广阔的的舞台!
相关免费资料分享(点击即可免费观看~)
物联网开发-零基础,你也能像高手一样精通Zigbee!
http://www.makeru.com.cn/live/4034_2052.html?s=96806
私有的网络协议,厉害的工程师都这样设计!
http://www.makeru.com.cn/live/4034_2045.html?s=96806
嵌入式数据库框架其实不难,你也能搭建!
http://www.makeru.com.cn/live/5413_2066.html?s=96806
765573562 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!!
嵌入式软件开发好,还是硬件开发好?相关推荐
- 鸿蒙开发起步系列 | 环境搭建、HarmonyOS应用开发及智能硬件开发
本文从鸿蒙环境搭建开始说起,并汇总了HarmonyOS智能硬件开发和应用开发的一手资料,全场景剖析HarmonyOS系统究竟是什么.如何助力开发者更便捷高效地开发应用. 1.我的鸿蒙起步--开发环境搭 ...
- 登堂入室之soc开发环境及硬件开发准备
soc开发环境初步安装 ubuntu开发环境安装 vsftp 安装vim 安装gcc及g++ 安装vscode 安装git 硬件开发准备 装串口驱动 装以太网驱动 做系统固件(也可以跳过) 补充 查看 ...
- 嵌入式软件开发和其他软件开发的区别
1.嵌入式系统开发 --平台种类繁多. --资源受限. --专用系统. --需要与底层的硬件设备进行通信和交互操作.与设备相关. --数要是对设备控制和操作. --对编译器的要求较高,不同处理器平台有 ...
- 【连载】【FPGA黑金开发板】NIOS II那些事儿--硬件开发(一)
声明:本文为原创作品,版权归黑金动力社区(http://www.heijin.org)所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 前言 从今天开始,NIO ...
- 嵌入式软件工程师一般都在开发什么?
嵌入式的开发领域非常宽阔,上到飞机大炮,下到智能马桶都存在着嵌入式的技术名词,那么将嵌入式工程师软件开发进行细分的话,实际上大多数公司都是做应用层业务需求;比如做人脸识别打卡机的,做GPS导航的,做云 ...
- 作为硬件开发,你一定要知道开发板是个什么东西?陈老师带你了解
作为智能硬件开发,你一定要知道开发板是个什么东西? 如果您有和智能硬件开发人员打交道,或者贵公司正好有智能硬件的开发需求,又或者你正在学习关于智能硬件方面的知识,那么你一定听过『开发板』这个词语. / ...
- 物联网浪潮之下如何从 0 到 1开启智能化硬件开发?
在物联网浪潮之下,智能硬件的火爆程度不断升温.未来十年,全球接入互联网的硬件设备将达到1万亿台.如今的智能硬件产品正成为下一个"台风口",同时这对于终端市场也是一个机遇.然而从创新 ...
- 2020华为暑假实习业务主管面经历--硬件技术工程师(单板硬件开发方向)
时间:2020.05.14 二面:业务主管 一面面经传送门:https://blog.csdn.net/weixin_42341666/article/details/106082091 先是自 ...
- 《近匠》专访机智云 CTO 刘琰—从 0到1 开启智能化硬件开发
在物联网浪潮之下,智能硬件的火爆程度不断升温.未来十年,全球接入互联网的硬件设备将达到1万亿台.如今的智能硬件产品正成为下一个"台风口",同时这对于终端市场也是一个机遇.然而从创新 ...
- 计算机编程书籍-Python硬件开发树莓派从入门到实践无人驾驶 AndroidTV 自动循迹
内容简介 <Python硬件开发树莓派从入门到实践>全书可大致分为4个部分,其中第13章介绍了树莓派的基本使用:第4章介绍了如何在树莓派上使用Python的OpenCV包:第58章介绍了树 ...
最新文章
- 编程珠玑第二章习题答案
- javabean总结
- Django中的Cookie--实现登录
- 华为交换机的配置及:access、trunk、hybird端口详解
- 将DataFrame格式的数据存入到mysql数据库中
- LeetCode 203. Remove Linked List Elements
- nodejs+socket.io即时聊天实例
- 【OpenCV】图像金字塔详解及编程实现
- 注册表--设置文件打开方式
- Android应用开发详解
- List集合转字符串,逗号隔开
- 微信小程序学习2022.11.22
- gyp ERR! stack Error: EACCES: permission denied, mkdir
- JSON数组形式字符串转换为Map数组
- ZjDroid--脱壳神器介绍
- c++ 字符串流 sstream(常用于格式转换)
- Python数据类型之列表
- MFC中关于char[]转换成LPCWSTR的问题
- 【普组模拟赛】马球比赛(polo.pas/cpp
- 26道JavaScript烧脑面试题汇总与解析
热门文章
- matlab机器人画圆轨迹规划
- kettle连接GBASE数据库
- maven ojdbc6和ojdbc8 jar包下载地址
- 2022年中国研究生数学建模竞赛E题-草原放牧策略研究
- 知识图谱——TransE模型原理
- CorelDRAWX4的VBA插件开发(二十)创建进度条来显示程序运行进度
- LaTex的安装和使用
- Unity使用FGUI的基本操作(一)
- 解决Maven报错“Cannot resolve com.lowagie:itext:2.1.7.js7”
- masm5.0与masm32