您的位置:首页 > 其它

用kermit通过串口往nandflash里烧写文件

2013-05-21 14:44 951 查看
用kermit通过串口往nandflash里烧写文件
转自 http://bbs.ednchina.com/BLOG_ARTICLE_1983189.HTM
一.背景说明.目标板为仿照N个开发板制作的,配置如下:

NorFlash

:2MB EN29LV160AB

NandFlash:

128MB

SDRAM:

64MB

u-boot版本:u-boot-2010-03(通过移植,已支持从nandflash启动,支持
nand命令。但网卡驱动尚未移植成功,故在这里尝试用串口传输文件)

由于自己水平菜,到现在网卡驱动还没移植好,只能悲剧的用kermit通过串口往flash上烧写程序。实际上是通过串口将bin文件传送到内存,再通过u-boot的nand

write命令擦写nandflash.

二.操作步骤:

(1)通过jtag将尚未完全移植成功的uboot烧写到norflash中(在windows下)。切换到Linux,连上串口线,将开发板拨到norflash,打开kermit,如图:



(2)输入connect,如图:



(3)给板子上电,kermit打印串口信息,如图:



(4)在uboot命令中输入loadb

0x30003000,(0x30003000为传送到内存起始位置)如图:



(5)按住Ctr+\,再按c键,如图:



(6)输入命令:send

/home/strider/uboot/u-boot-2010.03/u-boot.bin,如图:



(7)按下回车,稍等片刻,产生传送文件的画面,如图:



(8)传送完成后,又回到kermit命令界面,如图:



(9)再次输入connect,回车,进入uboot命令界面,如图:



此时uboot已经传送到内存0x30003000起始的位置处。从上图可以看出文件大小是0x00027958,这个参数在下面将uboot从内存中烧写到nandflash时会用到。

(10),我们假设烧写nandflash时指定的文件大小小于上图所示的大小,看会有什么情况。在uboot命令中输入:nand

write 0x30003000 0 0x00020000,回车:



出现错误:



原因是因为nand

flash在烧写之前要先擦除,执行擦除命令如下:



再次执行nand

write 0x30003000 0 0x00020000,烧写成功,如下图:



(11),将板子启动位置拨到nandflash,重启板子,观察串口无输出。

(12)重复(1)-(9)的操作;

在烧写nand

之前执行nand

erase ;

再次执行nand

write 0x30003000 0 0x00030000,烧写成功。

(13)执行(11),观察串口有输出,如下图:



说明nandflash烧写uboot成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: