【发布时间】:2020-12-20 17:56:48
【问题描述】:
我想为闪存访问模块编写一些单元测试。我有
extern char_t _internal_flash_start[]; /**< Exported from ICF file. */
extern char_t _internal_flash_end[]; /**< Exported from ICF file. */
我认为将我自己的数组作为闪存内容注入是完美的,因为在应用程序中这些符号是通过链接器文件提供的。在我的测试中,我想要这样的东西:
char_t _internal_flash_start[2048]; /**< Exported from ICF file. */
char_t _internal_flash_end[1];
但我需要第二个数组在第一个数组之后开始。我尝试了很多,但我无法让它为我工作。有没有办法实现给定的声明并在内存中有连续的数组?
[编辑 1/2021]
我需要_internal_flash_end 位于_internal_flash_start + sizeof(_internal_flash_start) 的地址,因为代码必须通过这些名称引用数组。
【问题讨论】:
-
我仍然在给定的答案中看不到有效的解决方案。我需要 _internal_flash_end 位于 _internal_flash_start + sizeof(_internal_flash_start) 的地址,因为代码必须通过这些名称引用数组。
-
这样的任务通常不会在 C 中完成,而是通过指示链接器定义符号或使用汇编语言来完成。
标签: arrays c static-memory-allocation