【发布时间】:2014-05-09 20:00:28
【问题描述】:
Keil ARM uVision4,处理器 LPC1768 是否可以在内存中定义的位置共享一个变量,以便引导加载程序和用户应用程序设置/查看这个变量?
【问题讨论】:
Keil ARM uVision4,处理器 LPC1768 是否可以在内存中定义的位置共享一个变量,以便引导加载程序和用户应用程序设置/查看这个变量?
【问题讨论】:
这是可能的,但你必须正确设置你的内存空间。
一个解决方案是在你的分散加载描述文件中设置一段内存,这样内存就不会在启动和应用程序之间进行初始化。例如,您可以通过留出一段内存来设置一个名为 NoInit 的部分 -
RW_IRAM0 0x100000000 UNINIT 0x0000001F {
*(NoInit)
}
然后在您的启动和应用程序中,您都可以定义一个驻留在该空间中的变量:
static unsigned long system_flags __attribute((section("NoInit"), zero_init));
希望这有助于您走上正轨!
【讨论】:
NoInit 部分在 Scatter-loading Description 文件中定义得足够大,然后在定义/初始化结构时使用如上所示的相同属性。