xilinx SDK 定时器中断相关函数

定时器中断相关函数:

1、XScuTimer_Config *XScuTimer_LookupConfig(u16 DeviceId)
功能:查找输入设备ID的配置信息。
输入:设备ID。
输出:成功返回指向配置信息表格的指针,失败返回NULL。
2、s32 XScuTimer_CfgInitialize(XScuTimer *InstancePtr, XScuTimer_Config *ConfigPtr, u32 EffectiveAddress)
功能:初始化一个特定的定时器实例/驱动,该函数必须在实例被调用前使用。
参数1:定时器实例指针。
参数2:配置信息结构体指针。
参数3:设备地址。
返回:初始化成功返回XST_SUCCESS,若设备已经启动返回XST_DEVICE_IS_STARTED。
3、s32 XScuTimer_SelfTest(XScuTimer *InstancePtr)
功能:运行定时器自我检测程序,该测试清除定时器控制寄存器的使能位,然后向计数寄存器写值,然后读回检测是否正确。
输入:定时器实例。
输出:成功返回XST_SUCCESS,失败返回XST_FAILURE。
4、XScuTimer_LoadTimer(InstancePtr, Value)
功能:为定时器加载计数值。
参数1:定时器实例。
参数2:定时器计数值。
5、XScuTimer_EnableAutoReload(InstancePtr)
功能:使能计数值自动加载功能,即计数器减到0时自动重装计数值。
6、void XScuTimer_Start(XScuTimer *InstancePtr)
功能:启动定时器。
输入:定时器实例。
7、XScuGic_Config *XScuGic_LookupConfig(u16 DeviceId)
功能:查找输入设备ID的中断配置信息。
8、s32 XScuGic_CfgInitialize( XScuGic *InstancePtr,XScuGic_Config *ConfigPtr,u32 EffectiveAddr)
功能:初始化一个特定的中断控制实例,初始化包括1、初始化XScuGic结构体,2、初始化函数调用向量表,3、所有中断源使能关闭。
参数1:中断实例指针。
参数2:与该设备驱动关联的配置信息指针。
参数3:设备在虚拟地址空间中的基地址。
返回:成功返回XST_SUCCESS。
9、s32 XScuGic_Connect(XScuGic *InstancePtr, u32 Int_Id, Xil_InterruptHandler Handler, void *CallBackRef)
功能:将中断ID与中断处理函数连接起来。当中断被ID识别出来后执行相应的处理函数。
参数1:中断控制实例。
参数2:中断源ID(在0-XSCUGIC_MAX_NUM_INTR_INPUTS - 1之间)。
参数3:中断处理函数。
参数4:回调参考,通常为硬件驱动指针。
返回:连接成功返回XST_SUCCESS。
10、void XScuGic_Enable(XScuGic *InstancePtr, u32 Int_Id)
功能:使能输入中断ID的中断源。
参数1:通用中断控制寄存器实例。
参数2:中断源ID。
11、XScuTimer_EnableInterrupt(TimerInstancePtr);
功能:使能定时器中断。
12、Enable interrupts in the Processor
功能:使能处理器中断。
----------------------------------------------------------
中断整体配置流程:
1、定义定时器实例。
2、私有定时器初始化。
3、设置计数值,自动重载,启动定时器。
4、中断配置:
a、初始化通用中断控制寄存器
b、连接硬件
c、连接中断号与中断服务函数
d、使能GIC中定时器中断
e、使能定时器中断
f、使能处理器中断。
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Windows 系统上使用 Xilinx SDK 进行 HDMI Transmitter Subsystem 中断处理,需要执行以下步骤: 1. 在 Vivado 中为 HDMI TX Subsystem IP 核生成 AXI Interrupt Controller。 2. 在 PS 中启用 HDMI TX Subsystem 的中断,并将其连接到 AXI Interrupt Controller。 3. 在 SDK 中创建一个新的应用程序工程。 4. 在 BSP(Board Support Package)设置中勾选 "Enable Level 1 Interrupts" 和 "Enable Level 2 Interrupts"。 5. 在应用程序中包含 "xscugic.h" 头文件,并创建一个全局的 XScuGic 实例。 6. 在应用程序中初始化 AXI Interrupt Controller 和 HDMI TX Subsystem 的中断,并将其注册到 XScuGic 实例中。 7. 在应用程序中创建中断处理程序,并在其中处理 HDMI TX Subsystem 的中断。 8. 在应用程序中启用全局中断(Enable Global Interrupts)。 以下是一个伪代码示例,展示了在 Windows 系统上实现 HDMI Transmitter Subsystem 中断处理的主要步骤: ```c #include "xscugic.h" XScuGic gic; XScuGic_Config *gic_config; XScuGic_IntId int_id; void hdmi_tx_isr(void *data) { // 处理 HDMI TX Subsystem 的中断 } int main() { // 初始化 GIC gic_config = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID); XScuGic_CfgInitialize(&gic, gic_config, gic_config->CpuBaseAddress); // 初始化 HDMI TX Subsystem 的中断控制器 Xil_Out32(XPAR_AXI_HDMI_TX_INTERRUPT_MASK, 0x01); Xil_Out32(XPAR_AXI_HDMI_TX_INTERRUPT_ENABLE, 0x01); // 注册中断处理程序 XScuGic_Connect(&gic, XPAR_AXI_HDMI_TX_INTERRUPT_INTR, hdmi_tx_isr, NULL); XScuGic_Enable(&gic, XPAR_AXI_HDMI_TX_INTERRUPT_INTR); // 启用全局中断 Xil_ExceptionEnable(); while (1) { // 处理其他任务 } return 0; } ``` 需要注意的是,这只是一个伪代码示例,具体的实现细节因硬件平台和设计而异。建议查阅相关文档和参考设计来了解详细的步骤和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值