跳到主要内容

硬件开发和嵌入式开发

  1. 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?
    1. =====基于STM32的开发属于微控制器开发领域,主要开发工具是keilIAR,这种开发更准确的说法是单片机开发或者硬件开发;
    2. 嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。
    3. 如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
    4. 单片机开发主要在于控制检测传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行一个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。
    5. =====嵌入式开发,主要有三条技术路线:
      • 51单片机
      • STM32 + RTOS
      • ARM + Linux    
      • 51单片机主要用在一些控制简单的电路、电器行业
      • STM32 + RTOS 主要用在一些实时要求比较高的行业:航空航天等,还有物联网、工业控制
      • ARM + Linux主要用在消费电子领域:手机、平板、智能手表、智能音箱等
    6. =====按照系列划分:
      1. 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等
      2. 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。
      3. 微处理器系列: ARM Cortex A系列的处理器
      4. 内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。