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 
相关文章
|
7月前
|
Linux
linux 常用内存检查命令
linux 常用内存检查命令
78 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
106 0
|
7月前
|
机器学习/深度学习 缓存 监控
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瓶颈。
319 10
|
7月前
|
存储 C++
webserver--Buffer类实现内存缓冲区读写(全代码)
webserver--Buffer类实现内存缓冲区读写(全代码)
|
3月前
|
存储 缓存 NoSQL
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
74 0
|
4月前
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
7月前
|
存储 缓存 运维
Linux系统调优详解(四)——内存状态查看命令
Linux系统调优详解(四)——内存状态查看命令
129 7
|
5月前
|
监控 Unix Linux
ps aux 命令使用查看内存、cpu使用排名与top的区别
ps aux 命令使用查看内存、cpu使用排名与top的区别
732 1
|
5月前
|
缓存 Java Linux
开发与运维内存问题之线上遇到故障,使用jstat命令发现Old区持续增长如何解决
开发与运维内存问题之线上遇到故障,使用jstat命令发现Old区持续增长如何解决
47 2
|
5月前
|
监控 Java
JVM内存问题之使用jstat命令查看GC堆百分比占比情况,应该使用哪个选项
JVM内存问题之使用jstat命令查看GC堆百分比占比情况,应该使用哪个选项