嵌入式Linux和stm32区别? 之间有什么关系吗?

本人从事嵌入式单片机开发11年,很多人对嵌入式、单片机STM32、Linux傻傻分不清楚

导致学习过程走了很多弯路,明明只需要几个月学习时间,却浪费了1-2年,最后抱怨嵌入式也太高了吧?!

看完这篇文章,相信你会醍醐灌顶,彻底搞清嵌入式linuxstm32的关系!

 

我从以下几点,彻底解决大家的问题:

1.嵌入式开发的几个方向

2.什么时候用嵌入式Linux?什么时候用单片机?

3.嵌入式Linux和单片机(stm32)开发的区别

 

一、嵌入式开发的几个方向

以前有很多童鞋问我:无际哥,嵌入式和单片机有什么区别,选哪个比较好?

大概是,大家认为嵌入式开发就是跑Linux系统的ARM芯片吧。

其实嵌入式开发分很多个方向的,这要由不同性能的处理器说起:

上图是目前嵌入式开发主流的一些处理器。

而单片机作为嵌入式微控制器MCU,就包含在嵌入式开发里面,嵌入式是一个大类别,单片机是其中一个细分方向。

像8051、AVR、STM32等等就是属于单片机的范畴,只是制造厂家不同,芯片性能也不同。

除此以外,大家常说的ARM+Linux大概就是指嵌入式微处理器MPU,这种处理器性能更强悍,所以一般跑Linux或者安卓系统。

 

由不同的嵌入式处理器,衍生出不同的职业方向,主流的有以下几个:

1.单片机工程师

2.Linux驱动开发

3.Linux系统开发工程师

4.Linux应用工程师

5.安卓系统开发工程师

6.FPGA/DSP开发

 

二、什么时候用嵌入式Linux?什么时候用单片机?

这取决于产品对芯片性能的需求,如果你的产品功能很复杂,有显示屏播放视频之类的需求,或者需要处理复杂的算法,一般会使用ARM硬件平台+Linux的方案。

我想强调的是,ARM是一个内核,并不是所有ARM内核的芯片都跑Linux。

STM32也是属于ARM内核,但大多数型号并不跑Linux。

ARM根据性能也分很多版本,具体可以看下图:

一般上了ARM9级别的处理器,就会配合Linux系统,做更更高端的应用,这也是大家常说的嵌入式ARM+Linux开发。

如果是一些简单的,则采用单片机。

但是有一点不可否认,如果能用单片机,老板绝对不会选择ARM+Linux,因为单片机成本低,产品开发周期短、容易维护、功耗低、尺寸小等优势

单片机是”裸机编程”,最多也就加个实时操作系统(RTOS),所以上电初始化程序简单,实时性也比较高。

ARM+Linux虽然能做很多复杂的功能,但是实时性会比单片机要差一点。

 

三、嵌入式Linux和单片机(stm32)开发的区别

主要体现在以下几个方面:

1.硬件资源不同

单片机一般是芯片内部集成flash、ram,ARM一般是CPU,配合外部的flash、ram、sd卡存储器使用。

STM32现在也出了高端的MPU,可以跑Linxu的,比如STM32MP157F。

外设方面,ARM也比单片机要多很多,也更复杂。

 

2.程序存储位置不同

单片机程序一般比较小,上百Kb的程序逻辑已经相对复杂的了,所以大多数产品程序一般存储在片内flash。

ARM+Linux程序比较大,还加上Linux系统,一般存在外部的存储器,如sd卡、mmc、sata等。

 

3.程序开发环境不同

单片机大多数是用Keil、IAR等等,开发环境比较简单。

ARM+Linxu则复杂很多,具体可以参照芯片方案。

程序的编译时间也不是一个级别的,单片机只需要几十秒,ARM+Linux,如果再跑上安卓系统,我很久以前玩过一次rk3288的,重头编译,电脑配置不错的话,大概需要几个小时。

 

4.调试工具不同

单片机:硬件开发板,仿真器(调试器),USB转串口线。

ARM+Linux:硬件开发板,网线,USB转串口线,SD卡。

我们在调试基于STM32单片机的时候,一般会采用st-link去仿真调试程序,查找bug。

而ARM+Linux开发,一般不会用硬件的调试器,一般是通过串口打印信息进行调试,特别是做应用开发的时候。

 

四、最后总结

ARM+Linux和stm32之类的单片机,两者之间是不同的产品方向和职位方向,没有什么关联性。

单片机更偏向于硬件,ARM+Linux更偏向于应用。

当然,如果你单片机玩的很溜,再去学习ARM+Linux会理解的更深刻,效率也更高。

给TA买糖
共{{data.count}}人
人已赞赏
单片机百科

单片机外包公司可以去吗?学好单片机能接私活吗?

2022-3-28 18:49:08

单片机百科

为什么有些人说单片机简单,我学起来这么吃力?

2022-4-13 18:46:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