发新帖我要提问
123
返回列表
打印
[STM32G4]

STM32 G431

[复制链接]
楼主: sj8zw8
手机看帖
扫描二维码
随时随地手机跟帖
41
sj8zw8|  楼主 | 2023-12-26 12:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
4.主函数区域:执行主函数,进入while大循环

5.其他中断函数入口地址:发生中断后,中断位置自动激发,告诉CPU中断入口地址,CPU去执行中断

所以,在启动文件执行的时候,内核和每个外设的中断服务函数的地址都是已经确定好的,地址就存放在中断向量表中,而且在启动文件里面已经写好了中断服务函数,只是这些中断服务函数为空,而且带[weak]弱定义

使用特权

评论回复
42
sj8zw8|  楼主 | 2023-12-26 12:01 | 只看该作者
那么需要在C文件里面重新实现这个中断服务函数,用户写这个中断服务函数的时候,函数名必须跟启动文件里面写的中断函数名对应,因为函数名对应的就是中断服务函数的地址,如果中断服务函数名和启动文件的名字不一样,就默认启动文件里面预先写好的空的中断服务函数,而且是一个死循环,程序就会一直卡死在中断服务函数里面

使用特权

评论回复
43
sj8zw8|  楼主 | 2023-12-26 12:01 | 只看该作者
五、库介绍
1.HAL库:ST官方推崇的新编程库;HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。HAL使用了比较大的Flash和SRAM。

使用特权

评论回复
44
sj8zw8|  楼主 | 2023-12-26 12:02 | 只看该作者
2.LL库(Low Layer):ST最近新增的库,与HAL捆绑发布,文档也是和HAL文档在一起的LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。其支持所有外设。使用方法:独立使用,该库完全独立实现,可以完全抛开HAL库,只用LL库编程完成。在使STM32CubeMX生成项目时,直接选LL库即可。如果使用了复杂的外设,例如USB,则会调用HAL库混合使用,和HAL库结合使用。编译后LL库只有HAL库的33%体积。\

使用特权

评论回复
45
sj8zw8|  楼主 | 2023-12-26 12:02 | 只看该作者
3.标准固件库:旧版本编程库;HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了

使用特权

评论回复
46
sj8zw8|  楼主 | 2023-12-26 12:02 | 只看该作者
4.寄存器编程:原始底层编程。HAL库和标准库就是ST官方对寄存器编程进行人性化封装后的产物

使用特权

评论回复
47
sj8zw8|  楼主 | 2023-12-26 12:02 | 只看该作者
六、编译过程

使用特权

评论回复
48
sj8zw8|  楼主 | 2023-12-26 12:03 | 只看该作者
1.将 .c 文件编译和 .s 文件汇编,生成 .o 目标文件

2.将 .o 对象文件和内存映射规范文件 通过连接器 生成可执行映像文件。MDK是生成 .axf 可执行文件

3.通过闪存编程器将可执行映像文件下载到芯片的Flash中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则