ARM学习笔记之驱动程序篇----U-boot

一,U-boot入门

1.1.1 编译U-boot

1,解压uboot文件,我学习用的是tiny6410的开发板,所以解压uboot_tiny6410.tar.gz,进入uboot_tiny6410目录。

tar xvzf uboot_tiny6410.tar.gz
cd uboot_tiny6410

2,配置并编译

make tiny6410_config
make ARCH=arm CROSS_COMPILE=arm-linux-

3,使用dnw下载uboot.bin

4,下载完成后,将开发板从nand flash启动,并迅速按任意键,进入uboot命令行模式。

1.1.2 U-boot命令集

1,help

     查看当前开发板运行的uboot所支持的命令

2,环境变量

(1)printenv(print)

        查看环境变量

(2)setenv(set)

         修改环境变量

setenv name value

setenv name

(3) saveenv(save)

      保存环境变量,将当前定义的所有变量及其值存入flash中。

3,文件下载

      使用tftp通过网络下载文件,需要配置好网络。

//(1)设置开发板mac地址
setenv ethaddr 12:34:56:78:9A:BC

//(2)设置开发板ip地址,须和主机(tftp服务器)在同一个网段
setenv ipaddr 192.168.3.115

//(3)设置主机(tftp服务器)ip地址
setenv serverip 192.168.3.111

//(4)在开发板上ping主机(tftp服务器)
ping 192.168.3.111
//如果Ping不通,关闭windows和linux的防火墙

//(5)把主机(tftp服务器)上的内核文件下载到开发板
tftp 0xc0008000 uImage

//(6)启动linux内核
bootm 0xc0008000
//bootm执行固定格式的二进制文件。固定格式指的是在内核文件开头有固定格式的信息(如cpu信息).

4,内存

(1)查看内存内容-md

格式:md[.l/.w/.b] address

采用十六进制和ASCII码两种形式来显示存储单元的内容。这条命令还可以采用长度标识符.l(双字),.w(字),.b(字节)。

(2)修改内存内容-mm

格式:mm[.b/.w/.l] address

修改内存,地址自动递增。mm提供了一种互动修改存储器内容的方法。它会显示地址和当前值,然后提示用户输入。如果你输入了一个合法的十六进制数,这个新的值将会被写入到该地址。然后提示下一个地址。如果你没有输入任何值,只是按下了回车,那么该地址的内容保持不变。如果想结束输入,则输入空格,然后回车。

5,Nand Flash

(1)擦除nand flash

nand erase [addr] [len]

擦除addr处开始的,长度为len的区域。

(2)读/写nand flash

nand write [mem_addr] [flash_addr] [len]

将mem_addr地址处,长度为len的数据,写入flash_addr地址处。

nand read [mem_addr] [flash_addr] [len]

将flash_addr地址处,长度为len的数据,读到mem_addr地址处。

6,设置自动启动

(1)设置从nand flash自动启动

tftp c0008000 uImage
nand write c0008000 4000000 5000000
setenv bootcmd nand read c0008000 4000000 5000000 \;bootm c0008000
#saveenv

(2)设置自动下载内核到内存后自动启动

setenv tftp c0008000 uImage \;bootm c0008000
saveenv

     

 

你可能感兴趣的:(ARM学习笔记)