近些天许多学嵌入式的小伙伴前来咨询,问:嵌入式软件开发好,还是硬件开发好?在小编看来,想要成为一名优秀的嵌入式开发师,还是软硬兼修为好,我们来看看这是为啥。
软硬兼修,后顾无忧
据网友光华居士表示“嵌入式软件工程师,两手都要硬!”嵌入式软件编程显然不同于PC软件开发,它和硬件密切相关。想写好嵌入式软件代码,就必须了解清楚所使用MCU的硬件特性、各个外围电路和接口电路的原理。不仅要深挖细究MCU内核架构的知识,是否支持浮点处理器/DSP,是否支持协处理器、指令数据缓存。
还要了解MCU的编程模型、各种存储器的地址空间分配及其访问效率如何,在MCU之外,还必须了解各种电路知识,什么地方需要上下拉,什么地方需要加滤波电路,什么地方必须隔离,哪里必须加抑制器件,等等不一而足。
软硬结合,可以更好地实现用户需求
比如输入捕捉,如果是通过上升沿或者下降沿捕捉,加了不合适的滤波电容会造成对沿的破坏,不加滤波电容就会受困于各种空间干扰产生的杂波。
倘若硬件工程师搬来的是加了不合适电容的电路,搞得沿之间位宽失真,便会出现数据不正常的偶发故障,倘若硬件工程师搬来的是不加电容的电路,搞得软件工程师必须进行软件滤波,把代码搞得又复杂又难解,你说这怨谁来着?
方便定位Bug
钻研硬件电路可以帮助软件工程师提出更多解决问题的思路,发现导致Bug的更多可能性。一般来说,当遇到Bug时,对硬件一知半解的软件工程师只在代码层面上打转转,基本不会在硬件方面提出问题,最终为了迎合蹩脚的硬件设计出别扭无比的代码,却不曾想,只要稍稍改变一下硬件设计,就可以轻松且优雅地完成代码设计。
技多不压身
当我们对硬件电路设计起了怀疑,倘若自己悄没声地拿起烙铁飞个线、换个元件,验证了自己的思路,这时直起腰版、拿着板子理直气壮地去找硬件工程师,岂不是顺顺利利,又送顺水人情?
倘若直接拿着板子,心底发虚面上露怯地去找硬件工程师理论,一场唇枪舌战在所难免,腥风血雨不说,到头来硬件工程师硬着头皮给你调调电路,真是解决了问题还好说,若是自己思路错了,那不是自找苦吃?上个班,挣点钱养家糊口而已,当个老好人,和同事其乐融融多好,吵来吵去,搞得那么辛苦,何必来着?
但是实际中嵌入式开发需要的知识体系和技能,80%其实跟硬件平台无没有无关系的。比如计算机系统原理、编程技能、程序的编译链接、你对Linux内核的理解、设备模型、驱动架构、项目管理等等。
结语:嵌入式学习偏软还是偏硬?就找工作而言,主要看大家是编程能力强,还是硬件操作能力强,但就个人提升而言,软硬兼修,一定会让你走向更广阔的的舞台!
EDA365——专注电子工程技术
EDA365(//www.eda365.com/)平台成立于2006年,中国最大的互连设计专业论坛。EDA365整合电子产品开发所需用的设计工具、实际设计知识,以及丰富的工程技术设计和测试案例实践等诸多方面经验,为工程师提供设计培训演练、解疑答惑、就业实习、升级求职以及设计外包等专业服务。专注电子工程师能力提升和价值体现,是最具人气的电子工程师互动社区。