|
我是怎么自学嵌入式的
嵌入式的开发,既有软件又有硬件,软硬结合得非常深入,可以这么说,不熟悉电子电路和硬件性能的,又或者不精通编程语言和思想的,都做不好嵌入式开发。
先来谈一下定义,很多人会把嵌入式和单片机搞混,但大多时候,两者的词义在某些场景下好像也可以通用。嵌入式的英文是Embedded System,中文应该叫嵌入式系统了。
比较完整的解释是:嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
简单总结:支持MMU(Memory Management Unit,内存管理单元)的,可以跑Linux,Android等大系统,称之为嵌入式;而不支持MMU的,跑RTOS或FreeRTOS等小系统的称之为单片机。
2003年的网购环境,不像现在这么便捷,很多元器件,都要到广州的赛格电子城去购买,而线路板画好之后,更是一个麻烦事,很少有工厂会接打样的订单,有也很贵。不像现在,万能的淘宝几乎可以买到任何电子元器件,线路板画好之后,上传到立创等PCB样板网站最快24小时就收到货了。
我的第一个正式的单片机研发项目,使用飞利浦(现在的NXP)的芯片,记得型号是LPC908,TSOP8个脚位,不需要外部晶振,默认带一个UART,只需要3.3V供电即可。当时这个项目也非常简单,是一个三星手机的恢复出厂值的小设备,上电启动时,设置好串口波特率,特定的时间发送3次数据,三星的手机就恢复出厂设置了。当时芯片选型,线路板,指令抓取和单片机程序都是我一个人完成。
做嵌入式开发总结了几条经验:
1、做嵌入式开发,还是要深入去了解硬件,虽然现在工作的岗位区分比较明显,但在我入行的时候,硬件软件可没有分的这么清。原理图线路板,有时间学画一画,对自己技术也是一种提高,对硬件的理解也有帮助,也不是非要那么精通,但自己亲手画过几个板子,做过几个项目之后,相信你会有不同的理解。
2、英语的底子还是要加强,做嵌入式开发,如果看不懂芯片的Datasheet,那基本没办法工作的。其实和写代码编程一样,只要能看懂,能理解,基本上在工作上应该就不会有障碍了。但是不能逃避,有些同学用汉化软件,找中文数据手册,这点我是不赞成的。
3、嵌入式开发从软件上分为小系统和大系统,我是建议都要掌握。从STM32的裸机系统开始,再尝试跑个RTOS或国内的RT-Thread,基础打牢了,再转向Linux的系统,这样就比较完整了。即使是从Linux入门工作到现在的,我还是建议花点时间搞搞单片机,买一个stm32的开发板也很容易,嵌入式硬件基础要熟悉,而软件更是要精通。
4、开发工具要熟练,我发现很多同学拿个开发板到手,就直接接电开机,我的习惯的不管啥板子,我都接稳压源开机,一来可以看看工作电流,对功耗有一个概念,二来把短路电流CC设置小一点,也可以防止硬件问题烧坏主板。还有万用表,示波器,逻辑分析仪都是必备工具,特别是逻辑分析仪,对写软件的工程师来讲简直是救命神器。
5、各种软件IDE开发工具要熟练,很多人不知道keil有单步调试和断点调试的功能,调试软件全部用log输出或者串口打印输出,开发效率太低下了。除非是linux或者android的开发,那确实没法在线调试或仿真,但涉及算法都可以在VC++上面调试跑通之后,再移植过去。最后讲一句啰嗦话,搞嵌入式要沉得住心,不要那么浮躁。作为搞技术和创业多年的人,在我眼中,做硬件两三年的同学,才刚入门呢。
想学习和交流嵌入式的小伙伴加入上面微信交流群,一起加油吧,后浪们。
|
|