uboot 下的指令

一、i2c 指令

i2c --help: i2c指令帮助

i2c bus:获取i2c总线信息

i2c dev:查看当前i2c设备

i2c dev 0:将i2c0作为当前设备

i2c md 0x6A 0x06.1 0x01:0x6A-->设备地址,0x06.1-->寄存器地址为0x06,寄存器宽度为1个字节,0x01-->读取一个字节

i2c mw 0x6A 0x06.1 0x02:将0x02写入0x6A设备的0x06寄存器中

二、gpio 操作

gpio --help:获取gpio帮助

  

  

gpio status -a:查看所有gpio信息

  

  可以看到xilinx上有两组gpio,一个是ps端的gpio,地址是0xff0a0000,另外一组是pl端的axi gpio ,地址是0xa0070000

gpio set gpio@a00700000:将axi gpio的第一位置高电平

gpio clean gpio@a00700000:将axi gpio的第一位置低电平

gpio input gpio@a00700000:将axi gpio的第一位置设置为输入

 三、mii命令

mii命令是操作mii接口的命令,mii接口用来连接soc中的MAC控制器和外部的PHY芯片。

MAC与PHY参考链接:https://www.cnblogs.com/try-again/p/9179103.html

mii命令主要是通过mii接口中的MDIO来读写phy芯片的寄存器

可以通过mii help来查看mii指令的帮助信息

  

3.1 mii info

  mii info可以用来查看phy的基本信息,mii info 0x0c 表示查看地址为0x0c  phy的基本信息

  

3.2 mii wite

  mii wite 可向phy芯片寄存器写入信息,格式为:mii write  <addr> <reg> <data>,

  <addr>phy芯片地址

   <reg>需要配置的寄存器地址

   <data>需要写入寄存器的值

  例如:mii write 0x0c 0x00 0x2100 //向地址为0x0c的phy芯片0x00寄存器写入0x2100

3.3 mii read 

  mii read可以读取指定phy芯片寄存器的值,格式为:mii read   <addr> <reg>

   例如:mii read 0x0c 0x00 //读取地址为0x0c的phy芯片0x00寄存器的值

3.4 mii dump

  mii dump可以详细打印寄存器的信息,我们知道phy芯片的前16个寄存器是标准的,所有phy芯片都一样。格式为:mii dump   <addr> <reg> 

  例如:mii dump 0x0c 0x00   //打印地址为0x0c的phy芯片0x00寄存器的详细信息

  

  下面是DP83867IR 芯片的0x00寄存器的描述

  

  

3.4 寄存器地址大于0x1F的配置方法

  因为MDIO最多能范围的寄存器范围为0~0x1F,如果寄存器地址>0x1F那么需要通过0x0d和0x0e这两个寄存器间接访问,下面以DP83867IR phy芯片为例

读0x31寄存器
mii write 0x0c 0x0d 0x1f
mii write 0x0c 0x0e 0x31
mii write 0x0c 0x0d 0x401f
mii read 0x0c 0x0e

写0x31寄存器
mii write 0x0c 0x0d 0x1f
mii write 0x0c 0x0e 0x31
mii write 0x0c 0x0d 0x401f
mii write 0x0c 0x0e 0x1031 //向0x31寄存器写入0x1031

四、MMC命令

mmc是uboot下查看磁盘的命令

mmc list:查看所有磁盘

可以看到有两个磁盘,0是emmc,1是sd卡

mmc dev 0:进入磁盘0

mmc info :查看磁盘0的信息

这里显示了emmc的一些信息

五、fat文件系统操作命令

  5.1 fatls 查看文件命令

  fatls命令如下所示:

  

  fatls mmc 0:1:查看emmc第一分区的内容,0表示哪个mmc设备,这里是emmc,1表示第一分区

  

  可以看到emmc的第一分区中有三个文件

  5.2 fatrm 删除文件命令

  fatrm mmc 0:1 image.ub:删除emmc第一分区中的image.ub

  5.3 fatwite 写文件

  fatwrite mmc 0:1 0x10000000 image.ub 0x7d1160,从内存拷贝Image.ub到emmc第一分区中,0x10000000 表示内存拷贝的起始地址,image.ub是文件名,0x7d1160是拷贝的长度

六、ext4文件系统操作命令

   6.1 ext4ls查看文件

  ext4ls命令格式与fatls一样,比如查看mmc0 第二分区中的文件:ext4ls mmc 0:2

  

  查看mmc0第二分区bin目录下的文件:ext4ls mmc 0:2 bin

  

   6.2 ext4write 写文件

  

  ext4write mmc 0:1 0x800000 /boot/yy.confg 0x245

  从内存地址0x800000读取0x245大小字节写入到mmc 0的第一分区/boot目录下,写入的文件名为yy.confg

 7、文件传输tftp和tftpboot命令

  tftp和tftpboot都是文件传输命令,这两个命令的用法一样。将pc中的文件传输到板端内存,前提条件是要设置一下板端的网络参数: 

  1、设置服务端ip即电脑ip:setenv serverip 192.168.2.32 电脑ip地址
  2、设置设备端ip:setenv ipaddr 192.168.2.35 设备端ip
  3、设置mac地址:setenv ethaddr 36:7D:E4:B3:B9:89 (地址每块板子应不一样)
  4、保存设置的ip地址: saveenv

  用ping命令ping一下pc的ip,看网络是否正常。

   tftp 0x44000000 tt.txt :将tt.txt文件传输到板端的0x4400000内存地址处

8、内存操作mw和md命令

  8.1 mw 写内存命令

  

  mw.b:以8位为一个单位操作

  mw.w:以16位为一个单位操作

  mw.l:以32位为一个单位操作

  mw.q:以64位为一个单位操作

  address:写入内存的起始地址

  value:写入内存的数据

  count:连续写入的次数

  

  mw.b 0x20000 0xFF 0x400 以0x400 为起始内存地址,连续写入0x400个 0xFF数据

  mw.w 0x20000 0xE1F2 0x400 以0x20000 为起始内存地址,连续写入0x400 个0xE1F2数据

  8.2 md 都内存命令

   

  mb.b:以8位为一个单位操作

  mb.w:以16位为一个单位操作

  mb.l:以32位为一个单位操作

  mb.q:以64位为一个单位操作

  address:读取内存的起始地址

  objects:连续读取的次数

  从0x00地址处一次读取一个字节,连续读8次

  

  从0x00地址处一次读取4个字节,连续读取8次

  

 

  

  

posted @   YYFaGe  阅读(3444)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示