U-Boot内存读写操作store命令

简介: U-Boot内存读写操作store命令

简介

U-Boot的store命令用于向内存读写数据。语法如下:

store <operation> <address> <width> <count>
store [byte|halfword|word] <address>  <value>

operation可以是:


read: 读取内存数据

write: 写入内存数据

md: 显示内存数据(等同于 dump memory)

mm: 修改内存数据

cp: 内存块复制

mw: 写字符串到内存

mh: 修改内存数据(16进制)

width表示访问宽度,可以是:

0: 字节(8位)

1: 半字(16位)

2: 字(32位)

count表示要访问的个数。

举例

例子:

store write 0x1fc0000 0 8  :在地址0x1fc0000处写入8字节数据
store read 0x1fc0000 1 4 : 从0x1fc0000读取4个16位数据
store md 0x1fc0000 10     : 显示从0x1fc0000开始的10个32位内存数据
store mh 0x1fc0000 12 0x5678 :在0x1fc0000写入16进制数0x5678
store cp 0x1fc0000 0x2000000 0 8 : 将0x1fc0000处的8个字节拷贝到0x2000000
store mw 0x1fc0000 "hello" : 在0x1fc0000写入字符串"hello"

store命令给U-Boot提供了对内存进行方便操作的能力,是U-Boot中比较实用的命令之一.


store 操作其他设备

store命令主要用于操作内存,但是不仅仅只能操作内存。它还可以:


1.操作SDRAM - store命令可以读写U-Boot管理的SDRAM内存。

2.操作内部SRAM - store命令可以访问U-Boot自身所在的内部SRAM内存。

3.操作外部存储器 - store命令可以访问U-Boot外部连接的存储器,如NOR Flash、NAND Flash、SD卡等。这需要在U-Boot中先初始化这些外部存储器才能使用store访问。

4.访问MMIO区域 - store命令可以访问内存映射IO区域,从而实现对一些外设的访问。这同样需要U-Boot先设置好这些MMIO区域才能使用。

在store命令中,可以通过几个方面来区分它是在操作内存还是其他外设:


1.地址范围 - U-Boot中不同的存储资源有不同的地址范围,所以可以根据store指定的地址范围来判断。例如:

SDRAM 一般从0x80000000开始

内部SRAM 一般从0x00000000开始

NOR Flash 一般从0xBC000000开始

NAND Flash 一般从0x1000000开始

MMIO 区域地址由具体外设决定

所以根据store命令指定的地址就可以判断它在访问哪种存储资源。

2.初始化情况 - store命令只有在U-Boot初始化了对应的存储器后才能访问。所以如果某个存储器没有在U-Boot启动过程中初始化,store访问时会报错。这也是一个判断依据。

3.宽度选择 - 不同的存储器支持的访问宽度是不同的。SDRAM可以字节访问,也可以字访问,但是NOR Flash只支持字访问。所以store指定的width参数也是一个判断依据。

4.效果判断 - 在一些情况下,通过观察store命令的效果也能判断。例如向一个MMIO区域写入数据后,如果外设的状态或值发生了改变,就可以判断刚才访问的是MMIO区域。

所以,通过地址范围、初始化情况、宽度支持和最终效果等手段,我们可以判断在不同情况下store命令是在访问内存还是其他外设。需要对各存储器的信息有一定了解,然后结合store命令指定的参数来综合判断。

举例

将2个byte的数据写到emmc的certdata分区的起始位置

store write certdata 0x1080000 0 2 
相关文章
|
2月前
|
Linux
|
2月前
|
Linux
linux 常用内存检查命令
linux 常用内存检查命令
58 0
|
2月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
60 0
|
2月前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
162 10
|
2月前
|
存储 C++
webserver--Buffer类实现内存缓冲区读写(全代码)
webserver--Buffer类实现内存缓冲区读写(全代码)
|
2月前
|
存储 缓存 运维
Linux系统调优详解(四)——内存状态查看命令
Linux系统调优详解(四)——内存状态查看命令
84 7
|
25天前
|
监控 Linux 数据处理
探索Linux中的`lsmem`命令:深入了解系统内存布局
`lsmem`是Linux命令,用于显示系统内存布局和大小,帮助管理员和开发者理解内存使用情况。它提供详细输出,包括内存块的大小、范围、类型和关联,支持多种格式展示,如树状图。命令参数如`-h`显示帮助,`-t`以树形展示,`--human-readable`使大小更易读。需root权限运行,常与`free`、`vmstat`等工具结合使用,用于监控和优化内存。注意不同发行版可能存在兼容性差异。
|
10天前
|
监控
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
|
13天前
|
NoSQL 算法 Linux
【内附完整redis配置文件】linux服务器命令设置redis最大限制内存大小,设置redis内存回收机制,redis有哪些回收机制
【内附完整redis配置文件】linux服务器命令设置redis最大限制内存大小,设置redis内存回收机制,redis有哪些回收机制
15 0
|
17天前
|
监控 Linux
深入了解Linux的pmap命令:进程内存映射的利器
`pmap`是Linux下分析进程内存映射的工具,显示内存区域、权限、大小等信息。通过`/proc/[pid]/maps`获取数据,特点包括详细、实时和灵活。参数如`-x`显示扩展信息,`-d`显示设备。示例:`pmap -x 1234`查看进程1234的映射。注意权限、实时性和准确性。结合其他工具定期监控,排查内存问题。