
1. XScuGic_CfgInitialize
- 函数原型:
s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, XScuGic_Config *ConfigPtr, u32 EffectiveAddr)
- 功能:初始化中断控制器实例,将硬件配置与驱动程序关联。
- 参数:
InstancePtr
:XScuGic 结构体指针(中断控制器实例)。ConfigPtr
:XScuGic_Config 结构体指针(包含硬件配置信息,如基地址)。EffectiveAddr
:中断控制器的有效基地址(通常从 ConfigPtr 中获取)。
- 返回值:
XST_SUCCESS
(初始化成功)或XST_FAILURE
(失败)。 - 说明:必须在使用其他中断控制器函数前调用,完成驱动与硬件的绑定。
2. XScuGic_Connect
- 函数原型:
s32 XScuGic_Connect(XScuGic *InstancePtr, u32 Int_Id, Xil_InterruptHandler Handler, void *CallBackRef)
- 功能:将中断 ID 与对应的中断处理函数绑定,建立中断源与处理逻辑的关联。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:中断源 ID(由硬件定义,如 GPIO 中断 ID)。Handler
:中断处理函数指针(中断触发时执行的函数)。CallBackRef
:传递给中断处理函数的参数(通常为外设实例指针)。
- 返回值:
XST_SUCCESS
(绑定成功)或错误码(失败)。 - 说明:每个中断源需单独绑定,多次调用可绑定不同中断。
3. XScuGic_Disconnect
- 函数原型:
void XScuGic_Disconnect(XScuGic *InstancePtr, u32 Int_Id)
- 功能:解除中断 ID 与处理函数的绑定,将该中断的处理函数设为默认空函数。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:需解除绑定的中断 ID。
- 说明:用于移除中断处理逻辑,避免中断触发时执行无效操作。
4. XScuGic_Enable
- 函数原型:
void XScuGic_Enable(XScuGic *InstancePtr, u32 Int_Id)
- 功能:使能指定的中断源,允许该中断触发 CPU 中断。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:需使能的中断 ID。
- 说明:中断默认是禁用的,需显式调用此函数开启。
5. XScuGic_Disable
- 函数原型:
void XScuGic_Disable(XScuGic *InstancePtr, u32 Int_Id)
- 功能:禁用指定的中断源,阻止该中断触发 CPU 中断(但不清除已产生的中断标志)。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:需禁用的中断 ID。
- 说明:常用于中断处理过程中临时关闭中断,避免嵌套或重复触发。
6. XScuGic_SoftwareIntr
- 函数原型:
s32 XScuGic_SoftwareIntr(XScuGic *InstancePtr, u32 Int_Id, u32 Cpu_Id)
- 功能:软件触发指定的中断,模拟硬件中断信号。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:需软件触发的中断 ID。Cpu_Id
:目标 CPU 核心 ID(多核系统中指定触发哪个核心的中断)。
- 返回值:
XST_SUCCESS
(触发成功)或错误码(失败)。 - 说明:用于软件调试或模拟硬件事件触发中断。
7. XScuGic_SetPriorityTriggerType
- 函数原型:
void XScuGic_SetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, u8 Priority, u8 Trigger)
- 功能:设置中断的优先级和触发类型(电平触发 / 边沿触发)。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:目标中断 ID。Priority
:优先级(0~255,值越小优先级越高)。Trigger
:触发类型(如XGPIOPS_IRQ_TYPE_EDGE_FALLING
表示下降沿触发)。
- 说明:需在使能中断前配置,确保中断触发方式符合硬件需求。
8. XScuGic_GetPriorityTriggerType
- 函数原型:
void XScuGic_GetPriorityTriggerType(XScuGic *InstancePtr, u32 Int_Id, u8 *Priority, u8 *Trigger)
- 功能:获取指定中断当前的优先级和触发类型。
- 参数:
InstancePtr
:中断控制器实例指针。Int_Id
:目标中断 ID。Priority
:输出参数,用于存储获取的优先级。Trigger
:输出参数,用于存储获取的触发类型。
- 说明:用于调试或动态调整中断配置前读取当前状态。
9. XScuGic_InterruptMaptoCpu
- 函数原型:
void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id)
- 功能:将指定中断映射到目标 CPU 核心(多核系统中使用)。
- 参数:
InstancePtr
:中断控制器实例指针。Cpu_Id
:目标 CPU 核心 ID(如 0 或 1)。Int_Id
:需映射的中断 ID。
- 说明:在多核 FPGA 设计中,用于分配中断到特定 CPU 处理。
10. XScuGic_InterruptUnmapFromCpu
- 函数原型:
void XScuGic_InterruptUnmapFromCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id)
- 功能:解除中断与目标 CPU 核心的映射关系。
- 参数:
InstancePtr
:中断控制器实例指针。Cpu_Id
:需解除映射的 CPU 核心 ID。Int_Id
:目标中断 ID。
- 说明:与
XScuGic_InterruptMaptoCpu
配合使用,用于动态调整中断分配。
11. XScuGic_UnmapAllInterruptsFromCpu
- 函数原型:
void XScuGic_UnmapAllInterruptsFromCpu(XScuGic *InstancePtr, u8 Cpu_Id)
- 功能:解除所有中断与目标 CPU 核心的映射关系。
- 参数:
InstancePtr
:中断控制器实例指针。Cpu_Id
:目标 CPU 核心 ID。
- 说明:用于多核系统中快速清除某 CPU 的所有中断映射。
12. XScuGic_Stop
- 函数原型:
void XScuGic_Stop(XScuGic *InstancePtr)
- 功能:停止中断控制器,检查并处理当前 CPU 的中断目标寄存器。
- 参数:
InstancePtr
:中断控制器实例指针。 - 说明:通常用于系统关闭或复位前的清理操作。
13. XScuGic_SetCpuID
- 函数原型:
void XScuGic_SetCpuID(u32 CpuCoreId)
- 功能:设置全局变量
CpuId
,指定当前操作的 CPU 核心 ID。 - 参数:
CpuCoreId
:CPU 核心 ID(如 0 或 1)。 - 说明:在多核系统中,用于标识当前代码运行的 CPU 核心。
14. XScuGic_GetCpuID
- 函数原型:
u32 XScuGic_GetCpuID(void)
- 功能:获取当前设置的 CPU 核心 ID(通过
XScuGic_SetCpuID
配置)。 - 返回值:当前 CPU 核心 ID。
- 说明:用于多核系统中判断代码运行在哪个核心上。
文章转载自: http://AH74xQ6p.qqhmg.cn http://PmN2HUbn.qqhmg.cn http://6SzXxw87.qqhmg.cn http://CMfj25Cp.qqhmg.cn http://pP5adTqd.qqhmg.cn http://YvGjqO0B.qqhmg.cn http://GxFUbais.qqhmg.cn http://RhJtqTca.qqhmg.cn http://v8Bklth7.qqhmg.cn http://2sMrQu2x.qqhmg.cn http://yr0a2qXh.qqhmg.cn http://Qxa4Bg6B.qqhmg.cn http://Su0lWNeL.qqhmg.cn http://gsScyLRR.qqhmg.cn http://ei9e8gzC.qqhmg.cn http://ruZFrPJG.qqhmg.cn http://5rlplChA.qqhmg.cn http://Cz5qCnSO.qqhmg.cn http://erbGQH3p.qqhmg.cn http://E5eC5E0R.qqhmg.cn http://FrE3cWn5.qqhmg.cn http://WbVvxHgZ.qqhmg.cn http://GjXYfmHr.qqhmg.cn http://NdWjviy7.qqhmg.cn http://mXg1duSt.qqhmg.cn http://TJqWxDUi.qqhmg.cn http://eTCOq8Fd.qqhmg.cn http://2X8fCs8i.qqhmg.cn http://k3sryj7V.qqhmg.cn http://c37Ozhgv.qqhmg.cn