打印
[STM32F4]

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

[复制链接]
466|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
很多人对嵌入式、单片机、STM32、Linux傻傻分不清楚。

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

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

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

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

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

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

使用特权

评论回复
沙发
键盘手没手|  楼主 | 2022-11-17 23:21 | 只看该作者
嵌入式开发的几个方向

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

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

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

使用特权

评论回复
板凳
键盘手没手|  楼主 | 2022-11-17 23:23 | 只看该作者
上图是目前嵌入式开发主流的一些处理器。

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

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

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

使用特权

评论回复
地板
键盘手没手|  楼主 | 2022-11-17 23:24 | 只看该作者
由不同的嵌入式处理器,衍生出不同的职业方向,主流的有以下几个:

1.单片机工程师

2.Linux驱动开发

3.Linux系统开发工程师

4.Linux应用工程师

5.安卓系统开发工程师

6.FPGA/DSP开发

使用特权

评论回复
5
键盘手没手|  楼主 | 2022-11-17 23:26 | 只看该作者
什么时候用嵌入式Linux?什么时候用单片机?

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

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

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

使用特权

评论回复
6
键盘手没手|  楼主 | 2022-11-17 23:29 | 只看该作者
ARM根据性能也分很多版本,具体可以看下图:


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

使用特权

评论回复
7
键盘手没手|  楼主 | 2022-11-17 23:30 | 只看该作者
如果是一些简单的,则采用单片机。

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

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

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

使用特权

评论回复
8
键盘手没手|  楼主 | 2022-11-17 23:31 | 只看该作者
嵌入式Linux和单片机(stm32)开发的区别

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

1.硬件资源不同

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

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

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

使用特权

评论回复
9
键盘手没手|  楼主 | 2022-11-17 23:32 | 只看该作者
程序存储位置不同

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

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

使用特权

评论回复
10
键盘手没手|  楼主 | 2022-11-17 23:33 | 只看该作者
程序开发环境不同

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

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

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

使用特权

评论回复
11
键盘手没手|  楼主 | 2022-11-17 23:34 | 只看该作者
调试工具不同

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

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

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

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

使用特权

评论回复
12
键盘手没手|  楼主 | 2022-11-17 23:36 | 只看该作者
最后总结

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

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1180

帖子

0

粉丝