我再使用DSP28035中,想使用片内Flash进行参数保存,用到了1个快,每次先擦除再写入数据。
在参数保存功能测试过程中,保存后重启设备发现特读写的区块所有数据为0。
具体:
我使用H、G两个快,一个保存参数一个保存备份,不停进行保存功能(先擦,再写)。
此过程中,不定时断电设备,发现H区的数据为零。
请问什么情况,特定快的值才会全变为0,擦除后Flash上数据应该是0xFF才对。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我再使用DSP28035中,想使用片内Flash进行参数保存,用到了1个快,每次先擦除再写入数据。
在参数保存功能测试过程中,保存后重启设备发现特读写的区块所有数据为0。
具体:
我使用H、G两个快,一个保存参数一个保存备份,不停进行保存功能(先擦,再写)。
此过程中,不定时断电设备,发现H区的数据为零。
请问什么情况,特定快的值才会全变为0,擦除后Flash上数据应该是0xFF才对。
使用的是FLASH的API
关于只擦除:我的意思是本次擦除和保存参数没问题,但是下次上电数据会变成全0
Flash_Erase(a,b) Flash2803x_Erase(a,b)
Flash_Program(a,b,c,d) Flash2803x_Program(a,b,c,d)
Flash_Verify(a,b,c,d) Flash2803x_Verify(a,b,c,d)
不过我没有使用Flash_verify只是先擦除后保存。
Flash的操作是可以连接仿真器在线仿真查看的,把相关代码设置运行在RAM中你就能查看擦除及编程的结果了。
另外,不得不顺便说一句,真的没有必要使用flash来作为eep保存数据,你查看一下api文档,在flash操作期间中断要关闭,mcu基本做不了其他什么事情。
即使外加一个24C02来保存数据也增加不了几毛钱成本。