中级会员
 
- 积分
- 325
- 金钱
- 325
- 注册时间
- 2016-10-21
- 在线时间
- 43 小时
|
发表于 2016-10-24 15:20:51
|
显示全部楼层
建议给FLASH申请一个空间,:
const u8 SHSHCode[2048] __attribute__((at(SHSHFLASHADDR))) = {
0xF1,0xF2,0x66,0x15,0xC7,0x78,0xD8,0x85,0x55,0xCA,0x9A,0x9D};
#define FLASH_SAVE_ADDR 0x0801f000 //stm32f103cbt6 这样写你能确定编译器会不使用这段空间的FLASH吗?
const u8 SHSHCode[2048] __attribute__((at(SHSHFLASHADDR)))
这样编译器会在SHSHFLASHADDR这个地址留出2K的空间,不会在这个空间写入数据,为什么是2K,因为扇区大小是2K,擦除工作是需要一个扇区一个扇区来,申请的2K空间,在擦除时就不会擦除程度代码了。
SHSHFLASHADDR定义值,建议编译完后,看MAP文件,看看编译生成代码的最后地址,定义紧接最后一个地址的下一个扇区。 |
|