5.1单片机软件开发的时代变化 5.1.1、单片机的演进过程
(1)第一代:4004、8008、Zilog那个年代(大概1980年之前)
(2)第二代:51、pic8/16、AVR那个年代(大概2005年前) (3)第三代:51、PIC32、Cortex-M0、M1、M3年代(大概2005年到现在)
(4)第四代:51、STM8/MSP430、PIC、Cortex-M4、M7、低功耗系列(现在到将来5-10年)
5.1.2、单片机开发的演进过程 (1)第一代:不详
(2)第二代:汇编和c语言都有,还有一些原厂自己开发的如:EZcode等
(3)第三代:出现单片机厂商提供的外设库,典型的如STM32的标准库 (4)第四代:库是标配和发展的方向,库考虑更多硬件兼容性,库集成更多组件,库面向网络功能
(5)第五代:未来库面向云端对接、库面向上层语言如python的接口、提供辅助工具如STM32CubeMX
5.1.3、演进的内在动力和原因、方向
5.1.4、演进的技术方向
(1)单片机开发在走PC、手机等以CPU为核心的产品的老路:底层和细节越来越成熟,ARM提供CPU的库、单片机厂商提供外设库,单片机软件工程师直接基于这些库来构建自己的应用。 (2)提供GUI式的辅助开发工具,加速并简化产品开发 (3)提供一整套开发生态而不只是一个SDK包 (4)提供HAL抽象层驱动来加速产品移植和选型,增加客户粘度。5.1.2.STM32软件开发的各种模式
5.1.2.1、第1代:寄存器开发
5.1.2.2、第2代:标准库开发
5.1.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是一个工具包加芯片容器,各系列芯片资料以插件补丁形式安装;
(5)HAL/LL库和CubeMX本质上是独立的东西,只是使用上纠缠在一起了而已。
(6)CubeMX和Keil MDK是不同作用的东西,要搞清楚5.1.3.STM32CubeMX工具入门
5.1.3.1、STM32CubeMX软件下载和安装
(1)在http://www.stmicroelectronics.com.cn/ 首页搜索STM32CubeMX即可找到下载页
(2)分STM8版本和STM32版本
(3)尽量安装最新版,可以打开旧版本创建的工程;反之不可以。
5.1.3.2、MCU系列的firmware补丁包下载安装
(1)安装包搜STM32Cube也能搜到
(2)可以在CubeMX工具中在线下载安装,但是实际感觉不好用(3)推荐到STM32官网下载离线包,然后本地导入5.1.3.3、软件的大体浏览和基本介绍
(1):cubeMX安装好了
(2):该芯片型号
5.1.4.MDK5的全面介绍
5.1.4.1、MDK5和之前的版本问题
MDK5最新版本软件下载:http://www2.keil.com/mdk5
MDK的pack下载路径:https://www.keil.com/pack
5.1.4.2、MDK5的下载和安装
5.1.4.3、MDK5的MCU系列pack包下载和安装
(1)下载
(2)安装
(3)装到哪里去了?里面都有什么?
5.1.4.4、MDK5使用的一些细节
(1)工程建立和输出文件夹设计
(2)C/C++栏下的预定义宏
(3)C/C++栏下的头文件包含设计
(4)use microlib
(5)选择合适的MCU型号
(6)debug中选择合适的调试器
(7)MCU中flash的下载算法设置
5.1.4.5、其他几种STM32开发的IDE
(1)IAR EWARM
(2)RVDS/ADS1.2
(3)gcc
(4)TrueStudio
(5)MDK45.1.5.STM32的FW补丁结构分析
5.1.5.1、整体情况
(1)每个系列(如L4、F1)是一个整体的补丁包
(2)每个系列都有不同的版本号,而且会不断升级
(3)可以在STM32CubeMX工具中在线升级安装,也可以到官网下载然后本地import
(4)所谓安装其实就是解压开放到了一个位置中
5.1.5.2、FW各文件夹内容浏览 5.1.7.生态系统真的很重要