第一代:寄存器开发
第二代:标准库开发
第三代:HAL\LL库 + STM32CubeMX工具开发
① HAL(hardware abstract layer)、LL(lowerlevel layer)
② HAL库的优势是便于在不同型号的STM32芯片之间移植,劣势是代码效率低
③ LL库几乎等同于直接操作寄存器
④ CubeMX工具是ST的一站式开发包,层级高于SDK包,包含了STM32芯片开发的所有官方资源,提供了友好的使用方法;
CubeMX是一个Windows上的IDE软件;
CubeMX是一个工具包加芯片容器,各系列芯片资料以插件补丁形式安装。
⑤ HAL/LL库和CubeMX本质上是独立的东西,只是使用上纠缠在一起了而已;
⑥ CubeMX 和 Keil MDK 是不同的东西,要搞清楚。
我们应该如何学习
① 拥抱变化,站在时代前沿。固守成规是最愚蠢的。
② 换汤不换药,本质从未变过,变的只是表面。
③ 积极学习并使用新东西,好好利用新工具,但不要丢掉老知识和技能。
④ 原来就学会了标准库和寄存器开发的,继续拓展学习HAL库和新工具会发现体力活变少了,核心技能要求还是一样越来越高。
⑤ ARM、单片机厂商、MDK\IAR等IDE厂商、freeRTOS/LiteOS/rt-thread/AliOS/uCOS等厂商;华为云/阿里云/机智云/亚马逊/IBM等云厂商。大家都在布局,都在做体系,要注意去体会各家的不同资源和市场、不同玩法,找到最适合自己的东西来用。