设为首页收藏本站

无线通信技术社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 185|回复: 2

[经验分享] 如何在SES中实现热启动时,RAM保持

[复制链接]

30

主题

328

帖子

2409

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2409
发表于 2019-1-16 23:37:39 | 显示全部楼层 |阅读模式
问题背景:

项目中会用到当遇到非上电复位的复位时,希望对某些变量进行保存。正常很多情况下复位都会对变量进行初始化;按照RAM的特性,只要你不掉电,你在RAM中的数据是不会丢失的,RAM都帮你保持的。之所以复位之后变量都被初始化,因为变量所在的Section,复位之后就会被初始化,要想它不被初始化,就必须划分一个字段Section,让系统复位之后不初始化存在在这个字段SECTION的值。所幸的是,SES默认就划分了一块.no_init字段,我们只要在这个字段定义变量,复位之后就不会被初始化;




如何操作:


  1. /**
  2. * 应用程序的函数入口
  3. * @param[in]   NULL
  4. * @retval      NULL
  5. * @par         修改日志
  6. *              Ver0.0.1:
  7.                   Helon_Chan, 2018/06/09, 初始化版本\n
  8. */
  9. //uint32_t nums_s __attribute__((section(".retained_section")));
  10. uint32_t nums_s __attribute__((section(".non_init")));
  11. //uint32_t temp = 0;
  12. //uint32_t nums_s = 0;
  13. //nums_s = temp;
  14. int main(void)
  15. {
  16.   /* log函数初始化  */
  17.   
  18.   if(nums_s > 0xFF)
  19.   {
  20.         nums_s = 0;
  21.   }
  22.   log_init();
  23.   NRF_LOG_INFO("/******************************************************************************/\n");
  24.   NRF_LOG_INFO("                         Welcome to wireless-tech world                         \n");
  25.   NRF_LOG_INFO("                         website :bbs.wireless-tech.cn                          \n");
  26.   NRF_LOG_INFO("                         QQ Group:671139854                                     \n");
  27.   NRF_LOG_INFO("/******************************************************************************/\n");

  28.   for(int i =0;i < 8;i++)
  29.   {
  30.         nums_s++;
  31.     NRF_LOG_INFO("nums_s is %d\r\n",nums_s);
  32.   }

  33. }
复制代码

实验效果:

  1. ******************************************************************************/

  2. <info> app:                          Welcome to wireless-tech world                        

  3. <info> app:                          website :bbs.wireless-tech.cn                          

  4. <info> app:                          QQ Group:671139854                                    

  5. <info> app: /******************************************************************************/

  6. <info> app: nums_s is 17

  7. <info> app: nums_s is 19

  8. <info> app: nums_s is 20

  9. <info> app: nums_s is 21

  10. <info> app: nums_s is 22

  11. <info> app: nums_s is 23

  12. <info> app: nums_s is 24

  13. <info> app: /******************************************************************************/

  14. <info> app:                          Welcome to wireless-tech world                        

  15. <info> app:                          website :bbs.wireless-tech.cn                          

  16. <info> app:                          QQ Group:671139854                                    

  17. <info> app: /******************************************************************************/

  18. <info> app: nums_s is 25

  19. <info> app: nums_s is 26

  20. <info> app: nums_s is 27

  21. <info> app: nums_s is 28

  22. <info> app: nums_s is 29

  23. <info> app: nums_s is 30

  24. <info> app: nums_s is 31

  25. <info> app: nums_s is 32

  26. <info> app: /******************************************************************************/

  27. <info> app:                          Welcome to wireless-tech world                        

  28. <info> app:                          website :bbs.wireless-tech.cn                          

  29. <info> app:                          QQ Group:671139854                                    

  30. <info> app: /******************************************************************************/

  31. <info> app: nums_s is 33

  32. <info> app: nums_s is 35

  33. <info> app: nums_s is 36

  34. <info> app: nums_s is 37

  35. <info> app: nums_s is 38

  36. <info> app: nums_s is 39

  37. <info> app: nums_s is 40

  38. <info> app: /******************************************************************************/

  39. <info> app:                          Welcome to wireless-tech world                        

  40. <info> app:                          website :bbs.wireless-tech.cn                          

  41. <info> app:                          QQ Group:671139854                                    

  42. <info> app: /******************************************************************************/

  43. <info> app: nums_s is 41

  44. <info> app: nums_s is 42

  45. <info> app: nums_s is 43

  46. <info> app: nums_s is 44

  47. <info> app: nums_s is 45

  48. <info> app: nums_s is 46

  49. <info> app: nums_s is 47

  50. <info> app: nums_s is 48
复制代码




回复

使用道具 举报

15

主题

49

帖子

602

积分

高级会员

Rank: 4

积分
602
发表于 2019-1-17 15:47:02 | 显示全部楼层
mdk、iar能直接这样写吗?
回复 支持 反对

使用道具 举报

30

主题

328

帖子

2409

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2409
 楼主| 发表于 2019-1-17 17:46:40 | 显示全部楼层
硬件设计 发表于 2019-1-17 15:47
mdk、iar能直接这样写吗?

不能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|  

© 无线通信技术社区 版权所有 技术支持:壹网

快速回复 返回顶部 返回列表