Vxworks 的查看修改内存
查看全局变量 如定义变量 UINT32 gDebugLevel, 在 shell 模式下直接输入该变量 :
%gDebugLevel = 0x26c61e8: value = 2 = 0x2
查看结构体变量
StatusPortInfo 的结构体定义为:该结构共有 9 个 32 位整型
typedef struct
{
UINT32 uiFuncSlotNo; [14]
UINT32 uiFuncPortType; [5]
UINT32 uiFuncPortNo; [1]
UINT32 uiActualSlotNo; [14]
UINT32 uiActualPortType; [5]
UINT32 uiActualPortNo; [1]
UINT32 _Tval ePortStatus; [3]
UINT32 uiNotReport; [0]
UINT32 uiUsed; [1]
}PACK StatusPortInfo;
gstPortInfo 变量定义为:
StatusPortInfo gstPortInfo [126];
查看 gstPortInfo 地址:
%gstPortInfo = 0x2667b44: value = 14 = 0xe
打印该地址的内存
%d 0x2667b44
02667b40: 0000 000e 0000 0005 0000 0001 *..........*
02667b50: 0000 000e 0000 0005 0000 0001 0000 0003 *................*
02667b60: 0000 0000 0000 0001 0000 000e 0000 0005 *................*
02667b70: 0000 0002 0000 000e 0000 0005 0000 0002 *................*
02667b80: 0000 0001 0000 0000 0000 0001 0000 000e *................*
02667b90: 0000 0005 0000 0003 0000 000e 0000 0005 *................*
02667ba0: 0000 0003 0000 0001 0000 0000 0000 0001 *................*
02667bb0: 0000 000e 0000 0005 0000 0004 0000 000e *................*
02667bc0: 0000 0005 0000 0004 0000 0001 0000 0000 *................*
02667bd0: 0000 0001 0000 000e 0000 0005 0000 0005 *................*
02667be0: 0000 000e 0000 0005 0000 0005 0000 0003 *................*
02667bf0: 0000 0000 0000 0001 0000 000e 0000 0005 *................*
02667c 00: 0000 0006 0000 000e 0000 0005 0000 0006 *................*
02667c 10: 0000 0001 0000 0000 0000 0001 0000 000e *................*
02667c 20: 0000 0005 0000 0007 0000 000e 0000 0005 *................*
02667c 30: 0000 0007 0000 0001 0000 0000 0000 0001 *................*
02667c 40: 0000 000e *................*
该内存是 16 进制进行表示 , 所以一个 16 进制可以表示 4bit, 两个 16 进制可以表示一个 Byte.
1 格 [0000] 表示 2 个 Byte 内容,所以第一个变量 uiFuncSlotNo[4Byte] 需要两个表示,即
0000 000e 即值为 14. 由于该 CPU 为 Power PC , 数据的低字节放在高地址处。所以 14 表示为 0000 000e.
红色的表示数组 gstPortInfo[0]
修改 32 位变量值 [ uiFuncSlotNo ] ----0x12345678
write32 0x2667b44 0x12345678
修改后显示
%d 0x2667b44
02667b40: 1234 5678 0000 0005 0000 0001 *4Vx........*
02667b50: 0000 000e 0000 0005 0000 0001 0000 0003 *................*
02667b60: 0000 0000 0000 0001