MDK定位常量或函数,为何常量或函数后面增加了一堆数据?

2020-01-11 18:13发布

比如MDK定位常量,const uint32_t passw2_addr __attribute__((at(FLASH_ADR2)))=0x11223344;
但写入flash中除了这个字,后面增加了一堆内容,这些内容是什么,怎么产生的?现在如果擦除后面的数据,重新上电
死机,进入了HardFault_Handler里面;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
mcu5i51
1楼-- · 2020-01-11 21:56
其它的数据或程序,你改它们做什么呀,如果要一些空间可以定义一下
lijg8421
2楼-- · 2020-01-12 03:00
mcu5i51 发表于 2018-1-12 16:23
其它的数据或程序,你改它们做什么呀,如果要一些空间可以定义一下

我函数上电运行一次,要擦除函数,现在擦除后面数据导致硬件异常死机!
lindabell
3楼-- · 2020-01-12 03:34
 精彩回答 2  元偷偷看……
mcu5i51
4楼-- · 2020-01-12 05:24
lijg8421 发表于 2018-1-13 18:27
我函数上电运行一次,要擦除函数,现在擦除后面数据导致硬件异常死机! ...

如果是flash擦除是以页为单位在,在后面定义为空的数组,全页占位
lijg8421
5楼-- · 2020-01-12 07:41
mcu5i51 发表于 2018-1-14 08:05
如果是flash擦除是以页为单位在,在后面定义为空的数组,全页占位


常量这样做应该有效,那函数呢,如何占位,谢谢回复。
lijg8421
6楼-- · 2020-01-12 10:59
lindabell 发表于 2018-1-13 20:56
专门定义一个扇区来放这个函数,简单易用
想省空间的话看map文件找出函数的地址空间,然后再处理 ...

现在函数是定位在空闲的空间,单独一个页,就是擦除出错,出错原因是绝对定位多出这部分代码造成的;

一周热门 更多>