我想在STM32F103上定义一个不是常量的查找表,就是一个闪存页面在正常操作中显示,但每隔一段时间我希望能够擦除该表并将一个新表写入闪存页面。我知道如何使用HAL函数在我的程序中执行我需要的操作,但我需要在链接器文件中声明这个内存块并且我在查找示例时遇到了很多麻烦。CubeMX的默认mem.ld如下所示:
- <font size="4">MEMORY
- {
- FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
- }</font>
复制代码
看起来我需要一个输出部分块之后,我提交一个关键字> FLASH但我不知道将是什么关键字或如何在代码中声明表以给它正确的地址。我已经看过模拟的EEPROM应用笔记,但对于内存来说,似乎需要额外的大量开销才能看到足够的擦除/写入周期来关注内存的生命周期。有人知道要怎么做吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
但最简单的方法是按页面大小减少FLASH部分,然后:
int *table = (int *) (0x0800000 +0x20000 - PAGE_SIZE)
一周热门 更多>