我们来看看,嵌入式和单片机的区别到底是什么。
从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。
以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。
于是,人们倾向于在软件上进行区分。
从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。
在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。
嵌入式和单片机的学习价值
最后我们来说一说嵌入式和单片机的学习价值,到底有没有必要学习嵌入式和单片机。
最近这些年,有一句话被广泛传播,那就是——“软件为王”。人们普遍认为软件知识的价值远远大于硬件,而学习软件,从事软件方向,会更容易找到工作,找到更高收入、更有前途的工作。
而嵌入式和单片机,往往被归为“硬件”方向,遭人“嫌弃”。加上嵌入式和单片机的学习难度较大,学习周期很长,需要漫长的“煎熬”,所以越来越多的人放弃这条路。
小枣君认为这种想法是不正确的。
首先,嵌入式和单片机并不是纯“硬件”类方向。前面我也说了,它们是软件和硬件的紧密结合。
如果你想学好嵌入式和单片机,只懂数字电路和微机接口这样的硬件知识是不够的,你更需要学习的,是汇编、C/C++语言、数据结构和算法知识。
拥有软硬结合的能力,远远比单纯掌握某种程序开发语言更有价值。
其次,嵌入式和单片机拥有广泛的应用场景,在各个领域都有项目需求和人才需求。
根据权威部门统计,目前我们国家每年的嵌入式人才缺口高达50万。尤其是嵌入式软件开发,是未来几年最热门和最受欢迎的职业之一。具有10年工作经验的高级嵌入式工程师,年薪可以达到30-50万元左右。
而且我们国家现在正在大力发展芯片产业,也会带动嵌入式人才的就业,提升待遇。
随着5G的全面启动,整个社会正在向“万物互联”的方向发展。物联网技术也将迎来前所未有的历史机遇。嵌入式和单片机技术是物联网技术的重要组成部分,也将进入发展的快车道。
因此,尽管学习过程会比较艰辛,小枣君仍然建议有志青年关注这一赛道。技术越难,过程越苦,越有利于构建竞争壁垒。到了后期,个人价值可以得到进一步的体现。
|