我不知道我是否正确地提出了这个问题,但是我一直在努力绕过以下几行代码并且无法找到我能回答的答案理解。
#define GPIO_LED ((uint32_t *)0x510000A0)
*(GPIO_LED ) = (uint32_t *)num;
其中num是一个整数(介于0到255之间)
答案 0 :(得分:-1)
好。 ((uint32_t *)0x510000A0)
是指向uint32_t
的类型指针的常量 - 换句话说,是一个显式声明的绝对地址。
*(GPIO_LED ) = (uint32_t *)num;
将num中的值转换为指向uint32_t
的指针,然后使用绝对地址{{在位置指定 1}}。
效果是它将值0x510000A0
放入地址num
的程序内存空间。
这种技巧通常用于低级编程,将设置放入映射到某些物理设备控制的内存地址。
<强>更新强>
是的,是的,我迷失在星号中。0x510000A0
指针。