【STM32的Cube和HAL生态】

目录

章节介绍

1.单片机软件开发的时代变化
  本节介绍单片机的发展演进历史,和单片机开发方式的演进历史,在对比中让大家逐步意识到开发方式的变迁过程。
2.STM32软件开发的各种模式
  本节以STM32为目标讲解单片机软件开发的各种模式,在对比中让大家体会各种开发方式的好坏和差异,理解为什么后面的开发方式要更有优势。
3.STM32CubeMX工具入门与MDK5
  本节讲述STM32CubeMX工具的安装和补丁安装,基本使用方法等。
  MDK5做系统讲解和补充讲解,目的是让大家对MDK5的使用和一些小细节更加熟悉
4.STM32的FW补丁结构分析
  本节详细讲解STM32的FirmWare补丁的内容和结构,HAL库就在这里面
5.生态系统真的很重要
  本节是对本课程的总结,从商业和软件开发这2个角度去讲生态系统的重要性。本节内容格局较高,好好体会对自己绝对受益无穷。

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

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

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

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

二、STM32软件开发的各种模式

2.1、STM32开发的模式演进
第1代:寄存器开发
第2代:标准库开发
第3代:HAL/LL库 + STM32CubeMX工具开发

2.2、HAL与CubeMX
(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是不同作用的东西,要搞清楚。

2.3、如何学习
(1)拥抱变化,站在时代前沿。固守成规是最愚蠢的。
(2)换汤不换药,本质从未变过,变得只是表面。
(3)积极学习并使用新东西,好好利用新工具,但不要丢掉老知识和技能。

三、 STM32CubeMX工具入门与MDK5

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

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

MDK5最新版本软件下载:http://www2.keil.com/mdk5
MDK的pack下载路径:https://www.keil.com/pack

3.3、MDK5使用的一些细节
(1)工程建立和输出文件夹设计 (不需要自己新建文件)
(2)C/C++栏下的预定义宏
(3)C/C++栏下的头文件包含设计
(4)use microlib (串口通信
(5)选择合适的MCU型号
(6)debug中选择合适的调试器
(7)MCU中flash的下载算法设置

3.4、其他几种STM32开发的IDE
(1)IAR EWARM
(2)RVDS/ADS1.2
(3)gcc
(4)TrueStudio
(5)MDK4

四、STM32的FW补丁结构分析

4.1、整体情况
(1)每个系列(如L4、F1)是一个整体的补丁包
(2)每个系列都有不同的版本号,而且会不断升级
(3)可以在STM32CubeMX工具中在线升级安装,也可以到官网下载然后本地import
(4)所谓安装其实就是解压开放到了一个位置中 (C盘-用户-个人用户-stm32cube中)

4.2、FW各文件夹内容浏览
在这里插入图片描述

五、生态系统真的很重要

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

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

5.3、单片机开发领域生态
(2)ARM在CPU内核方面是目前霸主,但是也有RISC-V等在挑战
(3)开发环境方面MDK、IAR、gcc、DS等都有人用
(4)芯片方面STM32前几年积累的优势很大(尤其国内),STM32的开发生态也做的很好;但是TI、freescale、瑞萨、Atmel等其他厂商也有各自一定优势
(5)RTOS方面ucos、freertos、liteos、rtthread
(6)云方面国内阿里云、华为云,国外amazon、google等也有很多
(7)无线通信领域WIFI、nbiot、Lora、4G等多种方式

5.4、STM32生态系统
STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单
STM32Cube生态系统包括两大部分PC软件工具(STM32CubeMX)和软件库(mcu packages)
STM32生态系统文章:
超链接:STM32强大的生态
超链接:初识 STM32Cube生态系统

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

注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tyx-☆、、、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值