结果学习过程走了很多弯路。 只花了几个月的时间就学会了,却浪费了1-2年的时间。 最后我抱怨嵌入式系统太高了吧? !
读完这篇文章,相信您一定会恍然大悟,彻底了解嵌入式Linux与stm32的关系!
我将从以下几点彻底解决您的问题:
1.嵌入式开发的几个方向
2.什么时候使用嵌入式Linux? 什么时候使用微控制器?
三、嵌入式Linux与单片机(stm32)开发的区别
1.嵌入式开发的几个方向
以前很多小朋友问我:无极哥,嵌入式和单片机有什么区别,哪个更好?
可能大家都认为嵌入式开发就是ARM芯片运行Linux系统。
其实嵌入式开发分为很多方向,首先从不同性能的处理器开始:
上图是目前嵌入式开发中的一些主流处理器。
微控制器作为嵌入式微控制器(MCU),包含在嵌入式开发中。 嵌入式是一个大类,微控制器是其细分领域之一。
例如8051、AVR、STM32等都属于微控制器的范畴,但由于厂家不同,芯片性能也有所不同。
另外,大家常说的ARM+Linux很可能就是指嵌入式微处理器MPU。 这种处理器的性能比较强大,所以一般运行Linux或者Android系统。
不同的嵌入式处理器衍生出不同的职业方向。 主流的有以下几种:
1.单片机工程师
2.Linux驱动开发
3.Linux系统开发工程师
4.Linux应用工程师
5.Android系统开发工程师
6.FPGA/DSP开发
2.什么时候使用嵌入式Linux? 什么时候使用微控制器?
这取决于产品对芯片性能的要求。 如果您的产品功能复杂,需要在显示器上播放视频,或者需要处理复杂的算法,一般会采用ARM硬件平台+Linux的方案。
我想强调的是,ARM是一个核心,并不是所有ARM核心的芯片都运行Linux。
STM32也属于ARM内核,但大多数型号不运行Linux。
ARM根据性能也分为很多版本。 详细可以看下图:
一般如果拿到ARM9级别的处理器,就会配合Linux系统做出更高端的应用。 这也是大家常说的嵌入式ARM+Linux开发。
如果事情很简单,请使用微控制器。
但有一件事是不可否认的。 如果能用单片机,老板绝对不会选择ARM+Linux,因为单片机成本低、产品开发周期短、易于维护、功耗低、体积小等优点。
单片机是“裸机编程”,最多只需要一个实时操作系统(RTOS),因此上电初始化程序简单,实时性能比较高。
虽然ARM+Linux可以执行许多复杂的功能,但其实时性能比单片机稍差。
三、嵌入式Linux与单片机(stm32)开发的区别
主要体现在以下几个方面:
1、硬件资源不同
微控制器一般在芯片内部集成闪存和RAM,而ARM一般是与外部闪存、RAM和SD卡存储器一起使用的CPU。
STM32现在也有可以运行Linux的高端MPU,例如STM32MP157F。
在外设方面,ARM的外设也比微控制器多很多,也更复杂。
2、程序存储位置不同
单片机程序一般都比较小,几百Kb的程序逻辑已经比较复杂,所以大部分产品程序一般都存储在片上flash中。
ARM+Linux程序比较大,而且随着Linux系统的加入,一般还有外部存储器,如SD卡、mmc、sata等。
3、程序开发环境不同
单片机大多采用Keil、IAR等,开发环境比较简单。
ARM+Linxu就复杂得多。 详情请参考芯片方案。
程序的编译时间不在一个水平上。 单片机、ARM+Linux,如果运行在Android系统上,只需要几十秒。 很早以前玩过rk3288,重新编译了一下。 如果电脑配置好的话,大约需要几个小时。 。
4、调试工具不同
微控制器:硬件开发板、仿真器(调试器)、USB转串口线。
ARM+Linux:硬件开发板、网线、USB转串口线、SD卡。
当我们调试基于STM32的微控制器时,我们通常使用st-link来模拟调试器并查找bug。
在ARM+Linux开发中,一般不使用硬件调试器,通常通过串口打印信息来进行调试,尤其是在做应用程序开发时。
4. 最后总结
ARM+Linux和stm32等微控制器的产品方向和工作方向不同,它们之间没有关联性。
微控制器更注重硬件,而ARM+Linux更注重应用。
当然,如果你擅长玩单片机,通过学习ARM+Linux你会有更深入的理解和更高的效率。
最后的复活节彩蛋时间!!!
最近有同学向我要单片机的资料。 我花了一个月的时间总结了自己10年的产品开发经验,收集了史上最认真、最硬核、最实用的《高级单片机入门教程+工具包》。 +22个热门项目”,免费分享给大家。
资料包几乎涵盖了C语言、单片机、模拟与数字电子、原理图与PCB设计、单片机高级编程等内容,非常适合初学者入门进阶。
另外,我会在盒子底部泪流满面地分享我整理的22个热门开源项目,包括源码+原理图+PCB+文档,让你快速成为高手!
据说有朋友就是通过这个成功加入BAT的,一定要保存好,好好学习!
后期我也会成立一些技术交流群,让大家可以认识更多的大佬,有一个良好的圈子。 您对行业的了解将处于最前沿。
如果您想要上面的“MCU入门进阶教程工具包+进MCU交流群”,可以点击下方卡片⬇️扫描二维码进群免费领取。
或者你可以寻找全网同名的“Boundless Microcontroller”。
以下是无极更多原创的个人成长经历、行业经验、技术秘诀。
1.从入门级微控制器到高级黑客的学习路径(包含教程+工具)
2、电子工程师的能力有多可怕?
3、为什么学了几天STM32感觉很迷茫?
4.谁能教我如何学习单片机,先学什么,如何入门?
5.我学习Stm32很久了,但还是感觉自己不能独立做项目?
6、如何实现单片机的模块化编程
7、C语言中指针的高级应用:回调函数
8、C语言指针的高级应用:队列算法
9、新手学习单片机最常见的六大误区。 你掉进陷阱了吗?