U-boot常用命令(一)

news2024/12/26 11:16:03

信息查询命令

bdinfo,查看板子信息。
在这里插入图片描述
可以得到DRAM的起始地址和大小、启动参数保存起始地址、波特率、sp(堆栈指针)起始地址信息。

printenv

输出环境变量信息,uboot 也支持 TAB 键自动补全功能,输入“print”
然后按下 TAB 键就会自动补全命令,直接输入“print”也可以。输入“print”,然后按下回车键。

在这里插入图片描述
uboot中的环境变量都是字符串。
比如bootdelay表示uboot启动延时时间,默认 bootdelay=3,也就默认延时 3秒。前面说的 3 秒倒计时就是由 bootdelay 定义的,如果将 bootdelay 改为 5 的话就会倒计时 5s了。uboot 中的环境变量是可以修改的,有专门的命令来修改环境变量的值。

在这里插入图片描述

内存操作命令

内存操作命令就是用于直接对DRAM进行读写操作的。

md [.b,.w,.l] adress [# of objects]

md命令用于显示内存值,格式如下:
命令中的.b .w .l对应byte word long,也就是分别以1个字节、2个字节、4个字节来显示内存值。
adress就是要查看的内存起始地址。
[# of objects]表示要查看的数据长度,此单位跟选择的显示格式有关。
比如要查看的内存长度为20(十六进制为0x14),如果显示格式为.b就表示20个字节,如果显示格式为.w 的话就表示 20 个 word,也就是 202=40 个字节;如果显示格式为.l 的话就表示 20 个 long,也就是204=80 个字节。

uboot命令中的数字都是十六进制的,不是十进制的。

查看以 0X80000000 开始的 20 个字节的内存值,显示格式为.b

md.b 80000000 14

cp 是数据拷贝命令,用于将 DRAM 中的数据从一段内存拷贝到另一段内存中,或者把 Nor Flash 中的数据拷贝到 DRAM 中。

cmp 是比较命令,用于比较两段内存的数据是否相等,命令格式如下:

cmp [.b, .w, .l] addr1 addr2 count

网络操作命令

uboot是支持网络的,在移植uboot的时候一般都要调通网络功能,因为在移植linux kernel的时候需要使用到uboot的网络功能做测试。uboot支持大量的网络命令。

开发板的网络能否使用,能否和服务器(Ubuntu主机)进行正常通信,通过ping命令就可以验证,直接ping服务器的IP地址即可。

在这里插入图片描述
dhcp命令用于从路由器获取IP地址,前提得开发板连接到路由器上,如果开发板和电脑直连,那么dhcp命令就会失效。直接输入dhcp命令即可通过路由器获取IP地址。

nfs命令
nfs(Network File System)网络文件系统,通过nfs可以在计算机之间通过网络来分享资源。
比如我们将linux镜像和设备树文件放到Ubuntu中,然后在uboot中使用nfs命令将Ubuntu中的Linux镜像和设备树下载到开发板的DRAM中。
这样做的目的是为了方便调试linux镜像和设备树,也就是网络调试,网络调试是linux开发中最常用的调试方法。
原因是嵌入式linux开发不像单片机开发,可以直接通过JLINK或STLink等仿真器将代码直接烧写到单片机内部的flash中,但是嵌入式Linux开发没有MDK,IAD这样的IDE,更没有烧写算法,无法通过点击一个download按钮就将固件烧写到外部flash中。

在uboot中的nfs命令将Ubuntu中的文件下载到开发板的DRAM中,在使用之前需要开启Ubuntu主机的NFS服务,并且要新建一个NFS使用的目录,以后所有通过NFS访问的文件都需要放到这个NFS目录中。

nfs [loadAddress] [[hostIPaddr:]bootfilename]

loadAddress 是要保存的 DRAM 地址,[[hostIPaddr:]bootfilename]是要下载的文件地址。

tftp
tftp命令的作用和nfs命令一样,都是用于通过网络下载东西到DRAM中,只是tftp命令使用的TFTP协议,Ubuntu主机作为TFTP服务器,因此需要在 Ubuntu 上搭建 TFTP 服务器。

EMMC和SD卡操作命令

uboot 支持 EMMC 和 SD 卡,因此也要提供 EMMC 和 SD 卡的操作命令。一般认为 EMMC和 SD 卡是同一个东西,所以没有特殊说明,uboot 中常用于操作 MMC 设备的命令为“mmc”。

在这里插入图片描述

  • mmc info输出当前选中的mmc info设备的信息,输入命令“mmc info”即可。
  • mmc rescan扫描当前开发板上所有的MMC设备,包括EMMC和SD卡。
  • mmc list查看当前开发板一共有几个MMC设备。
    在这里插入图片描述
    要想查看SD卡信息,就要使用命令mmc dev,将SD卡设置为当前的MMC设备。
mmc dev [dev] [part]

[dev]用来设置要切换的 MMC 设备号,[part]是分区号。如果不写分区号的话默认为分区 0。

  • 有时候SD卡或EMMC会有多个分区,可以使用命令mmc part来查看分区。
    在这里插入图片描述
    此时EMMC有两个分区,第一个分区起始扇区为20480,长度为262144个扇区。
    如果EMMC里面烧写了Linux系统的话,EMMC是有三个分区的,第0个分区存放uboot,第1个分区存放Linux镜像文件和设备树,第2个分区存放根文件系统。
    但是在图中只有两个分区,那是因为第0个分区没有格式化,所以识别不出来,实际上第0个分区是存在的。
    在这里插入图片描述
    一个新的SD卡默认只有一个分区,那就是分区0,前面讲解的uboot烧写到SD卡,其实就是将u-boot.bin烧写到SD卡的分区0里面。
    后面学习Linux内核移植的时候会知道如何在SD卡中创建并格式化第二个分区,并将 Linux 镜像文件和设备树文件存放到第二个分区中。
    如果要将 EMMC 的分区 2 设置为当前 MMC 设备,可以使用如下命令:
mmc dev 1 2
  • mmc read命令:用于读取mmc设备的数据,命令格式如下:
mmc read addr blk# cnt
  • 将数据写到mmc设备里面,使用mmc write。
mmc write addr blk# cnt

addr是要写入MMC中的数据在DRAM中的起始地址,blk是要写入到MMC的块的起始地址,cnt是要写入的块大小,一个块512字节。

我们可以使用命令“mmc write”来升级uboot,也就是在uboot中更新uboot。这里要用到nfs或tftp命令,通过nfs或者tftp命令将新编译出来的u-boot.imx(uboot.bin前面加了一些头文件)下载到开发板的DRAM中,然后再使用命令“mmc write”将其写入到MMC设备中。

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

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

相关文章

STL-deque容器

双端数组,可以对头端进行插入删除操作 deque 容器和 vecotr 容器有很多相似之处,比如: deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。deque 容器也可…

web自动化测试进阶篇01 ——— 策略模式的实践与技巧

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

【rust】| 02——语法基础_变量(不可变?)和常量

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础_变量(不可变?)和常量 文章目录 1. 变量1.1 变量的定义1.2 试验变量的不可变特性 2. 常量2.1 常量的定义 3. 覆盖(同名变量)3.1 修改已定义变量的数据类型3.2 1…

第5章 负载均衡

第5章 负载均衡 5.1 proxy_pass详解 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。 假设下面四种情况分别用 http://192.…

深度学习与文本聚类:一篇全面的介绍与实践指南

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

vivado手写ROM改IP核

一、引言 手写了一个ROM,用于ADC或者DAC的寄存器配置。DAC出来的波形总是有两个对称的小肩膀,找不到原因。时序没有报错,但是有延迟。之前听同事说他们也遇到过这样的问题,是时序问题。所以,我也想试一下&#xff…

杂谈系列:唐高祖~开元通宝

唐高祖李渊(566年12月 -635年6月 ),字叔德。中国唐朝开国皇帝(618年6月18日-626年9月4日在位)。 作为唐朝开国的帝王,史学界对李渊的评价不一。有观点认为他优柔失断,赏罚…

源码级别讲解 redis 底层数据结构

redis 底层数据结构 Redis作为Key-Value存储系统,数据结构如下: Redis没有表的概念,Redis实例所对应的db以编号区分,db本身就是key的命名空间。 比如:user:1000作为key值,表示在user这个命名空间下id为10…

二叉树的层级遍历以及[NOIP2015 普及组] 扫雷游戏、有效时间的数目

一、二叉树的层级遍历 二叉树的层级遍历看着比其他遍历简单,但是我感觉实施起来却比其他遍历难,它主要是通过队列实现的 比如在这样的一颗二叉树中 我没先将a入队 队列:a 当a出队的时候就将它的左儿子和右儿子入队 队列&…

一图看懂 toml 模块:用于解析和创建TOML(Tom‘s Obvious, Minimal Language)的Python库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 [TOC](一图看懂 toml 模块:用于解析和创建TOML(Tom’s Obvious, Minimal Language)的Python库, 资料整理笔记(大全)) ☘️摘要 全文介绍系统内置…

leap模型重点关注技术,如:能源结构清洁转型、重点领域如工业、交通节能减排降耗、新能源发电系统及发电成本最优化、区域碳达峰碳中和实现路径设计及政策评估

模型简介: 中文名:LEAP模型 外文名:Long Range Energy Alternatives Planning System/ Low emission analysis platform 采用部门分析法建立的LEAP模型(长期能源可替代规划模型)是一种自下而上的能源-环境核算工具&a…

Spark大数据处理讲课笔记3.8 Spark RDD典型案例

文章目录 零、本节学习目标一、利用RDD计算总分与平均分(一)提出任务(二)准备工作1、启动HDFS服务2、启动Spark服务3、在本地创建成绩文件4、将成绩文件上传到HDFS (三)实现步骤1、打开RDD项目2、创建计算总…

FS2455高效率的同步降压DC-DC转换器5A输出电流

概述 FS2455是一种高效率的同步降压DC-DC转换器,具有5A输出电流。 FS2455在4.5V到30V的宽输入电压范围内工作, 集 成主开关和同步开关,具有非常低的RDS(ON)以最小化传导损失。 FS2455具有轻载时的应用和高效率。此外…

[GFCTF 2021]文件查看器(GZ、过滤器、phar) day4

打开界面直接一个登录界面&#xff0c;直接admin/admin登录进去 。 进来之后发现是一个文件查看器的功能 随便输入了点东西发现了报错&#xff0c;然后读取文件的功能&#xff0c;输入Files.classs.php发现读取不成功 换了个index.php <?phpfunction __autoload($classN…

无效的目标发行版: 11

背景&#xff1a;最近在研究es&#xff0c;想着弄一个连接es集群的springboot的工程&#xff0c;然后就在网上找到一个&#xff0c;结果弄到本地运行时&#xff0c;报错了“ 无效的目标发行版: 11 ” 看着报错就知道肯定是你导入的项目和你本地的JDK版本不匹配了&#xff0c;然…

手把手教你如何将安卓手机数据导入iPhone!【详解】

案例&#xff1a;安卓数据导入苹果手机 【大神们&#xff0c;刚换了新的苹果手机&#xff0c;原本的安卓手机数据怎么导入新手机&#xff1f;】 想要换用iPhone&#xff0c;但是又不想丢失安卓手机里的重要数据怎么办&#xff1f;如何将安卓手机数据导入iphone&#xff1f;本文…

如何学习5G网络优化才能拿高薪?我已摆烂,各位努力!

“内卷”和“躺平” 有的人卷成了麻花 有的人选择了躺下 毕竟只要躺得够平&#xff0c;就卷不到我 但是更多的人选择在“内卷”与“躺平”的徘徊抉择中 “躺”的核心是休息&#xff0c;“卷”的本质是提升 但是在优橙教育学习5G网络优化 大家学会将两者融合 学习的时候…

玩转ChatGPT:快速制作PPT

一、写在前面 首先还是让小Chat推销下自己&#xff1a; 你是否曾经为制作 PPT 而烦恼&#xff1f;现在有了 ChatGPT&#xff0c;再也不必担心灵感枯竭啦&#xff01;使用 ChatGPT 撰写 PPT 可以让你轻松地组织思路、快速得到内容&#xff0c;无需任何营销口号&#xff0c;Cha…

【算法与数据结构】队列

队列 队列&#xff1a;结构定义 队列是有一篇连续的存储区&#xff0c;其实连续性不重要&#xff0c;而是队列需要保持一个特性&#xff1a; 从队首出元素&#xff0c;从队尾入元素。这一点与顺序表不一样&#xff0c;元素加入的位置不一样 队列&#xff1a;只允许从尾部加入…

P1003 [NOIP2011 提高组] 铺地毯

题目提供者 CCF_NOI 难度 普及- 此篇必须看到底&#xff01; 题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 n 张地毯&#xff0c;编号从 1 到 n。现在…