Retention_mem_area0中的变量

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
斯坦利_yeh.
离线
最后一次露面:1年9个月前
加入:2016-12-23 06:52
Retention_mem_area0中的变量

你好呀,
我声明了许多变量,例如以下示例......
静态UINT8_T测试__Attribute __((部分(“保留_mem_area0”),ZERO_INIT));

我的问题是......
1.在打印变量的地址后,它是0x7FD4804(在Sysram4 :)中。为什么?
2.为什么变量不存储在Sysram1中?
3.是否表示将在延长睡眠模式下清除变量?但是变量的值仍然是正确的,为什么?

4.此外,如果我想要保留一些“全局变量”或“函数静态变量”,则应添加这些变量“__Attribute __((”Retention_mem_area0“),Zero_Init)”描述,是真实的?

5.如果该区域已满,我该怎么知道?

6.如果我想给变量初始值,我可以写:“静态UINT8_T测试__Attribute __((部分(”保留_mem_area0“))))= 0xFF;”?

非常感谢。

关键词:
设备:
mhv_dialog
离线
最后一次露面:3周6天前
职员
加入:2013-12-06 15:10
你好,

你好,

  1. Sysram 4是保留记忆区域0所在的位置
  2. 看上面
  3. Sysram4中的变量在睡眠期间保留
  4. 那是真实的
  5. 该项目未能链接
  6. 是的,这就是它的完成

/ mhv.

斯坦利_yeh.
离线
最后一次露面:1年9个月前
加入:2016-12-23 06:52
太感谢了!

太感谢了!

斯坦利_yeh.
离线
最后一次露面:1年9个月前
加入:2016-12-23 06:52
嗨mhv,

嗨mhv,
我发现项目6的问题。
如果我使用“静态Int8_t time_zone __Attribute __((部分(”Retention_mem_area0“)))= 0x08;”,Init值0x08将位于Bin文件的0x14404地址。
它会导致我的bin文件变得大尺寸(从30 kB - > 80 kB)。0x9EE0和0x14403之间有0xFF。
我无法理解,你有什么想法吗?
非常感谢。

mt_dialog.
离线
最后一次露面:1个月3天前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

出于此的原因是,当您在保留存储区域中应用初始化值时,那就是保留存储区域远离实际代码作为地址,当您在保留区域中应用初始化变量时链接器无法正确处理它,并且生成的二进制文件在大地址中扩展(它将明确地硬码该特定存储器地址中变量的值以及直到该值的巨大填充)。作为周围的工作,可以将变量设置为零初始化,然后通过代码应用值。

谢谢mt_dialog.

斯坦利_yeh.
离线
最后一次露面:1年9个月前
加入:2016-12-23 06:52
太感谢了。:)

太感谢了。:)