首页 > 其他分享 >U-boot常见命令使用

U-boot常见命令使用

时间:2024-03-30 21:57:32浏览次数:14  
标签:操作命令 bootz 常见 boot 命令 内存 uboot 环境变量

前言:绝大多数嵌入式开发都使用uboot作为bootloader,uboot可以看作是一个框架,在编译时需要指定设备文件才能够编译得到对应板子的uboot,这个设备文件就相当于参数表,描述了这个板子长什么样子。在uboot里不用记住所有命令的用法,当需要查看某个命令的用法和介绍时,输入? 命令或者 help 命令 就可以得到对应名的用法和介绍了
下面介绍一些常用的和重点的uboot命令

1、信息查询命令
(1) bdinfo
(2) printenv
(3) version

2、环境变量操作命令
(1)setenv 修改环境变量命令,此时修改的命令只是保存在RAM中
(2)saveenv 保存修改的环境变量到flash中。因此这两个命令是配合使用的
注意:环境变量是以字符串的形式保存,并在修改时以空格分隔名字和变量值,因此如果环境变量值存在空格,要用单引号括起来

3、内存操作命令
特别注意:在uboot中数字都是16进制形式
(1)md 显示内存的内容,顾名思义,md = memory display 具体用法可以‘? md’查看
(2)nm 修改指定位置内存的内容
(3)mm 也是修改指定地址处内存的内容,但是地址会自增
(4)mw 使用一个数据填充一段连续的内存
(5)cp 拷贝命令
(6)cpm 比较两个地址处的内存内容是否相等

4、网络操作命令 重点!
在使用网络操作命令之前需要先配置好开发板的网络环境,要求在uboot中能够ping通虚拟机、电脑主机
(1) ping ip地址 用于确定当前机器是否能和对应ip地址的机器通过网络连接
(2) dhcp 自动获取ip地址,仅在开发板连接路由器时才有效,通过电脑连接的话组成的只是一个局域网,是不能访问外部网络的
(3) nfs 通过网络将服务器中的文件通过网络传输到开发板的DRAM中
(4) tftp作用同nfs,只是命令的用法和格式不一样,并且tftp是直接从环境变量中设置的服务器ip地址对应的服务器中的特定文件夹中传输文件,指令上更加简洁

5、mmc命令
输入‘? mmc’可以查看mmc命令说明

6、文件系统操作命令
关于文件系统的知识与原理请看哈工大操作系统课程中关于磁盘的那一部分

  • FAT格式文件系统
    (1)fatinfo 查询指定mmc设备分区的文件系统信息
    (2)fatls 查询fat格式设备的目录和文件信息
    (3)fstype 查看mmc设备某个分区的文件系统格式
    (4)fatload 将指定文件读到DRAM
    (5)fatwrite 将DRAM中数据写入到MMC设备中
  • EXT格式文件系统操作命令也有extls,extinfo等,与fat文件系统格式一样,只是只能用于ext格式文件系统,同理fat文件系统操作命令也只用于fat格式文件系统

7、boot操作命令,重点!
(1)bootz 用于从DRAM中启动Linux系统,首先需要将系统镜像文件、根文件系统、设备树文件加载到内存中,然后bootz启动,格式为:bootz [addr [initrd[:size]] [fdt]]
其中addr为Linux镜像在DRAM中的位置,initrd为文件系统相关的文件在DRAM中位置,fdt是设备树文件在DRAM中位置,如果不使用initrd的话用-代替,一个例子如下:

点击查看代码
tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb
bootz 80800000 - 83000000
可以看到,首先需要将文件加载到内存然后才能bootz

(2)bootm与bootz作用相同,只是bootm引导的是uImage镜像

(3)boot命令就是执行bootcmd环境变量中的命令来引导操作系统,因此如果把前面tftp和bootz代码写到bootcmd环境变量中,运行boot就会执行bootcmd中命令启动操作系统

(4)run 运行环境变量中定义的命令
(5)go 修改PC指针,跳转到指定内存位置处执行,比如可以把逻辑程序的bin文件加载到链接的内存位置后使用go跳到链接地址执行

