我想写一个字节来注册特定的内存地址(0x1228A432)
但是,该寄存器具有以下结构:
Bits | Access | Name | Reset | Description |
[31:8] | Read only | -------- | ------ | Reserved |
[7:0] | Read-write | REG[7:0] | 0xXX | ----------- |
请告诉我,如何在不“触及”保留位的情况下向该寄存器写入一个字节?
EDIT1:我的目标是 Cortex A9。我可以使用 256 位值(例如 0xFF)成功读取/写入板载 DDR2 内存
EDIT2:我曾经通过以下方式使用 DDR2 内存:
// First stage
static unsigned char *p = 0;
char * argv1="0x60000000";
unsigned long address=strtoul(argv1, 0, 0);
p = (unsigned char *) argv1;
// Second stage
char * argv4="FF";
int value=strtol(argv4,0,16);
// Third stage
int offset = 9;
p[offset]=value;
EDIT3:我发现了以下信息:
所有寄存器均为 32 位宽,不支持字节写入。写操作必须是字宽的,并且必须使用 read-modify-write 保留标记为保留的位。