为了账号安全,请及时绑定邮箱和手机立即绑定

指向特定固定地址的指针

指向特定固定地址的指针

C
长风秋雁 2019-11-18 18:34:47
如何为指针分配特定的内存地址?像AVR m128这样的微控制器中的特殊功能寄存器具有固定地址,AVR GCC在io.h头文件中定义了SFR,但我想自己处理。
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

好没问题。您可以直接将其分配给变量:


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); // read

mmio32(SFR2) = 0x85748312;                   // write


查看完整回答
反对 回复 2019-11-18
  • 1 回答
  • 0 关注
  • 601 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信