嵌入式Linux开发与单片机开发的区别

本文对比了单片机和嵌入式Linux开发的流程、优缺点,指出单片机开发成本低、实时性强,而嵌入式Linux则具备丰富的软件资源和更强的处理能力,适合复杂的项目需求。选择哪种开发方式取决于具体产品的功能需求和技术选型。
摘要由CSDN通过智能技术生成

        在某些平台上看到很多人鼓吹嵌入式Linux开发比单片机开发要好,让所有人都去做嵌入式Linux开发。说这种话的人大多数是嵌入式Linux的培训机构,或者是一开始就以嵌入式Linux入门的那一批人,当然,也有很多的大佬。

        我认为最有发言权的是在单片机行业待了三年以上,然后在嵌入式Linux行业也待过三年以上的人,显然笔者不是,不过笔者还是想把自己的理解写出来。

        一个以单片机为主控的产品开发步骤:画原理图---画PCB---在Keil上编程---软硬件Debug

       一个以嵌入式Linux为操作系统的产品开发步骤:画原理图---画PCB---在Linux下移植Uboot---

在Linux下移植内核与编写驱动程序---在Linux下移植根文件系统---在Linux下编写应用程序---软硬

件Debug

        可以看出,做嵌入式Linux的步骤比做单片机的多很多。

        通常一个单片机产品软硬件两个人甚至一个人就可以完成,经常看到某些项目一个人画PCB,打板子回来就开始写程序,一个人软硬件全部做完,软件顶多上一个freeeos或者ucosiii。(不排除某些复杂的项目需要多个硬件与软件)。

        嵌入式Linux的软硬件通常比较复杂。先来说说硬件,现在很多的MPU都是需要外挂ROM和RAM,至少现在的主流芯片是这样干的。当然也有那种自带RAM的,例如新唐的NUC977,全志的F1C100S。这些自带的RAM的内存都偏小(128MB的就很少,一般是32MB或者是64MB),只能适合那种中低端的应用。外挂RAM与ROM对硬件的要求就比较高,举个简单的例子,你找出最复杂的STM32FX板卡与最简单的S3C2440板卡。看看那两个板子的原理图与PCB布线难度就知道了。我再说说软件,要跑Linux的项目,一般工程量都比较大。一般的公司会将软件开发人员分为驱动程序编写与应用程序编写这两大类,不排除有公司分的更细。应用软件的代码量通常比较大。

ps:有些MCU也可以跑linux,例如STM32可以通过外挂ROM和RAM跑uclinux(不带MMU)。

        单片机的优势:低成本(无论是从物料成本还是从人工成本),不过现在的STM32确实涨的离谱,实时性高(STM32FX跑裸机或者跑ucosii的中断响应肯定比跑嵌入式Linux的芯片中断响应快,不信可以测试),软件开发简单,一个Keil走遍天下,硬件开发简单,通常不需要用BGA封装。

        单片机的不足:处理能力不足,不能跑大型的任务,所有项目通常是在一个工程下。修改一个功能就需要更新整个程序。(开发人员薪资偏低,狗头保命)

        嵌入式Linux的优势:有大量的开源软件与社区的支持,应用与驱动独立,支持多个进程。MCU就算跑操作系统也只能多线程。应用程序之间可以完全独立开来。例如一个需求:需要一边播放MP3音乐,一边玩游戏。你用Linux开发可以完全将这两个应用放在两个不同的工程里面,如果用单片机开发,你只能放一起。

        嵌入式Linux的不足:实时性低(就算是RT-Linux也不如单片机的裸机相应快)。硬件布线复杂,通常涉及到多个BGA封装。软件开发难度高,Linux想吃透很不容易。

做一个产品首先是选型。是MCU跑裸机还是MPU跑嵌入式Linux或者是MCU+FPGA,MCU+DSP,DSP+FPGA,嵌入式Linux+DSP,嵌入式Linux+FPGA,甚至在FPGA中嵌入软核,跑Linux,反正是根据需求来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值