新手入门
- 积分
- 27
- 金钱
- 27
- 注册时间
- 2012-7-21
- 在线时间
- 1 小时
|
5金钱
我在使用FATFS把SD卡里面的UNIGBK.bin写入到FLASH的时候,发现整个文件前面一段可以写进去,后面也能写进去。但是中间有一段写成0XFF。每次变为0xff的地方都是C255 FF08这边。如下图
问题分析
1:如果是中间一段没有那么意味着我的Flash读写程序没问题,同时我的flash读写地址也没有问题。
2:判读从SD读出来的数据有问题(尝试在FATFS读取SD卡之后写入Flash之前,发送从SD卡读出来的数据到串口,看到数据正常没有0XFF的数据。)
3:判断Flash有坏块(1:我的Flash是8M的,尝试把文件存在不同的地址里还是这种情况,2:不采用FATFS的方式写入FLASH,而是使用数组的方式,然后通过FLASH读写函数把数组写入FLASH的相应地址中,发现数据正常。说明没有FLASH没有坏块)
在验证这些问题的时候发现,我先使用FATFS把UNIGBK.bin写到FLASH之后再使用数组的方式写入,发现这一段一样没有办法写入数据。仅仅我使用了整片擦除的方式之后使用数组的方式才能把这段数据写入。
最后我的程序步骤是1:先进行整片擦除,2:跳过使用FATFS更新UNIGBK.bin程序//res=updata_fontx(x+20*size/2,y,size,pname,0); 3:进行数组方式更新。最后成功的完成了更新。
问题分析
4:我看到FATFS更新UNIGBK.bin时候就是把SD数据读出来之后直接写到FLASH,如果我读出来的数据没问题(问题分析2),那是由于什么原因导致我的FLASH读写不了了呢?为什么使用了FATFS之后,我使用数组的方式也没办法写入了呢?
我使用的FLASH是M25P64。
|
|