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

news2024/11/18 12:39:15

文章目录

  • 一、概念
    • (一)GNU相关命令的扩展(二进制工具集)
    • (二)
      • 1. ld命令:将.o文件链接生成.elf格式文件
      • 2. objcopy命令:格式化拷贝命令,将.elf格式文件格式化拷贝生成.bin文件
      • 3. objdump命令:反汇编命令,将.elf文件生成反汇编的.dis文件
      • 4. readelf命令:读取elf文件的信息
      • 5. nm命令:查看elf文件的符号的信息
      • 6. size命令:查看elf文件中各个段的大小
  • 二、u-boot命令
    • (一)help命令
    • (二)loadb命令
    • (三)go命令
    • (四)gpio命令
    • (五)环境变量操作相关命令
      • 1. 查看环境变量:printenv/print/pri命令
      • 2. 修改环境变量:setenv/saveenv命令
      • 3. 添加新的环境变量:setenv/saveenv
      • 4. 删除环境变量:setenv/saveenv
      • 5. 编辑环境变量的值:editenv/saveenv
    • (六)环境变量命令env
    • (七)ping命令
    • (八)tftpboot命令

一、概念

对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命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea中项目目录,文件显示不全问题

问题&#xff1a;idea中项目目录显示不全问题 解决办法1&#xff1a; 删除目录中的.idea文件 用idea重新打开文件就行了 办法2&#xff1a;手动导入为maven项目 1. 2. 3. 4.选择要导入的项目&#xff0c;导入为maven

vue3前端开发-小兔鲜项目-登录组件的开发表单验证

vue3前端开发-小兔鲜项目-登录组件的开发表单验证&#xff01;现在开始写登录页面的内容。首先这一次完成基础的首页按钮点击跳转&#xff0c;以及初始化一些简单的表单的输入验证。后期还会继续完善内容。 1&#xff1a;首先还是准备好login页面的组件代码内容。 <script …

四、GD32 MCU 常见外设介绍(8)SPI 模块介绍

串行外设接口&#xff08;Serial Peripheral Interface&#xff0c;缩写为 SPI&#xff09; 提供了基于SPI 协议的数据发送和接收功能&#xff0c; 可以工作于主机或从机模式。 SPI 接口支持具有硬件 CRC 计算和校验的全双工和单工模式。 8.1.SPI 基础知识 SPI 物理层 SPI接…

Pytorch使用教学7-张量的广播

PyTorch中的张量具有和NumPy相同的广播特性&#xff0c;允许不同形状的张量之间进行计算。 广播的实质特性&#xff0c;其实是低维向量映射到高维之后&#xff0c;相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射。 相同形状的张量计算 虽然我们觉…

自动驾驶(八十八)---------通讯之SOMEIP

1. 什么是SOME/IP 服务导向架构&#xff08;SOA&#xff0c;Service-Oriented Architecture&#xff09;是一种设计软件系统的方法&#xff0c;强调通过可重用的服务来实现系统的松散耦合。每个服务是独立的功能单元&#xff0c;可以被不同的应用程序使用。这些服务通过标准化的…

新版海螺影视主题模板M3.1全解密版本多功能苹果CMSv10后台自适应主题

苹果CMS2022新版海螺影视主题M3.1版本&#xff0c;这个主题我挺喜欢的&#xff0c;之前也有朋友给我提供过原版主题&#xff0c;一直想要破解但是后来找了几个SG11解密的大哥都表示解密需要大几百大洋&#xff0c;所以一直被搁置了。这个版本是完全解密的&#xff0c;无需SG11加…

ADG901介绍

目录 一、特性二、增强产品特性三、应用四、一般描述五、极低功耗六、引脚描述七、尺寸参数八、电路连接 一、特性 宽带开关&#xff1a;-3 dB 在 4.5 GHz吸收型开关高关断隔离度&#xff1a;在 1 GHz 时为 38 dB低插入损耗&#xff1a;在 1 GHz 时为 0.8 dB单一 1.65 V 至 2.…

QT5:嵌入式linux开发板调用键盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录​​​​​​​ 前言 一、Buildroot构建QT环境 1.1 构建环境 1.2 检查qtvirtualkeyboard库 二、测试过程 2.1 直接调用qtvirtualkeyboard 1.测试代码 2.测试效果 2.2 运行…

【Unity国产化信创平台】麒麟银河V10系统虚拟机创建

