区分:指针函数是返回值为指针的函数;
前言:cortex A系列芯片最高可具有具有1000+的中断,cortex A7最多集成8核在一个芯片里,通过gic中断管理器管理所有中断;它引入了中断号的概念,区别于cortex M系列芯片的NVIC中断管理器和数十个异常中断,cortex A架构芯片只有八个异常中断;其中IRQ中断包含了所有外部中断,采用中断号机制,每一个外部中断具有自己的中断号,通过给每一个中断号注册中断服务函数可以初始化中断服务函数;
编写cortex A系列mcu中断服务函数的时候遇到了这样的变量:
typedef void (*system_irq_handler_t) (unsigned int giccIar, void *param);
这是一个函数指针,也就是一个指针变量,这个变量指向一个函数的入口地址,typedef这样一个变量类型后就可以通过以下方式设一个函数指针:
system_irq_handler_t handler;
这样我们就等于有了这样一个函数:
void handler(unsigned int giccIar, void *param)
{
}
这只是一个空函数,那么完整的步骤就是这样的:
typedef void (*system_irq_handler_t) (unsigned int giccIar, void *param);
system_irq_handler_t handler;