MCU_ARM_Uboot常用命令_交叉编译工具集_内核启动条件

/*****************************************************************************************************************************************

*Author:JYW

*Time:2019_05_03

*Describe:学而记之进而习之

*****************************************************/

目录

交叉编译工具集:

Uboot常用命令介绍:

内核启动条件:

文件系统的烧写:FS


交叉编译工具集:

readelf  -h   :读取可执行文件的头信息

 size  :查看可执行文件大小

nm :查看可执行文件的符号表

strip:剔除符号表(符号表只是供我们人看的;可以使可执行文件变小

strings:查看常量字符串

objcopy:

objdump:(-d反汇编)查看汇编与地址,代码之间的关系;

addr2line:将代码中哪一行出错表示出来;

 

 

Uboot常用命令介绍:

print

查看uboot这个软件的环境变量;  格式:变量名=变量值;

setenv

设置环境变量;saveenv:保存环境变量;

格式:

setenv  abc  100 200(abc是变量名,后面的都是变量值)(设置或添加一个变量值,修改一个已有的变量

setenv abc   (删除变量abc

如果只进行上面的操作,那么仅仅保存在了RAM中,而没有保存在Flash;所以要使用saveenv保存将本次改变保存在存储器;

uboot网络环境层的设置:与ipaddr这个变量名有关,setenv  ipaddr  192.168.10.132

更改PC机IP(即Linux中eth1的IP)命令:sudo ifconfig eth1 192.168.10.167

测试网络层是否链接:ping 一般是开发板ping主机(主机ping开发板,开发板收到后一般不回复)当看到host 192.168.10.167 is alive 说明ping通;

测试传输层是否链接:tftp     

基于UDP,客户端:开发板,服务器端:PC;PC又分为windows和linux

怎么用客户端?

一般:server_ip(连谁  port   xxxx(做什么事情

但是uboot变为:server_ip 变成了通过环境变量serverip来取得,port: tftp这个命令已经写死,

xxxx:干什么事情,由tftp这个命令通过输入参数来确定;

 tftp 20008000(要传到的内存地址   abc(要传的东西或者是a.txt

md(内存显示   20008000    (memory  display)

 

服务器端:

windows:tftpd软件包

linux:

nand:

三个常规的命令 后面跟三个动词[erase(擦除,write,read]   [内存地址]    [naflash的内部地址]   [搬移大小]

在用之前要进行初始化,  nand  erase  500000  1024 (擦除500000 ,大小以块和页位单位)

将nand中5M空间读到内存21000000地址中,1k

5M: 5 *    ( 2^20    ----->      0x100000)

nand  read   21000000    500000(16进制)  1024(以字节为单位)  

bootm:

启动内核

内核分为: uImage  zImage  Image  bzImage

内核运行还需要启动参数

go:

 

 

 

 

内核启动条件:

root=(启动的根文件系统在哪个设备)

init=   (内核启动后,第一个可自行文件init进程从哪里来)

console=   (内核启动时,使用哪个设备作为控制台)

setenv  bootargs  root=/dev/mtdblock2  init=/linuxrc    console=ttySAC0,(tty终端,串口0)    115200

tftp   20008000  uImage(下载uImage)

pri(显示信息)

 

文件系统的烧写:FS

(两种文件系统的烧写:NFS和Ramdisk)

Ramdisk:借助内存(最后成品这种方式较多)

顾名思义:就是内存磁盘

root=/dev/ram    //启动的根文件在哪一个设备

设备信息:initrd=0x21000000,8M(起始地址和所占大小)

init=/linuxrc     //内核启动后,第一个可自行文件init进程从哪里来

console=ttySAC0       //内核启动时,使用哪个设备作为控制台

测试:内存:0x20000000  uImage 在0x20008000上放上uImage

            0x21000000   initrd.img.gz

1)先把我们的内核下载下来

tftp  20008000  uImage  (在20008000位置上将我们的内核uImage下载下来)

//现在只是将我们的内核下载下来(下载到开发板上),下载下来之后仍然没有整个文件系统的部署,下面开始部署文件系统

2)开始部署文件系统

tftp 21000000  initrd.img.gz

//输入上面命令就开始下载了;

3)设置启动参数,//让uboot把启动参数传递给内核,内核就会按着启动参数的设置进行启动

setenv  bootargs  root=/dev/ram          initrd=0x21000000 ,8M           init=/linuxrc            console=ttySAC0,115200

bootm 20008000           //内核跑起来,加载我们的文件系统

 

NFS:通过网线(对开发来说比较多)//NFS故名思意,网络文件系统

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值