前言
有些时候在我们的应用过程中要求变量有连续性,或者现场保留,例如 Bootloader 跳转,某种原因的复位过程中我们有些关键变量不能被初始化,在不同的编译环境下有不同的设置,本文就这个操作做总结,分别介绍使用 Keil,IAR 和 CubeIDE 的操作方法,本文中所用芯片为STM32G431RBT6。
IAR 实现变量不初始化方法
IAR 实现相对简单,直接使用“__no_init”这个关键字即可,也就是在变量前面进行修饰。
Keil 实现变量不被初始化方法
Keil 中没有像 IAR 里面的这个关键字,而且会有版本的区别。
CubeIDE 实现变量不初始化方法
CubeIDE 的实现和 Keil 有类似的操作,需要修改 linker file 文件*.ld。
阅读全文