系统移植(一)u-boot相关命令

一、概念

对Linux内核源码进行配置和编译,使linux内核源码支持自己的开发板并生成对应的镜像文件。

linux启动过程:
系统上电->U-boot -> Linux内核 -> 挂载根文件系统 ->应用程序
u-boot:通用的引导启动程序,在嵌入式产品开发中使用的主流的引导程序

(一)GNU相关命令的扩展(二进制工具集)

gcc :C代码
g++ :C++
gdb :代码调试工具

交叉编译器对应的GNU命令在~/toolchain/gcc-7.5.0/bin

  • 补充:
  • ubuntu系统自动的GNU相关的命令在/usr/bin目录下,可以使用以下命令查看:
    sudo find /bin -name gcc
    sudo find /usr/bin -name gcc

在这里插入图片描述

(二)

1. ld命令:将.o文件链接生成.elf格式文件

2. objcopy命令:格式化拷贝命令,将.elf格式文件格式化拷贝生成.bin文件

3. objdump命令:反汇编命令,将.elf文件生成反汇编的.dis文件

4. readelf命令:读取elf文件的信息

5. nm命令:查看elf文件的符号的信息

6. size命令:查看elf文件中各个段的大小

二、u-boot命令

(一)help命令

FSMP1A>>> help —> 查看所有的u-boot支持的命令
在这里插入图片描述
FSMP1A>>> help u-boot命令名 —> 查看u-boot命令的对应的帮助手册
在这里插入图片描述

(二)loadb命令

FSMP1A>>> help loadb
loadb - load binary file over serial line (kermit mode)
功能:通过串口使用kermit模式下载二进制文件
Usage(用法):
loadb [ addr [ baud ] ]
- load binary file over serial line at address ‘addr’ with baudrate ‘baud’

(三)go命令

FSMP1A>>> help go
go - start application at address ‘addr’
功能:从内存addr地址启动应用程序
Usage(用法):
go addr [arg …]
- start application at address ‘addr’
passing ‘arg’ as arguments

(四)gpio命令

FSMP1A>>> help gpio
gpio - query and control gpio pins
功能:查询和控制GPIO引脚
Usage(用法):
gpio <input|set|clear|toggle> <pin>
- input/set/clear/toggle the specified pin
gpio status [-a] [<bank> | <pin>] - show [all/claimed] GPIOs

gpio <input|set|clear|toggle> <pin>
input : 查看gpio引脚的输入的状态
set : 设置gpio引脚输出高电平
clear : 设置gpio引脚输出低电平
toggle : 设置gpio引脚输出电平翻转
<pin> : 控制哪个gpio引脚 格式:gpioxy (x = a - k,z) (y = 0 - 15)

案例:

  1. 查看key1按键的状态:PF9
    FSMP1A>>> gpio input gpiof9
    gpio: pin gpiof9 (gpio 89) value is 1 --> 按键抬起
    FSMP1A>>> gpio input gpiof9
    gpio: pin gpiof9 (gpio 89) value is 0 --> 按键按下

  2. 控制蜂鸣器响与不响:PB6
    FSMP1A>>> gpio set gpiob6
    gpio: pin gpiob6 (gpio 22) value is 1
    FSMP1A>>> gpio clear gpiob6
    gpio: pin gpiob6 (gpio 22) value is 0
    FSMP1A>>> gpio toggle gpiob6
    gpio: pin gpiob6 (gpio 22) value is 1
    FSMP1A>>> gpio toggle gpiob6
    gpio: pin gpiob6 (gpio 22) value is 0
    gpio status [-a] [ | ] - show [all/claimed] GPIOs
    -a : 所有的
    : 哪个GPIO组的 格式:gpiox (x = a - k,z)
    : 哪个引脚 格式:gpioxy (x = a - k,z) (y = 0 - 15)
    案例:

  3. 查看所有组的所有的gpio引脚的状态
    FSMP1A>>> gpio status -a

  4. 查看GPIOF组的所有的引脚的状态
    FSMP1A>>> gpio status -a gpiof

  5. 查看gpiob6引脚的状态
    FSMP1A>>> gpio status gpiob6
    Bank GPIOB:
    GPIOB6: output: 0 [ ]

(五)环境变量操作相关命令

1. 查看环境变量:printenv/print/pri命令

FSMP1A>>> printenv —> 打印所有的环境变量的值

arch=arm —> 架构

baudrate=115200 —> 串口波特率

bootargs=root=/dev/nfs nfsroot=192.168.100.210:/home/linux/rootfs,tcp,v4 rw
console=ttySTM0,115200 init=/linuxrc ip=192.168.100.10
—> 系统自启动的参数,u-boot在启动内核时,可以通过这个环境变量给内核传递部分启动参数

bootcmd=loadb 0xc0008000;go 0xc0008000
—> 自启动的命令,后续讲解linux系统启动时介绍

bootdelay=3 —> u-boot启动之后的倒计时的时间

ethaddr=00:80:E1:42:60:17 —> MAC地址

gatewayip=192.168.100.1 —> 网关

ipaddr=192.168.100.10 —> 开发板的IP地址

netmask=255.255.255.0 —> 子网掩码

serverip=192.168.100.210 —> ubuntu服务器的IP地址

vendor=st —> 厂商

Environment size: 4525/8187 bytes —> 环境变量大小

FSMP1A>>> printenv 环境变量名 —> 打印环境变量的值
FSMP1A>>> printenv bootdelay
bootdelay=3

2. 修改环境变量:setenv/saveenv命令

setenv:设置环境变量,默认是修改内存中的环境变量的值
saveenv:保存环境变量,将内存中的环境变量保存到Flash中
在这里插入图片描述

3. 添加新的环境变量:setenv/saveenv

添加新的环境变量格式:
FSMP1A>>> setenv 新的环境变量名 环境变量的值
FSMP1A>>> saveenv
在这里插入图片描述

4. 删除环境变量:setenv/saveenv

删除环境变量的格式:
FSMP1A>>> setenv 要删除的环境变量名
FSMP1A>>> saveenv
在这里插入图片描述

5. 编辑环境变量的值:editenv/saveenv

编辑环境变量的值格式:
FSMP1A>>> editenv 要编辑的环境变量名

FSMP1A>>> saveenv

(六)环境变量命令env

env default [-f] -a - [forcibly] reset default environment
—> 复位默认的环境变量
env edit name - edit environment variable
—> 编辑环境变量的值,用法等价于editenv
env print [-a | name …] - print environment
—> 打印环境变量的值,用法等价于printenv
env save - save environment
—> 保存环境变量的值,用法等价于saveenv
env set [-f] name [arg …]
—> 设置环境变量的值,用法等价于setenv

(七)ping命令

测试开发板和ubuntu服务器的网络是否连通

(八)tftpboot命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值