[JZ2440] 使用 tftp 烧写 kernel 和文件系统

时间:2021-07-11 18:49:15

一、使用 tftp 工具下载文件到 mini2440 SDRAM 指定地址中

  1. 配置好 Windows 主机的 ip,这里我的 Windows 主机的 ip 配置为 192.168.1.5。

  2. 搭建 Windows 主机 tftp 服务器。

  Windows 主机行运行 tftp 服务器软件,服务器 ip 默认就是 Windows 主机 ip,无需设置。同时将要通过通过 tftp 下载到开发板的文件拷贝到 tftpd32.exe 服务器软件同级目录下。这里我拷贝了内核文件 uImage 和文件系统 fs_qtopia.yaffs2 到 tftp 目录下。

  [JZ2440] 使用 tftp 烧写 kernel 和文件系统

  3. 配置好开发板的 ip 以及配置好开发版中设定的 tftp 服务器 ip。

  上电后,按下空格进入 U-Boot,执行下面的命令,这里设置环境变量中开发板的 ip 为 192.168.1.8,指定 tftp 服务器的 ip 为 192.168.1.5。

OpenJTAG> setenv ipaddr 192.168.1.8 
OpenJTAG> setenv serverip 192.168.1.5
OpenJTAG> save
OpenJTAG> reset

  4. 重启 U-Boot 之后使用 tftp 命令将 tftp 服务器中的文件下载到 SDRAM 中。

OpenJTAG> tftp 30000000 uImage

  这里是下载到 SDRAM 中的 30000000 地址处。

 

二、将内核从 SDRAM 中烧写到 nandflash 中。

  1. 擦除 kernel 分区。

  所谓的 kernel 分区其实只是 nandfalsh 中 0x00060000 - 0x00260000 这段地址空间。

OpenJTAG> nand erase kernel

  2. 烧写到 nandflash 中。

OpenJTAG> nand write.jffs2 30000000 kernel

  这条命令等价于:

OpenJTAG> nand write.jffs2 30000000 60000 200000

  这条命令的意思是:将 SDRAM 中 0x30000000 地址开始连续 0x200000 个字节写入 nandflash 0x60000 地址中去。

 

三、下载烧写文件系统

  同样的方式,执行下列命令可以将文件系统烧写到 nandflash 中。

OpenJTAG> tftp 30000000 fs_qtopia.yaffs2
OpenJTAG> nand erase root
OpenJTAG> nand write.yaffs 30000000 260000 2f76b40

  最后一条命令是:将 SDRAM 中 0x30000000 地址开始连续 0x2f76b40(49769280) 个字节写入 nandflash 0x260000 地址中去。

  不难发现其实 2f76b40 这个值就是 fs_qtopia.yaffs2 文件的大小。