【STM32的CubeMX和HAL库】STM32的Cube和HAL生态是怎么回事

目录

  • 单片机软件开发的时代变化
  • STM32软件开发的各种模式
  • 有关软件和补丁的下载和安装
  • 生态系统真的很重要


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


1、单片机的演进过程
(1)第1代:4004、8008、Zilog那个年代(大约1980年代之前)
(2)第2代:51、PIC8/16、AVR那个年代(大约2005年前)
(3)第3代:51、PIC32、Cortex-M0、M1、M3年代(大约2005年到现在)
(4)第4代:51、STM8/MSP430、PIC、Cortex-M4、M7、低功耗系列(现在到将来5-10年)

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

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

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


STM32软件开发的各种模式


1、第1代:寄存器开发
2、第2代:标准库开发
3、第3代:HAL/LL库 + STM32CubeMX工具开发
(1)HAL(hardware abstract layer)、LL(lowerlevel layer)
(2)HAL库的优势是便于在不同型号的STM32芯片之间移植,劣势是代码效率低
(3)LL库几乎等同于直接操作寄存器
(4)CubeMX工具是ST的一站式开发包,层级高于SDK包,包含了STM32芯片开发的所有官方资源,提供了友好的使用方法;CubeMX是一个windows上的IDE软件;CubeMX是一个工具包加芯片容器,各系列芯片资料以插件补丁形式安装;
(4)HAL/LL库和CubeMX本质上是独立的东西,只是配合使用而已。
(5)CubeMX和Keil MDK是不同作用的东西,要搞清楚。

4、我们应该如何学习
(1)拥抱变化,站在时代前沿。固守成规是最愚蠢的。
(2)换汤不换药,本质从未变过,变得只是表面。
(3)作者推崇的态度:积极学习并使用新东西,好好利用新工具,但不要丢掉老知识和技能。
(4)原来就学了会了标准库的寄存器开发的,继续拓展学习HAL库和新工具就行了,你会发现体力活变少了,核心技能要求还是一样越来越高。
(5)ARM、单片机厂商、MDK/IAR等IDE厂商、freeRTOS/LiteOS/rt-thread/AliOS/uCOS等厂商、华为云/阿里云/机智云/亚马逊/IBM等云厂商,大家都在布局,都在做体系,要注意去体会各家的不同资源和立场、不同玩法,找到最适合自己的东西来用。


有关软件和补丁的下载和安装


1、STM32CubeMX软件下载和安装
(1)在 首页搜索STM32CubeMX即可找到下载页
(2)分STM8版本和STM32版本
(3)尽量安装最新版,可以打开旧版本创建的工程;反之不可以。

2、MCU系列的firmware补丁包下载安装
(1)安装包搜STM32Cube也能搜到
(2)可以在CubeMX工具中在线下载安装,但是实际感觉不好用
(3)推荐到STM32官网下载离线包,然后本地导入

【STM32的CubeMX和HAL库】STM32的Cube和HAL生态是怎么回事_第1张图片

【STM32的CubeMX和HAL库】STM32的Cube和HAL生态是怎么回事_第2张图片

3、STM32的FW补丁结构分析
(1)每个系列(如L4、F1)是一个整体的补丁包
(2)每个系列都有不同的版本号,而且会不断升级
(3)可以在STM32CubeMX工具中在线升级安装,也可以到官网下载然后本地import
(4)所谓安装其实就是解压开放到了一个位置中,里面包含了HAL库源码等对开发有用的文件

【STM32的CubeMX和HAL库】STM32的Cube和HAL生态是怎么回事_第3张图片
4、
MDK5最新版本软件下载
MDK的pack下载路径


生态系统真的很重要


1、从小米的物联网生态说起
(1)商业上小米是比较早构建生态的,事实证明很成功
(2)生态系统的本质是资源的更合理、更低成本、更快速配置
(3)信息化让商业生态重要性更高

2、软件开发行业也是生态为王
(1)Wintel时代围绕微软Windows和Office的PC软件生态帝国
(2)iOS的内聚生态成就了苹果的优秀和成功
(3)android的开放生态主宰了当前的移动互联网时代,并将继续主宰

3、单片机开发领域生态竞争鏖战正酣
(1)物联网时代的来临使单片机站到了风口,列强环伺都盯上这块了
(2)ARM在CPU内核方面是目前霸主,但是也有RISC-V等在挑战
(3)开发环境方面MDK、IAR、gcc、DS等都有人用
(4)芯片方面STM32前几年积累的优势很大(尤其国内),STM32的开发生态也做的很好;但是TI、freescale、瑞萨、Atmel等其他厂商也有各自一定优势
(5)RTOS方面ucos、freertos、liteos、rtthread、alios等涌现出很多
(6)云方面国内阿里云、华为云、机智云等,国外amazon、google等也有很多
(7)无线通信领域WIFI、BT、nbiot、Lora、4G等多种方式都在快速发展演化
(8)下游应用厂商一大批也都在努力,各种新的开发模式和商业模式每天都在涌现

4、作者的看法
(1)开发生态的本质是让开发更快速、更简单、更直达目标、更低成本。
(2)开发者的个人价值和发展和开发生态的价值和发展并不完全重合,甚至有时候还矛盾冲突
(3)建议1:回归本质,打好根基、练好内功,以不变应万变
(4)建议2:积极拥抱变化,学习新技术、新开发方式、新语言、努力跟上时代
(5)单片机开发的未来在于:低功耗、联网连云、RTOS、安全和加密等方向点

你可能感兴趣的:(#,STM32学习)