ZHCAFV0 June 2026 CC2340R5 , CC2745R10-Q1
非初始化变量区是指在系统上电或软复位(如 OTA 升级)时不会被清零或重新赋值的内存区域,常用于在程序重启后仍需保留的数据。
要使用初始化变量区定义以及使用变量,需要三步操作:
.TI.noinit : > SRAM, type = NOINIT
为了将数据放置在非初始化变量区域中,应用程序必须使用编译器属性声明并将其放置在 .TI.noinit 部分中。
__attribute__((noinit)) int noinit_global;
__attribute__((noinit,location(0x100))) int noinit_location_global;
以上图的代码为例。每5秒钟,就会软复位,noinit_global 会一直增加,并不会初始化为 0。
请注意:硬件复位(掉电重启 /reset 引脚复位)会使该变量重置。如果需要掉电保持,请使用 NV。