上大学选专业时,误打误撞的进入了电子行当,在本科系列的电子课程的学习下,知道了模电,数电,高频电子等等,其中最让自己感兴趣的还是单片机课程,在课程的学习中见到了嵌入式这个字眼,但是自己一直都不明白什么叫做嵌入式,就这样用自己所知道的一点嵌入式知识参加过电子设计大赛,做出来过一些小东西,自己还感觉自己做的很好,现在想想有多可笑,再后来就知道了ARM,只知道ARM很厉害,性能什么的都远远的超过51单片机,所以自己一直在追逐学ARM,还有过把ARM当做一个超厉害的芯片的错误认识。鉴于自己走过的这些路,在这里将自己的一点心得和认识分享出来。
首先,就嵌入式的概念讲一下,自己的理解是:嵌入式就是在一个大的电子系统中嵌入用于实现特定功能的处理电路部分(包括一定的芯片)。嵌入式系统可以实现控制、监控、辅助设备、机器或者设备运行的装置。嵌入式系统包括软件部分和硬件平台。
我们目前常见的嵌入式处理器有51单片机,AVR系列单片机,PIC单片机,MSP430或者432系列单片机,C2000单片机,飞思卡尔单片机,凌阳单片机,STM32单片机等等。这其中包括8051内核的单片机,也包括ARM内核的单片机,有CISC指令集的,也有RISC指令集的。这些详细的内容大家可以百度。我在这里给大家要说的就是它们都在某一方面的性能特别优越,就拿430单片机来说,它的低功耗在业界那可以说是响当当的。所以大家在工程应用中选型时一定要根据自己的实际需求去选择相应的嵌入式芯片。
好多人可能和我有过一样的感觉那就是学习以一定要学最好的单片机,那就直接学stm32就行,这个想法在一定程度上是错误的,因为我们在实际开发中要兼顾性能和开销,最好做到性价比较高。采用32位arm内核的单片机固然好,但是它的硬件成本就高了。所以我给出的学习路线是,先学个低性能的单片机,比如51系列的,然后上手学stm32,这样自己也好上手,然后也可以应对不同的开发环境,对嵌入式的认识也有一个比较高的水平。再就是我们通常做的是裸机开发,是不跑系统的的,但是现在的很多情况下我们需要进行嵌入式系统的开发,实现像物联网等等大型的开发场景,这个时候仅仅进行裸机开发是不行的,需要在像FreeRTOS的实时操作系统上进行程序开发。
所以在这里给大家想提的就是,学习一定要脚踏实地,多敲代码,甚至手写代码,再有就是有机会了解LINUX开发,学习大型的操作系统的驱动开发。
备注:
ARM是处理器的内核架构,不是具体的芯片哦,学习是一定要学会写实时操作系统。