首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用Keil/armclang/armlink在内存区域中放置一个变量吗?

我可以使用Keil/armclang/armlink在内存区域中放置一个变量吗?
EN

Stack Overflow用户
提问于 2021-09-27 17:38:02
回答 1查看 55关注 0票数 0

我有一个由Keil生成的链接器散布文件,如下所示:

代码语言:javascript
复制
LR_IROM1 0x08020000 0x001E0000  {
  ER_IROM1 0x08020000 0x001E0000  {
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20020000 0x00060000  {
   .ANY (+RW +ZI)
  }
  RW_IRAM2 0x20000000 0x00020000  {
   .ANY (+RW +ZI)
  }
}

理想情况下,出于各种原因,我希望继续使用IDE配置的散点文件。但是,我没有看到任何让Keil添加额外的链接器部分的方法。

我天真地认为我可以使用如下命令在RW_IRAM2区域中放置一个变量:

代码语言:javascript
复制
uint32_t in_ram2 __attribute__((section("RW_IRAM2")));

我也尝试过像".RW_IRAM2“和"".RW_IRAM2.bss”这样的东西,但是变量总是在IRAM1区域结束。看完文档后,我发现没有任何方法可以做到这一点,除非丢弃由Keil配置/创建的散布文件。

EN

回答 1

Stack Overflow用户

发布于 2021-10-08 14:39:32

您可以将其放在显式地址中,如下所示:

代码语言:javascript
复制
uint32_t in_ram2 __attribute__((section(".ARM.__at_0x20000000")));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69351029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档