【发布时间】:2015-02-12 07:29:41
【问题描述】:
我在下面的代码行中找到了这个,它是驱动程序库中的一个函数调用。我试图理解这个指针表达式。但是很难理解。
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
下面的代码行是上面代码组件的定义。
#define SYSCTL_PERIPH_GPIOA 0xf0000800 // GPIO A
#define ROM_SysCtlPeripheralEnable \
((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[6])
#define ROM_SYSCTLTABLE ((uint32_t *)(ROM_APITABLE[13]))
#define ROM_APITABLE ((uint32_t *)0x01000010)
【问题讨论】:
-
这是一个函数指针转换,这意味着您可以使用
ROM_SysCtlPeripheralEnable,就好像它是返回void并接受uint32_t参数的函数的名称。
标签: c arm embedded microcontroller cortex-m3