在ubuntu下使用什么工具对uboot及内核进行烧写

2025年03月22日 08:07
有5个网友回答
网友(1):

tftp比较通用的 网络烧写 DNW USB烧写

网友(2):

只需要ARM的交叉编译器加uboot源码和内核源码就行

网友(3):

DNW也有linux版本的

网友(4):

直接把文件系统也列举了吧。烧写uboot、内核及文件系统的方法 :1、uboot的烧写

下载Uboot分为两个步骤,第一步将uboot下载到系统的扩展RAM并运行,第二步通过内存中运行的uboot把整个uboot下载到内存再烧写到nandflash

第一步 下载uboot到扩展RAM

首先使用短路块选择系统从内部启动,复位或者上电就会在串口软件(115200 8 n 1)看到打印的信息LPC31xx READY FOR PLAIN IMAGE>,此时使用串口软件的发送文件选择发送u-boot-init.bin,再发送u-boot.bin,之后就会在RAM中启动uboot,打印输出启动信息,并进行倒计时,此时发送任意字符给系统,停止计时,关闭串口软件,使用超级终端连接系统。

第二步 烧写uboot到nandflash

在超级终端中输入loady命令,再使用传送/发送文件,选择Ymodem协议,发送u-boot.bin,接收完成后,先擦除nand erase,可以全擦掉(不用给参数),也可以使用使用参数指定区域,一般第一次要全擦,而后使用nand_params将flash的信息写入其中,最后使用nand write 0x30001000 0x4000 0x100000

其中,0x30001000 是uboot在内存中的地址;

0x4000 uboot在flash中存放的起始地址,需要根据实际的分区情况而定;

0x100000 是uboot的大小,不小于实际大小;

至此,将uboot写入到nandflash中,可以将短路跳线去掉,使其从nandflash启动。

2、内核的烧写

在uboot启动倒计时,击任意键停止,输入loady,与uboot烧写相似,使用的命令主要有:nand erase 0x200000(地址) 0x200000(大小)

nand write 0x30001000 0x200000 0x200000

3、文件系统的烧写

文件系统的烧写,可以通过与内核相似的方法使用串口烧写,也可以通过挂载nfs使用mtd_debug 工具烧写,由于文件系统较大,使用第一种方式会慢一些。

串口烧写使用到的命令

loady

nand erase 0x600000 0x3a00000(目前的分区情况)

nand write 0x30001000 0x600000 0x800000(实际大小)

使用nfs烧写用到的命令

mtd_debug erase /dev/mtd2 0 0x3a00000

mtd_debug write /dev/mtd2 0 0x800000 ubi.img

各项的含义可以参考mtd_debug 的帮助,直接mtd_debug 即可获取说明,其中的len可以使用十进制数,但是在uboot中是不可以的,不加0x也会认为是十六进制。

4、启动挂载文件系统的选项

在uboot中可以通过环境变量设置启动的选项,一般只需要配置挂载的文件系统是nfs还是ubi,及内核启动选项。

挂载nanflash中的ubifs:

setenv bootargs console=ttyS0,115200n8 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs;

挂载129.1.4.199上/rfs/rootfs,并且本机的ip设为129.1.31.33等:

setenv bootargs noinitrd root=/dev/nfs console=ttyS0,115200n8 nfsroot=129.1.4.199:/rfs/rootfs,proto=tcp,nfsvers=3,nolock ip=129.1.31.33:129.1.4.199:129.1.88.1:255.255.0.0::eth0:off

启动内核的选项:

setenv bootcmd nand read 0x30001000 0x200000 0x200000\; bootm 0x30001000\;

修改过uboot的环境变量都需要saveenv命令保存修改。

网友(5):

你是想用ubuntu做主机,来烧写开发板吧?可以用minicom连接串口进行操作。