还需要请教下,我现在准备写个代码自动升级功能,需要在我自己的工程当中添加向NandFlash中写ais文件,
我是按照"nand-writer-03.20.00.08"工程 将其转化为Starterware库的函数写的,最后写入的数据和地址都是一样的,
我还重新读出来,比对过,二进制数据和可执行文件是一样的,但是我的工程就烧写ais文件后,再启动,就是没有启动,
不知还需要其他操作吗? 谢谢。
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.
还需要请教下,我现在准备写个代码自动升级功能,需要在我自己的工程当中添加向NandFlash中写ais文件,
我是按照"nand-writer-03.20.00.08"工程 将其转化为Starterware库的函数写的,最后写入的数据和地址都是一样的,
我还重新读出来,比对过,二进制数据和可执行文件是一样的,但是我的工程就烧写ais文件后,再启动,就是没有启动,
不知还需要其他操作吗? 谢谢。
是bin文件数据, NandFlash地址是 第1块的0页开始写入的。
二进制数据 是我将bin文件写入到NandFlash当中后,我又重新从NandFlash中读取出来的,
可执行文件是我写的案例,是可以执行成功的,
我将可执行文件写入到了 NandFlash当中1块0页地址处了。
使用nand-writer-03.20.00.08 是可以起来的,
我是用的 StarterWare库的 中NandEccInfo_t结构体有指出 ECC相关的处理函数,但是在Starterware库中并没有像"nand-writer-03.20.00.08"工程当中"NAND_BB_InfoObj"结构体相似的元素,我也把spare读出来,比对下。谢谢了。
那我写个程序将 spare区域读取出来,看是否一样,可能是 缺少了坏块的处理。
找到问题了,是因为在spare区,我在存储ECC的校验值的时候,前6个字节我存储默认值是0,而在工程"nand-writer-03.20.00.08"中默认值是0xff(有初始化(spareBytes[i] = 0xFF;), 所以我的代码烧写进不能成功启动。 在使用Starterware库的Nand写函数NANDPageWrite(),传递给eccData参数指向的地址空间应该在调用之前 设置为0xFF.