STM32F103RET6 Flash写入用户数据起始地址如何选择?

2019-12-10 18:31发布

如题,要在103的Flash里面写入用户数据,应该怎样选择数据的存储地址呢?因为本身程序也在Flash里面存,选择不当是不是会覆盖程序代码导致错误?Keil编译器是否查看Flash从哪里开始存储程序,从哪里开始有空余空间?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
jr9910
2019-12-11 02:41
wear778899 发表于 2015-10-29 08:07
flash数据尽量往后面设置

不改变MDK设置和没有特殊情况时,编译连接好的代码是从 800 0000 开始,假设ROM ...

这个方法在一定程度上有效,但不完全有效,实际使用发现定义个非常靠后的Page不行,但定义稍前一些的却可以,具体定义到什么位置不太好掌握,至于为什么不太清楚!
建议采用二楼方法const uint8_t array[N] __attribute__ (at(uint32_t *)address)方法,稳妥可靠。注意N的大小是要擦除空间大小,address为擦除的起始地址,最好和页面起始地址对齐。

一周热门 更多>