uboot是一个裸机程序,是一个bootloader,用于启动Linux 或者其他其他系统。
uboot主要工作是初始化DDR,因为Linux是运行在DDR里的,Linux镜像(Zimage /ulmage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI Flash等外置存储器中。Uboot需要将Linux镜像从外置Flash拷贝到DDR中,linux系统才能运行。
先不做移植,体验下uboot的编译和下载。
解压提供的压缩文件tar -v -vxjf uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar.bz2

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

可通过创建shell 脚本完成上面的操作。

给shell脚本权限:chmod 777 shell.sh
执行shell脚本 :./shell.sh

使用MobaXterm_Personal_20.2软件 打开调试信息。




环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。修改.新建.删除环境变量 setenv、保存环境变量saveenv。
setenv修改开机延时为5s,然后保存saveenv,这样重启才可以生效。

修改字符串类型要使用<单引号’ ’>将字符串括起来。

新建环境变量author 值为 : ZXL

将环境变量的值设置为空值 即可删除。删除境变量author


md.b 0x80000000 14: 显示0x80000000地址开始的20(0x14)个字节(b)数字都是16进制形式


格式为: nm [.b, .w, .l] address,
例如: 修改.b格式,0x80000000 地址的数据为 0x12

输入完成以后按下回车,然后再输入‘q’即可退修改。
mm 命令也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命令 nm 的话地址不会自增。


使用.b格式将0x80000000起始的0x10个内存块填充成0xaa

![]()
source 为源地址,target 为目的地址,count为拷贝的长度。
例如以.b格式将0x80000000地址处的0x10个内存块,拷贝到0x80000020位置。

用于比较两段内存的数据是否相等
![]()
例如 查看0x80000020 和0x80000000 两端地址的前0x10个字节是否想到,因为刚才刚做了拷贝此时应该是相等的。

比较查看0x80000030 和0x80000000,结果应该不相等。

使用网络前,需要设置本机、和服务器的的一些网络参数。



ping 172.18.1.100

dhcp 用于从路由器获取 IP 地址,前提得开发连接到路由器上的,如果开发板是和电脑直连的,那么 dhcp 命令就会失败。

nfs(Network File System)网络文件系统,通过 nfs 可以在计算机之间通过网络来分享资源,我们也可以通过nfs功能将系统镜像文件写入到电路板中。


然后nfs就可以使用了,格式如下:
nfs 80800000 172.18.1.100:/home/zxl/linux/nfs/zImage
“ 80800000” 表 示 zImage 保存在电路板上的地址 ,“172.18.1.100:/home/zxl/linux/nfs/zImage”表示zImage文件在172.18.1.100这个主机中路径为/home/zxl/linux/nfs/zImage。

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令
使用的 TFTP 协议,Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器。
sudo apt-get install tftp-hpa tftpd-hpa
udo apt-get install xinetd

cd /etc/default/
sudo vi tftpd-hpa
修改内容如下:


下载文件到80800000地址上
