系统移植——uboot常用命令
flash的一般分区:
其它数据 |
环境变量 |
可执行程序。如bootloader |
print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量
setenv、saveenv:设置、保存环境变量
如:
设置环境变量: setenv abc 100
删除环境变量: setenv abc
保存环境变量到存储器:saveenv abc 100
网络层的设置:
nand:
nand [动词] [内存地址] [nandflash的内部地址] [搬移大小]
- nand中5m空间的数据读取到内存地址2100 0000
5m = 5* 1m ,1m = 2^20 = 0x100000
读数据:nand read 21000000 500000 1024
- nand把内存地址2100 0000的值写到5m空间
初始化:nand erase 500000 1024
写数据:nand write 21000000 500000 1024
tftp:
设置、保存本机ip:
setenv ipaddr 192.168.9.120
saveenv ipaddr 192.168.9.120
设置服务器ip:
setenv serverip 192.168.9.3
利用tftp传递文件a.txt 到内存地址 20008000上面:tftp 20008000 a.txt
linux下安装tftp服务端:
32bit sudo apt-get install tftpd-hpa
64bit sudo apt-get install tftpf openbsc-xinetd
bootm:
bootm传递r0,r1,r2还有bootargs
bootm 加载linux镜像是加载uiamge,uiamge是由mkimage制作而来,和ziamge的差异是uiamge是ziamge压缩过的,bootm需要先对uiamge解压,解压地址为内核入口地址。当解压完成时uiamge和ziamge 几乎是相同的,具体差异可以论述。uboot目前只能支持uimage启动,不支持zimage启动
go:
go命令本质就是改变当前pc值
内核启动条件:内核、启动参数、文件系统
启动参数:(bootargs)
root= 启动的根文件系统在哪个设备
init= 内核启动后第一个可执行文件init进程从哪里来
console= 内核启动时,使哪个设备作为控制台
文件系统:内核与用户交互的一个中介
文件系统的烧写:nfs、ramdisk
ramdisk:内存磁盘
配置的内容:
root=/dev/ram
initrd= 0x21000000,8m (设备信息(文件系统的基地址,大小))
init=/linuxrc
console=ttysac0
nfs:根文件系统(tcp/ip协议 c/s架构)
pc机安装:
1、搜索 apt-cache search nfs-
2、安装 sudo apt-get install nfs-kernel-server
pc配置:/etc/exports
重启服务:sudo /etc/init.d/nfs-kernel-server restart
测试:
内存:20008000 uimage
21000000 initrd.img.gz
内核启动步骤(ramdisk文件系统):
第一步:安装并启动uboot
第二步:通过tftp服务将内核文件及文件系统分别下载到指定位置
tftp 20008000 uimage
tftp 21000000 initrd.img.gz
第三步:设置启动参数
setenv bootargs root=/dev/ram initrd=0x21000000,8m init=/linuxrc console=ttysac0,115200
第四步:bootm 20008000
至此内核启动完成。
上一篇: 劲方药业获弘晖资本领投亿元天使轮融资