指向特定固定地址的指针

如何为指针分配特定的内存地址?

像AVR m128这样的微控制器中的特殊功能寄存器具有固定地址,AVR GCC在io.h头文件中定义了SFR,但我想自己处理。


长风秋雁
浏览 602回答 1
1回答

森栏

好没问题。您可以直接将其分配给变量:volatile unsigned int *myPointer = (volatile unsigned int *)0x12345678;我通常要做的是声明一个内存映射的I / O宏:#define mmio32(x)   (*(volatile unsigned long *)(x))然后在头文件中定义我的寄存器:#define SFR_BASE    (0xCF800000)#define SFR_1       (SFR_BASE + 0x0004)#define SFR_2       (SFR_BASE + 0x0010)然后使用它们:unsigned long registerValue = mmio32(SFR_1); // readmmio32(SFR2) = 0x85748312;                   // write
打开App,查看更多内容
随时随地看视频慕课网APP