你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

总结了几条嵌入式开发经验

[复制链接]
gaosmile 发布时间:2020-7-17 19:12
在之前讲解如何自学嵌入式技术,总觉得嵌入式还没讲完。因为嵌入式的开发,既有软件又有硬件,软硬结合得非常深入,可以这么说,不熟悉电子电路和硬件性能的,又或者不精通编程语言和思想的,都做不好嵌入式开发。

先来谈一下定义,很多人会把嵌入式和单片机搞混,但大多时候,两者的词义在某些场景下好像也可以通用。嵌入式的英文是Embedded System,中文应该叫嵌入式系统了。比较完整的解释是: 嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 由此可见,嵌入式一词,包括软件和硬件的开发,是一整套完整的专用计算机系统。

(此处的计算机一词,也并非完全指PC电脑,电脑也并非只有PC机......)

微信图片_20200717191106.png

而单片机的则要简单得多,单片机的全称应该叫单片微机或者单片微控制器,英文是MCU (Microcontroller Unit),它集成了CPU,RAM,ROM,IO口等功能。单片机的内核,常见的有8051,AVR,ARM,每种IP核都有自己的指令集。我们所熟悉的电脑的CPU,是8086内核,本质上也是一个大型的单片机。

微信图片_20200717191110.png
常见的单片机的外观--集成电路芯片 Integrated Circuit Chip

最常见的MCU有80C51和STM32系列,内部有ROM,可以存放代码,也称之为固件 Firmware,在CPU上电之后,会执行ROM中的代码,CPU计算过程缓存到RAM,输入输出则对应着IO口。
正常来讲,嵌入式开发,一般都是包括软件和硬件的开发。
但是行业内也有另外一种区分的方法,因为嵌入式软件有大小系统之分,支持MMU(Memory Management Unit,内存管理单元)的,可以跑Linux,Android等大系统,称之为嵌入式;而不支持MMU的,跑RTOS或FreeRTOS等小系统的称之为单片机。

说回正题,我最早接触单片机是在2003年,用atmel公司的80C51,使用的是南京伟福公司的6000编译器,编写汇编语言。因为公司同事都是用这个软件开发,当时也不知道有keil编译器,可以支持C语言开发,也就硬着头皮学下来了。后来查了一下,原来keil C51编译器在1988年就已经上市了,只比我小几岁而已。

微信图片_20200717191115.png

2003年的网购环境,不像现在这么便捷,很多元器件,都要到广州的赛格电子城去购买,而线路板画好之后,更是一个麻烦事,很少有工厂会接打样的订单,有也很贵。不像现在,万能的淘宝几乎可以买到任何电子元器件,线路板画好之后,上传到立创等PCB样板网站最快24小时就收到货了。

我的第一个正式的单片机研发项目,使用飞利浦(现在的NXP)的芯片,记得型号是LPC908,TSOP8个脚位,不需要外部晶振,默认带一个UART,只需要3.3V供电即可。当时这个项目也非常简单,是一个三星手机的恢复出厂值的小设备,上电启动时,设置好串口波特率,特定的时间发送3次数据,三星的手机就恢复出厂设置了。当时芯片选型,线路板,指令抓取和单片机程序都是我一个人完成。

出来创业后,做的项目就比较多了。用过的单片机型号,估计都有二三十种了吧,各种高中低端的芯片,普通的51单片机,AVR的,ARM的,带蓝牙的,wifi的,全世界最便宜的,五花八门,琳琅满目。

做嵌入式开发也十几年了,给后浪们总结了几条经验,也欢迎各位补充指正。

1、做嵌入式开发,还是要深入去了解硬件,虽然现在工作的岗位区分比较明显,但在我入行的时候,硬件软件可没有分的这么清。原理图线路板,有时间学画一画,对自己技术也是一种提高,对硬件的理解也有帮助,也不是非要那么精通,但自己亲手画过几个板子,做过几个项目之后,相信你会有不同的理解。

2、英语的底子还是要加强,做嵌入式开发,如果看不懂芯片的Datasheet,那基本没办法工作的。其实和写代码编程一样,只要能看懂,能理解,基本上在工作上应该就不会有障碍了。但是不能逃避,有些同学用汉化软件,找中文数据手册,这点我是不赞成的。

3、嵌入式开发从软件上分为小系统和大系统,我是建议都要掌握。从STM32的裸机系统开始,再尝试跑个RTOS或国内的RT-Thread,基础打牢了,再转向Linux的系统,这样就比较完整了。即使是从Linux入门工作到现在的,我还是建议花点时间搞搞单片机,买一个stm32的开发板也很容易,嵌入式硬件基础要熟悉,而软件更是要精通。

4、开发工具要熟练,我发现很多同学拿个开发板到手,就直接接电开机,我的习惯的不管啥板子,我都接稳压源开机,一来可以看看工作电流,对功耗有一个概念,二来把短路电流CC设置小一点,也可以防止硬件问题烧坏主板。还有万用表,示波器,逻辑分析仪都是必备工具,特别是逻辑分析仪,对写软件的工程师来讲简直是救命神器。

5、各种软件IDE开发工具要熟练,很多人不知道keil有单步调试和断点调试的功能,调试软件全部用log输出或者串口打印输出,开发效率太低下了。除非是linux或者android的开发,那确实没法在线调试或仿真,但涉及算法都可以在VC++上面调试跑通之后,再移植过去。

最后讲一句啰嗦话,搞嵌入式要沉得住心,不要那么浮躁。作为搞技术和创业多年的人,在我眼中,做硬件两三年的同学,才刚入门呢。
收藏 评论0 发布时间:2020-7-17 19:12

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版