当前位置: 首页 > news >正文

U-BOOT

使用正点原子已经移植好的U-BOOT编译完成后拷贝到SD卡中烧写到板子上中,将开发板设为SD卡启动模式,上电启动开发板;打开 MobaXterm 终端模拟软件,设置好串口参数连接开发板 USB 调试串口,最后按核心板上的 PS_RST 复位按钮复位开发板,在串口终端出现“Hit any key to stop autoboot:”倒计时时按下enter键打断它自动启动Linux内核,进入U-BOOT命令行模式:(help里用于一些具体的指令)

查看板卡信息:

 

1.信息查询有关的命令有 3 个:bdinfo、printenv 和 version :

 2.1.环境变量的操作涉及到两个命令:setenv 和 saveenv,命令 setenv 用于设置或者修改环境变量的值。命令 saveenv 用于保存修改后的环境变量,一般环境变量是存放在外部 flash中的,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。所以使用命令 setenv 修改的是 DRAM 中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash
中,否则的话 uboot 下一次重启会继续使用以前的环境变量值。比如我们要将环境变量 bootdelay 该为 5,就可以使用如下所示命令:(修改 bootdelay 以后,重启开发板,uboot 就是变为 5 秒倒计时)

setenv bootdelay 5
saveenv

2.2命令 setenv 也可以用于新建命令,用法和修改环境变量一样,比如新建一个环境变量 author,author 的值为“alientek”:

setenv author alientek
saveenv

新建命令 author 完成以后重启 uboot,然后使用命令 printenv 查看当前环境变量

2.3删除环境变量也是使用命令setenv,要删除一个环境变量只要给这个环境变量赋空值即可,比如删除掉上面新建的author 这个环境变量:

setenv author
saveenv

操作如下:

3.内存操作命令:

命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节来显示内存值。address 就是要查看的内存起始地址,[# of objects]表示要查看的数
据长度,这个数据长度单位不是字节,而是跟你所选择的显示格式有关。比如你设置要查看
的内存长度为 20(十六进制为 0x14),如果显示格式为.b 的话那就表示 20 个字节;如果显示
格式为.w 的话就表示 20 个 word,也就是 20*2=40 个字节;如果显示格式为.l 的话就表示 20
个 long,也就是 20*4=80 个字节。另外,uboot 命令中的数字都是十六进制的,不是十进制的。

比如你想查看以 0X8000000 开始的 20 个字节的内存值,显示格式为.b 的话,应该使用如
下所示命令:md.b 8000000 14。而不是:md.b 8000000 20。下面三个命令是有区别的,分别代表16个、32个、64个字节

md.b 8000000 10
md.w 8000000 10
md.l 8000000 10

4.nm命令:修改指定地址内存值

5.mm命令:也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命令
nm 的话地址不会自增

6.mw命令:使用一个指定的数据填充一段内存

7.cp 是数据拷贝命令,用于将 DRAM 中的数据从一段内存拷贝到另一段内存。使用.l 格式将 0x8000000 处的地址拷贝到 0X8000100 处,长度为 0x10 个内存块(0x10 * 4=64 个字节)

8.cmp 是比较命令,用于比较两段内存的数据是否相等

相关文章:

  • el-tree结合checkbox实现数据回显
  • 赛季7靶场 - Planning
  • 【如何搭建开发环境】
  • VSCode设置SSH免密登录
  • Games101作业四
  • IBM BAW(原BPM升级版)使用教程第十四讲
  • 大语言模型RLHF训练框架全景解析:OpenRLHF、verl、LLaMA-Factory与SWIFT深度对比
  • 网络层试题
  • CD3MN 双相钢 2205 材质保温 V 型球阀:恒温工况下复杂介质控制的高性能之选-耀圣
  • 大模型分布式光伏功率预测实现详解
  • Qt进阶开发:QTcpSocket的详解
  • Three.js模型材质调整与性能优化实战
  • 通义灵码2.5版本全新体验
  • 使用交互式半自动化标注工具制作语义分割数据集
  • Java Spring 事件驱动机制
  • KT148A语音芯片发码很难播放_将4脚对地一下再发正常,什么原因?
  • git Authentication failed for 的解决办法
  • vim,gcc/g++,makefile,cmake
  • 适应性神经树:当深度学习遇上决策树的“生长法则”
  • VSCode中Node.js 使用教程
  • 美国调整对华加征关税
  • 以军向也门3个港口的居民发布撤离令
  • 白玉兰奖征片综述丨动画的IP生命力
  • 第78届戛纳电影节开幕,罗伯特·德尼罗领取终身成就奖
  • 微软宣布将裁员3%
  • 持续8年仍难终了的纠纷:败诉方因拒执罪被立案,胜诉方银行账户遭冻结