• 我在C6678 烧写应用程序到NAND中遇到一点困难,请详细指教。
• 我使用的软硬件是:mcsdk_02_00_09_21 ;ccs_base_5.0.03; evm6678L
• 在烧写这个过程中我的步骤是:
1. 把文件xxx 到文件夹
mcsdk_2_00_01_12\tools\writer\nand\evmc6678l\bin 下,并改其名字为
app.bin
2. 修改该文件夹下的文件nand_writer_input.txt,默认为
file_name = app.bin
start_addr = 16384
3. EVM 上boot 模式设置为 no boot/EMIF16 模式
4. 打开CCSv5,
5. 打开evmc66xx emulator target configuration
6. 连接core 0
7. 加载(确保evmc66xxl.gel 已执行,DDR 已初始化)
mcsdk_2_00_09_21\tools\writer\nand\evmc6678l\bin\
nandwriter_evm6678l.out
8. 打开 memory view( CCSv5 里 view->Memory Browser),查看内存地
址0x80000000
9. 把app.bin 下载到0x80000000 处
10. 执行
11. 当烧写完成时,终端显示NAND programming completed successfully,
错误时也有错误提示
编译步骤
工程文件位置
mcsdk_2_00_01_12\tools\writer\nand\evmc6678l
clean nandwriter 工程
build
完成后,生成的文件位于
mcsdk_2_00_01_12\writer\nand\evmc66xxl\bin
• nandwriter_evm66xxl.out 和nandwriter_evm66xxl.map
最后查看运行结果是: 0x70000000之后的地址范围(对应Block 0)值均为0xE0E0E0E0,
理论上应该都是0Xffffffff,,擦除没有成功。自然也写不进去任何数据。难道是系统擦除程序:
“mcsdk_2_00_09_21\tools\writer\nand\evmc6678l\bin\nandwriter_evm6678l.out”有问题?还是我什么地方使用的不对?请高手指点!多谢了!
noaming:
请看:
www.deyisupport.com/…/10802.aspx
Andy Yin1:
注意在mcsdk_02_00_09_21 烧写的地址是在0x0c000000,不是0x80000000
guizhen wang:
烧写NAND前需要将ibl烧写到EPPROM中吗?为什么?
noaming:
回复 guizhen wang:
烧写NAND前,不需要将ibl烧写到EPPROM中,烧写是由单独例程分别烧写的。唯独,boot的时候有关系。
guizhen wang:
回复 noaming:
非常感谢你的答复!
我查过了在mcsdk_02_00_09_21 烧写的地址是在0x80000000,不是在0x0c000000。
即使把烧写的数据放在0x0c000000中,烧写的结果仍然是:0xE0E0E0E0
Xinhai Chen:
回复 guizhen wang:
NAND FLASH是无法直接访问的!你查看的内容当然也不正确.
noaming:
回复 guizhen wang:
既然工程可以运行通过,建议单步运行一下,看看NAND的烧写数值,和读取结果校验数值。
guizhen wang:
回复 Xinhai Chen:
怎么查看NAND FLASH烧写内容?
noaming:
回复 guizhen wang:
工程中不是有这段程序:
* Read a block of data */
if(platform_device_read(p_device->handle,
block*nandWriterInfo.blockSizeBytes,
scrach_block,
nandWriterInfo.blockSizeBytes) != Platform_EOK)