目录 一、麒麟V10系统镜像下载 二、虚拟机创建流程 三、麒麟银河系统安装流程 一、麒麟V10系统镜像下载 https://www.kylinos.cn/# 官方访问还是会有问题&#xff0c;如果有需要麒麟银河Kylin系统V10的镜像文件&#xff0c;可以留下邮箱或者私信博主获取。 二、虚拟机创…

时间序列分析方法之 -- 移动平均(Moving Average)

目录 原理 适用情况 Python 示例代码 结论 原理 移动平均&#xff08;Moving Average, MA&#xff09;是一种常用的时间序列分析和数据平滑方法。其基本思想是通过取时间序列中某个时间窗口内数据的平均值来消除短期波动&#xff0c;从而更好地揭示数据的长期趋势。根据取平…

【Tomcat】Mac M3 Pro安装Tomcat7

文章目录 下载配置环境变量修改权限启动和关闭 下载 官网&#xff1a;https://tomcat.apache.org/ cd ~/Library tar -zxvf /Users/用户名/Downloads/apache-tomcat-7.0.99.tar.gz mv apache-tomcat-7.0.99 ~/Library/tomcat配置环境变量 vi ~/.bash_profileexport TOMCAT…

UWA Gears正式上线,助力移动平台性能优化

亲爱的开发者朋友们&#xff0c; 我们非常激动地向大家宣布&#xff0c;UWA最新的无SDK性能分析工具 - UWA Gears&#xff0c;现已正式发布&#xff01;无论您使用的是哪种开发引擎&#xff0c;这款工具都能轻松应对&#xff0c;为您的项目保驾护航。更令人心动的是&#xff0c…

vue3【实战】可编辑的脱敏信息

<script lang"ts" setup> import { ref, onMounted } from "vue"; let real_name ref("朝阳");let name ref("");onMounted(() > {name.value des_name(real_name.value); });function focusing() {name.value real_name…

spring —— 事务管理器

事务管理主要针对数据源进行操作&#xff1a;在数据库方面&#xff0c;通过 TransactionManager 事务管理器进行管理&#xff0c;表明一旦出现错误&#xff0c;该数据源的所有数据全部复原。那么数据库如何判断是否发生了错误呢&#xff1f;这就需要在代码方面&#xff0c;通过…

FPGA开发——实现流水灯的设计

一、概述 众所周知&#xff0c;在我们学习任何一款硬件&#xff0c;不管是单片机MCU&#xff0c;DSP以及其他的一系列硬件在内的最开始接触的都是LED流水灯的实现&#xff0c;这就和我们在学习编程时的输出“Hello World”一样&#xff0c;我们在学习FPGA的过程当中也是要从LE…

Webshell管理工具:AntSword(中国蚁剑)

中国蚁剑是一款开源的跨平台网站管理工具&#xff0c;它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。 通俗的讲&#xff1a;中国蚁剑是 一 款比菜刀还牛的shell控制端软件。 一、中国蚁剑下载 1. 下载 AntSword-Loader https://github.com/AntSwordP…

MySQL窗口函数详解

MySQL窗口函数详解 MySQL从8.0版本开始引入了窗口函数&#xff0c;这是一个强大的特性&#xff0c;可以大大简化复杂的数据分析任务。本文将详细介绍MySQL窗口函数的概念、语法和常见用法&#xff0c;并结合实际应用场景进行说明。 什么是窗口函数? 窗口函数是一种能够对结…

单元测试的最佳实践

整体架构 合适的架构可以提升可测试性。比如菱形对称架构的模块化和解耦特性使得系统各个部分可以独立进行单元测试。这不仅提高了测试的效率&#xff0c;还能够减少测试的依赖性&#xff0c;提高测试准确性。 代码设计 代码设计和可测试性有密切关联。强烈建议一个方法的代码行…

Java面试八股之什么是spring boot starter

什么是spring boot starter Spring Boot Starter是Spring Boot项目中的一个重要概念。它是一种依赖管理机制&#xff0c;用于简化Maven或Gradle配置文件中的依赖项声明。Spring Boot Starter提供了一组预定义的依赖关系&#xff0c;这些依赖关系被封装在一个单一的包中&#x…

CC-Link转Profinet协议网关功能与配置详解

怎么样才能把CC-Link和Profinet网络连接起来呢?这几天有几个朋友问到了这个问题&#xff0c;作者在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题&#xff0c;名为JM-PN-CCLK&#xff0c;下面是详细介绍。 一&#xff0c;产品主要功能 1、捷米特JM-P…