欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

系统移植——uboot常用命令

程序员文章站 2022-07-01 08:17:33
flash的一般分区: print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv、saveenv:设置、保存环境变量 如:设置环境变量: setenv abc 100删除环境变量: setenv abc保存环境变量到存储器:saveenv abc 100网络层的设置: ......

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 
   至此内核启动完成。