本帖最后由 ee168 于 2022-11-11 17:03 编辑
这个题目在不同的单片机和不同的编译器或有不同
我现在是Keil Arm,STM32F103为例 其flash Page0-127,共128个页面,每个页面1k
将页面Page127,即地址 0x0801FC00开始的1k做数据存储器使用
现在程序比较小,远小于128k,所以烧写时采用扇区擦除,没有动到Page127的页面上,相安无事
但是程序编译中没有指名这个位置不能被程序占用,就有可能将程序写到这个区域
我曾尝试 建立 unsigned char FlashData[1024] _at_ 0x0801FC00; 但是编译通不过,
那些什么扇区保护没有看懂,保护了,在什么情况下不能擦除,我程序内部读写这个扇区是不是也会因保护而不能使用?而且在烧写程序时,这个选项经常被遗忘,操作也比较麻烦。
|