【问题标题】:IAR define memory region for custom dataIAR 为自定义数据定义内存区域
【发布时间】:2015-11-09 20:35:49
【问题描述】:

我想在 STM32 micro 中定义一个特定的内存区域来存储一些字符串。我正在使用 IAR 编译器,但我没有找到一个简单的示例可以帮助我使用 icf 文件以正确的方式创建区域。如何创建区域并在代码中使用该区域?谢谢

【问题讨论】:

  • 这个例子 (supp.iar.com/Support/?note=27498) 不清楚吗?
  • 是不清楚,因为在示例中您可以看到功能的分配。在我的情况下,我想创建一个示例 1K 的内存区域,用于放置字符串列表。
  • 这么贵的工具链却没有支持?
  • 我一直希望在这里得到一个快速的答复! :-)

标签: c linker embedded stm32 iar


【解决方案1】:

我找到了这个解决方案:

在icf文件中我是这样定义内存区域的:

define region LANGUAGE_region   = mem:[from 0x080FB000 to 0x080FC000];
"LANGUAGE_PLACE":place at start of LANGUAGE_region  { section .LANGUAGE_PLACE.noinit };

我将使用程序员用一个外部 srec 文件填充这个区域。 为了用一个简单的程序(使用整数)测试这个区域,我使用了这个声明:

在标题中:

extern const unsigned int mydata @".LANGUAGE_PLACE.noinit";

在C文件中:

const unsigned int mydata;

在调试器中,我可以在 0x0800FB000 处看到 mydata 常量的正确地址

【讨论】:

  • 您想将字符串存储在一个整数中......?考虑到这个问题,这段代码有什么意义?你不应该有一个二维字符数组吗?
  • 对我来说重要的是找到一种在闪存中创建区域的方法。我在示例代码中使用了一个整数,只是为了测试我所在区域的起始地址是否受到尊重。那我就试着把字符串数组,
猜你喜欢
  • 2016-05-07
  • 2011-03-30
  • 1970-01-01
  • 2014-11-02
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多