近些天许多学嵌入式的小伙伴前来咨询,问:嵌入式软件开发好,还是硬件开发好?在小编看来,想要成为一名优秀的嵌入式开发师,还是软硬兼修为好,我们来看看这是为啥。

软硬兼修,后顾无忧

据网友光华居士表示“嵌入式软件工程师,两手都要硬!”嵌入式软件编程显然不同于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 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!!

嵌入式软件开发好,还是硬件开发好?相关推荐

  1. 鸿蒙开发起步系列 | 环境搭建、HarmonyOS应用开发及智能硬件开发

    本文从鸿蒙环境搭建开始说起,并汇总了HarmonyOS智能硬件开发和应用开发的一手资料,全场景剖析HarmonyOS系统究竟是什么.如何助力开发者更便捷高效地开发应用. 1.我的鸿蒙起步--开发环境搭 ...

  2. 登堂入室之soc开发环境及硬件开发准备

    soc开发环境初步安装 ubuntu开发环境安装 vsftp 安装vim 安装gcc及g++ 安装vscode 安装git 硬件开发准备 装串口驱动 装以太网驱动 做系统固件(也可以跳过) 补充 查看 ...

  3. 嵌入式软件开发和其他软件开发的区别

    1.嵌入式系统开发 --平台种类繁多. --资源受限. --专用系统. --需要与底层的硬件设备进行通信和交互操作.与设备相关. --数要是对设备控制和操作. --对编译器的要求较高,不同处理器平台有 ...

  4. 【连载】【FPGA黑金开发板】NIOS II那些事儿--硬件开发(一)

     声明:本文为原创作品,版权归黑金动力社区(http://www.heijin.org)所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 前言 从今天开始,NIO ...

  5. 嵌入式软件工程师一般都在开发什么?

    嵌入式的开发领域非常宽阔,上到飞机大炮,下到智能马桶都存在着嵌入式的技术名词,那么将嵌入式工程师软件开发进行细分的话,实际上大多数公司都是做应用层业务需求;比如做人脸识别打卡机的,做GPS导航的,做云 ...

  6. 作为硬件开发,你一定要知道开发板是个什么东西?陈老师带你了解

    作为智能硬件开发,你一定要知道开发板是个什么东西? 如果您有和智能硬件开发人员打交道,或者贵公司正好有智能硬件的开发需求,又或者你正在学习关于智能硬件方面的知识,那么你一定听过『开发板』这个词语. / ...

  7. 物联网浪潮之下如何从 0 到 1开启智能化硬件开发?

    在物联网浪潮之下,智能硬件的火爆程度不断升温.未来十年,全球接入互联网的硬件设备将达到1万亿台.如今的智能硬件产品正成为下一个"台风口",同时这对于终端市场也是一个机遇.然而从创新 ...

  8. 2020华为暑假实习业务主管面经历--硬件技术工程师(单板硬件开发方向)

    时间:2020.05.14    二面:业务主管 一面面经传送门:https://blog.csdn.net/weixin_42341666/article/details/106082091 先是自 ...

  9. 《近匠》专访机智云 CTO 刘琰—从 0到1 开启智能化硬件开发

    在物联网浪潮之下,智能硬件的火爆程度不断升温.未来十年,全球接入互联网的硬件设备将达到1万亿台.如今的智能硬件产品正成为下一个"台风口",同时这对于终端市场也是一个机遇.然而从创新 ...

  10. 计算机编程书籍-Python硬件开发树莓派从入门到实践无人驾驶 AndroidTV 自动循迹

    内容简介 <Python硬件开发树莓派从入门到实践>全书可大致分为4个部分,其中第13章介绍了树莓派的基本使用:第4章介绍了如何在树莓派上使用Python的OpenCV包:第58章介绍了树 ...

最新文章

  1. 编程珠玑第二章习题答案
  2. javabean总结
  3. Django中的Cookie--实现登录
  4. 华为交换机的配置及:access、trunk、hybird端口详解
  5. 将DataFrame格式的数据存入到mysql数据库中
  6. LeetCode 203. Remove Linked List Elements
  7. nodejs+socket.io即时聊天实例
  8. 【OpenCV】图像金字塔详解及编程实现
  9. 注册表--设置文件打开方式
  10. Android应用开发详解
  11. List集合转字符串,逗号隔开
  12. 微信小程序学习2022.11.22
  13. gyp ERR! stack Error: EACCES: permission denied, mkdir
  14. JSON数组形式字符串转换为Map数组
  15. ZjDroid--脱壳神器介绍
  16. c++ 字符串流 sstream(常用于格式转换)
  17. Python数据类型之列表
  18. MFC中关于char[]转换成LPCWSTR的问题
  19. 【普组模拟赛】马球比赛(polo.pas/cpp
  20. 26道JavaScript烧脑面试题汇总与解析

热门文章

  1. matlab机器人画圆轨迹规划
  2. kettle连接GBASE数据库
  3. maven ojdbc6和ojdbc8 jar包下载地址
  4. 2022年中国研究生数学建模竞赛E题-草原放牧策略研究
  5. 知识图谱——TransE模型原理
  6. CorelDRAWX4的VBA插件开发(二十)创建进度条来显示程序运行进度
  7. LaTex的安装和使用
  8. Unity使用FGUI的基本操作(一)
  9. 解决Maven报错“Cannot resolve com.lowagie:itext:2.1.7.js7”
  10. masm5.0与masm32