Car*_*rum 31
好没问题.您可以直接将其分配给变量:
volatile unsigned int *myPointer = (volatile unsigned int *)0x12345678;
Run Code Online (Sandbox Code Playgroud)
我通常做的是声明一个内存映射的I/O宏:
#define mmio32(x) (*(volatile unsigned long *)(x))
Run Code Online (Sandbox Code Playgroud)
然后在头文件中定义我的寄存器:
#define SFR_BASE (0xCF800000)
#define SFR_1 (SFR_BASE + 0x0004)
#define SFR_2 (SFR_BASE + 0x0010)
Run Code Online (Sandbox Code Playgroud)
然后使用它们:
unsigned long registerValue = mmio32(SFR_1); // read
mmio32(SFR2) = 0x85748312; // write
Run Code Online (Sandbox Code Playgroud)