5.STM32的cube和HAL生态

STM32的cube和HAL生态

  • 1.单片机软件开发的时代变化
    • 1.单片机的演进过程
    • 2.单片机开发的演进过程
    • 3.演进的内在动力和原因
    • 4.演进的技术方向
  • 2.STM32软件开发的各种模式
    • 1.寄存器开发
    • 2.标准库开发(标准外设库)
    • 3.HAL/LL库+STM32cubeMX工具开发

1.单片机软件开发的时代变化

1.单片机的演进过程

  1. 4004,8008,zilog年代(大约在1980年代之前)
  2. 51,PIC8/16,AVR(8位)年代(大约在2005年之前)
  3. 51,PIC32,cortex-M0,M1,M3年代
  4. 51,STM8/MSP430,PIC,cortex-M4,M7,低功耗系列

2.单片机开发的演进过程

  1. 不讨论,没意义
  2. 汇编和c都有,一般没有库或最多使用标准c库
  3. 出现单片机厂商提供的外设库,典型如stm32的标准库
  4. 库是标配和发展方向,库考虑更多硬件兼容性,库集成更多组件,库面向网络功能
  5. 库面向云端对接,库面向上层语言如python的接口,提供辅助工具如STM32cubeMX

3.演进的内在动力和原因

  1. 单片机片上资源越来越多,越来越复杂,单片机编程的工程体量越来越大,复杂度和细节越来越多。因此必须要外设库来简化和加速开发。
  2. 单片机型号越来越多,外设分布越来越散,引脚复用越来越多,需要专用配置工具协助工程师来设计引脚复用和基本功能配置,简化开发,快速评估。
  3. 联网,USB,文件系统,加密算法,RTOS等第三方组件越来越重要。
  4. 物联网云管端模型,促进了单片机对联网对接的需求。
  5. 半导体厂商同质化竞争越来越激烈,不得不在开发生态上下功夫提升竞争力。

4.演进的技术方向

  1. 单片机开发在走PC,手机等以CPU为核心的产品的老路:底层和细节越来越成熟,ARM提供CPU的库,单片机厂商提供外设库,单片机软件工程师直接基于库来构建自己的应用。
  2. 提供GUI式的辅助开发工具(cubeMX),加速并简化产品开发。
  3. 提供一整套开发生态而不只是一个SDK包(软件开发工具包)
  4. 提供HAL抽象层驱动来加速产品移植和选型,增加客户粘度。

2.STM32软件开发的各种模式

1.寄存器开发

2.标准库开发(标准外设库)

3.HAL/LL库+STM32cubeMX工具开发

  1. HAL(Hardware Abstraction Layer),LL(Low Layer)
  2. HAL库的优势是便于在不同型号的STM32芯片之间移植,劣势是代码效率低。
  3. LL库几乎等同于直接操作寄存器。
  4. CubeMX工具是ST的一站式开发包,层次高于SDK包,包含了STM32芯片开发的所有官方资源,提供了友好的使用方法;cubeMX是一个windows上的图形化软件;cubeMX是一个工具包加芯片容器,各系列芯片资料以插件补丁形式安装。
  5. HAL/LL库和cubeMX本质上是独立的东西。
  6. CubeMX和keil MDK是不同作用的东西。

你可能感兴趣的:(单片机,单片机,芯片,大数据,人工智能,物联网)