嵌入式的范围很广,如果按照处理器的类型来分,基本上可以分为4种:嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、数字信号处理器(DSP)、和嵌入式片上系统(SOC),而这里所介绍的嵌入式入门推荐主要是针对嵌入式微控制器这一类的,也就是我们常常说到的单片机的学习入门。
很多学习过单片机的人都是从51单片机开始的,其实很大一部分原因是因为大学教材的原因,很多教材对于单片机的教学都是基于51单片机的,并且在当时也确实是各控制领域的主力单片机之一。51单片机集成了CPU、RAM、ROM、I/O接口和中断系统,通过简单学习最小系统的构成,然后理解寄存器的操作方式和ADC及中断系统的工作原理,很快可以入门,并且通过不断的代码训练,了解了各种功能外设芯片的总线驱动之后,就可以慢慢进行一些小产品的开发了。
但是,从现在的设计环境来说,如果想进行嵌入式学习还是建议一步到位,推荐从32位单片机开始,如STM32,因为现在学习32位单片机的门槛并不高。 1、不管是STM8还是51单片机,学习起来确实容易上手,但是芯片本身可以学习的东西相对较少,并且8位的处理能力及有限的ROM和RAM,对于很多电子开发是不够用的。而且在学习完基本的片上功能之后,又不得再去学习如各类串行总系、USB、以太网络等常用技术,而这些技术在很多型号的STM32单片机上都是集成的,即使现在不用,也便于以后学习扩展。
2、在嵌入式开发面对复杂的产品系统时,往往需要用到小型嵌入式操作系统建立多任务管理更有利于开发,所以建议学习的时候可以一并了解常用的操作系统原理,如μc/os-ii、freertos等,熟悉任务管理,时间管理及事件等,有开源社区的支持,在STM32上学习使用小型嵌入式操作系统会非常便捷,并且学习过操作系统原理,对以后更进一步学习arm-linux系统也会起到关键作用。
3、现在的单片机开发大部分都已经采用库函数的开发方式,包括现在很多8位单片机,也已经是通过厂家编写的库来进行开发了,甚至已经采用图形界面的方式,如STM32 CubeMX,如果现在学习51单片机可能又会回到之前的寄存器开发模式,这种开发方式虽然对底层原理有所了解,但是通过调用函数的方式开发不但可以提高代码的可读性,对于后期功能部分的移植非常友好,这也是大势所趋。
4、最后,目前市场上的很多电子产品,因为价格不断拉低,32位单片机已经成为主流。对于很多想通过学习之后能够找到单片机开发工作的人来说,学习STM32肯定更合适,在不管是在应对招聘要求还是在实际面试时,有过ARM 32位单片机的实践经验肯定比有8位51单片机开发经历要更受欢迎。
如果学过ARM 32位单片机之后再回过头来看传统8位单片机,可能会觉得非常简单,再去看一下底层寄存器部分的操作,可能也会有所收获。
|