嵌入式linux与51/430/STM32的嵌入式开发的区别与关联
总结:
- 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)
主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。 - 微处理器系列: ARM Cortex A系列的处理器
有内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。
详解:
基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确的说法是单片机开发或者硬件开发;而招聘里所说的嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。开发后者所需了解的知识和前者的不是在同一个层次上。
如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
更详细地说,单片机开发主要在于控制、检测和传输数据,比如控制继电器开关以控制门锁&#