问题背景:
项目中会用到当遇到非上电复位的复位时,希望对某些变量进行保存。正常很多情况下复位都会对变量进行初始化;按照RAM的特性,只要你不掉电,你在RAM中的数据是不会丢失的,RAM都帮你保持的。之所以复位之后变量都被初始化,因为变量所在的Section,复位之后就会被初始化,要想它不被初始化,就必须划分一个字段Section,让系统复位之后不初始化存在在这个字段SECTION的值。所幸的是,SES默认就划分了一块.no_init字段,我们只要在这个字段定义变量,复位之后就不会被初始化;
/**
* 应用程序的函数入口
* @param[in] NULL
* @retval NULL
* @par 修改日志
* Ver0.0.1:
Helon_Chan, 2018/06/09, 初始化版本\n
*/
//uint32_t nums_s __attribute__((section(".retained_section")));
uint32_t nums_s __attribute__((section(".non_init")));
//uint32_t temp = 0;
//uint32_t nums_s = 0;
//nums_s = temp;
int main(void)
{
/* log函数初始化 */
if(nums_s > 0xFF)
{
nums_s = 0;
}
log_init();
NRF_LOG_INFO("/******************************************************************************/\n");
NRF_LOG_INFO(" Welcome to wireless-tech world \n");
NRF_LOG_INFO(" website :bbs.wireless-tech.cn \n");
NRF_LOG_INFO(" QQ Group:671139854 \n");
NRF_LOG_INFO("/******************************************************************************/\n");
for(int i =0;i < 8;i++)
{
nums_s++;
NRF_LOG_INFO("nums_s is %d\r\n",nums_s);
}
}
实验的效果
******************************************************************************/
<info> app: Welcome to wireless-tech world
<info> app: website :bbs.wireless-tech.cn
<info> app: QQ Group:671139854
<info> app: /******************************************************************************/
<info> app: nums_s is 17
<info> app: nums_s is 19
<info> app: nums_s is 20
<info> app: nums_s is 21
<info> app: nums_s is 22
<info> app: nums_s is 23
<info> app: nums_s is 24
<info> app: /******************************************************************************/
<info> app: Welcome to wireless-tech world
<info> app: website :bbs.wireless-tech.cn
<info> app: QQ Group:671139854
<info> app: /******************************************************************************/
<info> app: nums_s is 25
<info> app: nums_s is 26
<info> app: nums_s is 27
<info> app: nums_s is 28
<info> app: nums_s is 29
<info> app: nums_s is 30
<info> app: nums_s is 31
<info> app: nums_s is 32
<info> app: /******************************************************************************/
<info> app: Welcome to wireless-tech world
<info> app: website :bbs.wireless-tech.cn
<info> app: QQ Group:671139854
<info> app: /******************************************************************************/
<info> app: nums_s is 33
<info> app: nums_s is 35
<info> app: nums_s is 36
<info> app: nums_s is 37
<info> app: nums_s is 38
<info> app: nums_s is 39
<info> app: nums_s is 40
<info> app: /******************************************************************************/
<info> app: Welcome to wireless-tech world
<info> app: website :bbs.wireless-tech.cn
<info> app: QQ Group:671139854
<info> app: /******************************************************************************/
<info> app: nums_s is 41
<info> app: nums_s is 42
<info> app: nums_s is 43
<info> app: nums_s is 44
<info> app: nums_s is 45
<info> app: nums_s is 46
<info> app: nums_s is 47
<info> app: nums_s is 48