PC主机:Ubuntu 10.4 和redhat 9.0
目标板:TQ2440开发板,linux内核2.6.30
本文将简单记录烧写内核镜像和yaffs文件系统的步骤。
本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。
在开始烧写之前,PC平台必须开启TFTP服务,详见:Ubuntu-10.10下tftp服务器搭建
1. 烧写内核
首先来看下我的分区表:
0x000000000000-0x000000040000 : "Uboot"
0x000000200000-0x000000500000 : "Kernel"
0x000000500000-0x000010000000 : "filesystem"
nand大小为256MB。
其次我的SDRAM地址是:0x30000000-0x34000000(64M)
在Uboot中执行如下命令:
tftp 0x31000000 zImage30.bin //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处
nand erase 0x200000 0x300000 //擦除nand,起始地址为0x200000,大小0x300000(3MB)
nand write 0x310000000 0x200000 0x300000 //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。
2. 烧写yaffs2文件系统
tftp 0x31000000 yaffs2.bin
会有如下输出:
dm9000 i/o: 0x20000300, id: 0x90000a46
MAC: 0a:1b:2c:3d:4e:5f
TFTP from server 192.168.1.103; our IP address is 192.168.1.6
Filename 'yaffs2.bin'.
Load address: 0x31000000
Loading: T #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#######################################
done
Bytes transferred = 11956032 (b66f40 hex)
nand erase 0x500000 0x0FB00000 //擦除文件系统所在的整个分区,即 filesystem 分区
nand write.yaffs 0x31000000 0x500000 0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数