STM32程序–C语言学习

一、在STM32中全局变量的初始化

1、在STM32程序中定义全局变量时

 const int a = 123;

在Keil中进行Debug调试,此时a的地址为0x0800 xxxx,在Flash中。

 volatile const int a = 123;

此时a 的地址为0x2000 xxxx,在RAM中。

二、核心问题

  1. 有值的全局函数的初始化
    • 类似memcpy ,把Flash上的数据段,整体拷贝到RAM。
  2. 初始值为0、没有初始化的全局变量
    • 这些变量在内存里都放在ZI段。
    • 类似memset·,把ZI段全部清零。
  3. 执行完前最后执行调用main函数。

更多推荐