乐鑫技术交流
直播中

李斌

7年用户 1335经验值
私信 关注
[问答]

如何在DRAM的特定字段中干净地创建变量呢?

您好,我需要在 DRAM 中的绝对地址中创建变量。
我使用了一种肮脏的方法来做到这一点。
sections.ld
代码:全选
config :
   {
     . = ALIGN(4);
     KEEP (*(.config))
   } > CONFIG
   tracks :
   {
    . = ALIGN(4);
    KEEP (*(.tracks))
   } > TRACKS
内存.ld
代码:全选
CONFIG (RW) : org = 0x3FCC0000, len = 0x4000
TRACKS (RW) : org = 0x3FCC4000, len = 0x4000
在 C 代码中
代码:全选
static const volatile LoggerConfig g_savedLoggerConfig  __attribute__((section(".config
        #")));



顺便说一下,我的项目是一个自定义的 Cmake 项目。
当我更改 CMakeLists 文件时, memory.ld 和部分.ld 文件更改。
而且我不确定我是否真的分配了这些空间。
任何任务都不应该在这些字段中自动生成数据。
我之所以这样说是因为当我更改我认为已分配的区域中的数据时,wifi 任务被破坏了。
当我在 DRAM 的另一个区域分配数据时,问题已解决。
这对我来说是一个奇怪的情况,
现在问我的问题:
如何在 DRAM 的特定字段中干净地创建变量?

更多回帖

发帖
×
20
完善资料,
赚取积分