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次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)