Part Number:OMAP-L138
尊敬的工程师们:
您们好,
目前我在使用OMAP-L138_FlashAndBootUtils_2_40例程时出现一个问题,在烧写时在写了几页flash后,对写的页进行验证时,出现验证失败的情况,控制台打印如下信息
Writing image data to block 0x60, page 0x0
Verify failed. Marking block as bad…
再继续正常写了几页以后一直验证失败到整个烧写文件结束,最终导致烧写失败,请问针对出现的这个情况,您有什么建议可以帮助我解决吗?十分期待您的回复
Nancy Wang:
请问是自制板吗?看打印信息感觉nand flash有问题,有其它可替换测试的nand flash吗?是否有别的板子可做测试?
该烧写例程有没有根据实际板子的设计情况做修改?
也可以试试看通过串口工具sfh_OMAP-L138.exe烧写。
https://www.ti.com.cn/cn/lit/an/spracm8a/spracm8a.pdf
,
Dan Jackey:
板子不是自制的,暂时没有其他可替换的nandflash,我将例程移植到sys/bios上跑,之前用这个方式烧写成功过,然后目前的情况是报上述的错误
,
Dan Jackey:
烧写例程卡在了NAND_verifyPage(hNandInfo, blockNum, pageNum, dataPtr, gNandRx)函数处,我查看了我的数据地址dataPtr(0xc3200054)上面是待烧写的文件数据,但没有搞明白gNandRx这个数据块的作用,gNandRx在函数开始写了8192长度的0xFF,这样做的目的为何呢
,
Nancy Wang:
Dan Jackey 说:没有搞明白gNandRx这个数据块的作用
就是初始化的作用。
Dan Jackey 说:之前用这个方式烧写成功过
是用的TI的开发板吗?检查一下烧写代码中nand位宽是否为16bit?
,
Dan Jackey:
位宽是8bit,用的创龙的开发板,但我看创龙和TI的烧写例程用的同一个
,
Nancy Wang:
代码中的配置要与实际板子中一致。
因为您之前烧写成功过,硬件上应该没有问题。
,
Dan Jackey:
我直接跑例程发现文件读取完成后存放文件数据的指针aisPTR地址是0xc3200000,而gNandTx这个地址也是0xc3200000,如果写0xff那aisPTR上面的数据不会被覆盖吗
,
Dan Jackey:
嗯嗯,我做过测试排除了硬件的问题
,
Nancy Wang:
调试看一下,应该是不影响的。
移植的时候修改了哪些部分?只能再调试看看了,不清楚什么原因。
,
Dan Jackey:
好的,已经得到解决,是多次调用动态内存分配函数时地址冲突数据覆盖导致的,十分感谢您的回复!