【发布时间】:2015-01-05 05:18:59
【问题描述】:
这个问题是关于嵌入式控制器的。 我想在内存中初始化一个 const 数组。但是在将这个数组存储在内存中时,我想将它存储在特定的位置,比如 0x8000。这样我想占用一些代码内存,以便在运行时我可以擦除它部分并将其用于我自己的其他目的。 基本上我想这样做:
const unsigned char dummy_string[] = "This is dummy string";
但是dummy_string 的地址应该在我手中。就像我可以分配任何我想要的地址。
【问题讨论】:
-
C 还是 C++?每个人的答案都不一样。
-
" 并将其用于我自己的其他目的" - 代码注入?
-
可以使用
mmap()指定您的地址。虽然地址是虚拟的。 -
@cdhowie - 我想在 C 中执行此操作,但 C++ 也可以
-
我建议您将过程分成两个阶段:(1)使用闪存编程器在闪存中编程所需的初始值; (2) 在运行时使用简单转换访问值:
(volatile unsigned char *)0x8000。 msp430 flash 地址可以作为 RAM 地址读取。写入需要擦除 + 写入。
标签: c arrays embedded constants