关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

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

发布时间:2023-06-26 19:00:18

简介

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

storestore [byte|halfword|word]

   

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

/template/Home/leiyu/PC/Static