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

2011-2-23 13:33 4185 3 3 分类: MCU/ 嵌入式

.背景说明.目标板为仿照N个开发板制作的,配置如下:


NorFlash
:2MB EN29LV160AB


NandFlash:
128MB


SDRAM:
64MB


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



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





.操作步骤:


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


49b5cb24-4be9-4160-b00d-dc06848c9e89.jpg



(2)输入connect,如图:

3dce112c-0709-4917-b844-1d94eef1c44b.jpg



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

37682044-0719-4e57-9884-bd89a7020ef1.jpg



4)在uboot命令中输入loadb
0x30003000,(0x30003000
为传送到内存起始位置)如图:

efae88c0-7a52-4625-9436-9cfb94db785e.jpg



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

cb667ad7-2934-4333-a4b4-efcf8b1da1bc.jpg



6)输入命令:send
/home/strider/uboot/u-boot-2010.03/u-boot.bin
,如图:

7da23160-7608-46a6-ad3f-4f7ec2f101ad.jpg



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

4361c1fb-0f17-4d41-92e5-2c642008827f.jpg



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

02b637b6-593e-47f2-a82a-cf25f2e04ee6.jpg



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

9812b867-ecde-426f-bbed-ae5b71046b9b.jpg



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



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

e471c732-e4e7-4279-b6a9-18a30c011cd1.jpg



出现错误:

c5511b10-94a1-47c4-8048-3ade9d9cb470.jpg



原因是因为nand
flash
在烧写之前要先擦除,执行擦除命令如下:

c489446f-b867-474a-a9d3-fee0db810da2.jpg



再次执行nand
write 0x30003000 0 0x00020000,
烧写成功,如下图:

e091efc1-0491-4a5a-b119-70b3e8daa8ca.jpg



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


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


在烧写nand
之前执行nand
erase


再次执行nand
write 0x30003000 0 0x00030000,
烧写成功。


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

f71dac51-0179-44d0-a0ca-a483560fff1d.jpg



说明nandflash烧写uboot成功。

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /6 下一条