标签:操作命令,bootz,常见,boot,命令,内存,uboot,环境变量
From: https://www.cnblogs.com/starstxg/p/18104908

相关文章

  • SpringBoot 手动控制事务,即编程式事务
    前置知识Spring事务默认只在发生未捕获的RuntimeException时才回滚SpringAOP异常捕获需要被拦截的方法显式的抛出异常。默认情况下AOP只捕获RuntimeException类的异常,但可以通过配置来捕获特定的异常手动控制事务案例在日常开发中,如果没办法使用@Transactional注......
  • 【数据结构】用C语言实现单链表及其常见操作
    【数据结构】用C语言实现单链表及其常见操作链表是一种常用的基础数据结构,可以快速插入和删除数据,但是不能随机访问。那么它在内存中是怎么存储的呢?它和数组不同,数组在内存中是连续存储的,而链表不一定是连续的,它们之间是通过指针来连接的。指针是C语言中最重要的特性之一。那......
  • java毕业设计企业人事管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着信息技术的快速发展,企业管理逐渐向数字化、智能化方向迈进。人事管理作为企业内部管理的重要组成部分,其信息化水平直接关系到企业的运行效率和管理水......
  • java毕业设计汽车零件厂绩效管理(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代企业管理中,绩效管理是连接企业战略目标与员工个人目标的桥梁,它对于提升员工工作积极性、优化团队协作效率以及推动企业持续发展具有重要作用。对于......
  • Windows中的MSG命令是一种用于向其他用户或会话发送消息的命令行工具。它可以用于在本
    Windows中的MSG命令是一种用于向其他用户或会话发送消息的命令行工具。它可以用于在本地网络上向其他用户或会话发送即时通讯,以便进行通知、提醒或交流。MSG命令的作用:发送消息: MSG命令允许管理员或用户向其他用户或会话发送简短的消息。通知和提醒: 可以用MSG命令来发送提醒......
  • 【Redis】Redis 生产问题。如何确保缓存和数据库数据的一致性? 常见的缓存更新策略?
    目录缓存穿透缓存穿透解决办法缓存击穿击穿解决办法?缓存穿透和缓存击穿的区别?缓存雪崩雪崩解决办法?如何确保缓存和数据库数据的一致性?常见的缓存更新策略?缓存穿透定义:缓存穿透说简单点就是大量请求的key是不合理的,根本不存在于缓存中,也不存在于数据库中。这......
  • 【Docker】常用命令 docker compose
    文章目录什么是DockerCompose基本用法实际示例启动Compose应用停止Compose应用常用选项`-f,--file`:指定Compose文件`-p,--project-name`:指定项目名称高级用法执行单个服务构建服务总结在Docker中,docker-compose命令是用于管理多容器应用的主要命令之一。本文......
  • Spring Boot 基本配置之依赖管理starter pom
    在SpringBoot快速搭建中搭建了一个没有任何功能的项目,查看其pom.xml文件:项目pom.xml文件有两个核心依赖,分别是spring-boot-starter-parent和spring-boot-starter。仔细观察可知spring-boot-starter-parent中有版本号,而spring-boot-star......
  • linux---简单模拟实现shell(内置命令的解析)
    准备工作的知识我们要模拟实现一个命令行解释器的话,需要运用进程替换的知识。我们用我,如花,王婆,实习生的例子来说:这里的“我”就是程序员,如花是操作系统,王婆是命令行解释器bash,实习生则是子进程,我们用户想要和操作系统交流的话,就需要通过bash,而命令行解释器(王婆)不会自己去执行......
  • Linux下history命令简单原理
    前言在我们平时操作linux服务器时,有时候需要使用之前操作过的命令,这个时候history就派上用场了,它会记录你的历史操作命令。使用历史记录会持久化存储,默认位置是当前用户目录下的.bash_history文件。当Linux系统启动一个Shell时,Shell会从.bash_history文件中,读取......