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.

FLASH文件写入的碰到错误

我需要在外部flash中储存一个大概500k的文件,并且需要对它进行读写操作。

例如,我从网络上获得文件保存在flash中,发现超过69000个字节左右的时候,就报错了。

于是我用C:\TI\CC3200SDK_1.0.0\cc3200-sdk\example\file_operations的例程测试,把原来限制的64Kbyte 改成69Kbyte,结果出现同意的现象。

sl_FsWrite的返回值是 -15,  

进一步查得应该是宏:#define SL_FS_ERR_OFFSET_OUT_OF_RANGE    (-15)

你们那个文件系统的操作函数,是不是有大小限制?我现在必须要保存大于64K字节的文件,请问这应该怎么办?

我一个帖子中看到了有人和我碰到了同样的问题,已经解决了,但是没有解决方案,我没有办法去联系发帖者,我现在也碰到了一样的问题,希望能帮我解答一下

  • 没有限制的,问题在于一旦一个文件被创建,文件的大小就不能被更改。你升级一下servicepack或者换一个文件名,问题就能解决
  • 太感谢了,我刚解决这个问题了,我写入文件前先检查是否存在,如果存在就先删除。  的确是这个问题导致的,看来不少人碰到 这个问题。返回的错误-15的确是太让人迷惑,不容易定位问题。   希望有后面的版本能提供更好的提示

  • 我是想实现OTA功能,现在这个问题解决了,下载的新固件保存了。如果用它替换默认的mcuimg.bin呢,我本来想的是两个思路,1删除mcuimg.bin, 把下载的固件改名为mcuimg.bin,重启。2设置启动时加载ota固件,而不是mcuimg.bin。 问题是1似乎没有提供更名的API函数,删除更名过程如果出意外,将无法恢复,2,方案2不知道如果 去设置