1. 使能md命令
通过定义:CONFIG_CMD_MEMORY, 就可以使能md命令。
注:由于在include/config_cmd_default.h里面已经有此定义,在板子相关的configure文件中(位于include/configs/),默认情况下,都会include此文件。所以,u-boot默认会包含此命令。
源代码:common/cmd_mem.c
2. Usage
md – memory display
注:md显示的是由md命令的参数加上base_address内容。具体参见源码
例:
2.1 显示length为1的memory内容
U-Boot base
Base Address: 0x00000000
U-Bootmd 0x20000000 0x1
20000000: 00000000
U-Boot base 0x20000000
Base Address: 0x20000000
U-Bootmd 0 0x1
20000000: 00000000
注:两次执行命令的参数不一样,但显示的结果却一样。这是因为:base_address不一样。
2.2 md更多格式的显示
U-Boot md.b 0 0x1
20000000: 00 .
U-Boot md.w 0 0x1
20000000: 0000 ..
U-Boot md.l 0 0x1
20000000: 00000000
3. 源代码分析
#define DISP_LINE_LEN 16
do_mem_md
|– ulong bytes = size * length
|– const void *buf = map_system(addr, bytes);
|– print_buffer(addr, buf, size, length, DISP_LINE_LEN / size);
|– addr += bytes;
|– unmap_sysmem(buf);