说明

最近在研究ZYNQ中断的事情,感觉搞清楚Xilinx的一些官方函数或许有帮助吧。
一下是笔者对XScuGic_Connect的分析。


源代码

XScuGic_Connect函数代码如下,

/*****************************************************************************/
/**
*
* Makes the connection between the Int_Id of the interrupt source and the
* associated handler that is to run when the interrupt is recognized. The
* argument provided in this call as the Callbackref is used as the argument
* for the handler when it is called.
*
* @param   InstancePtr is a pointer to the XScuGic instance.
* @param   Int_Id contains the ID of the interrupt source and should be
*       in the range of 0 to XSCUGIC_MAX_NUM_INTR_INPUTS - 1
* @param   Handler to the handler for that interrupt.
* @param   CallBackRef is the callback reference, usually the instance
*       pointer of the connecting driver.
*
* @return
*
*       - XST_SUCCESS if the handler was connected correctly.
*
* @note
*
* WARNING: The handler provided as an argument will overwrite any handler
* that was previously connected.
*
****************************************************************************/
s32  XScuGic_Connect(XScuGic *InstancePtr, u32 Int_Id,Xil_InterruptHandler Handler, void *CallBackRef)
{/** Assert the arguments*/Xil_AssertNonvoid(InstancePtr != NULL);Xil_AssertNonvoid(Int_Id < XSCUGIC_MAX_NUM_INTR_INPUTS);Xil_AssertNonvoid(Handler != NULL);Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);/** The Int_Id is used as an index into the table to select the proper* handler*/InstancePtr->Config->HandlerTable[Int_Id].Handler = (Xil_InterruptHandler)Handler;InstancePtr->Config->HandlerTable[Int_Id].CallBackRef = CallBackRef;return XST_SUCCESS;
}

代码分析

结合XScuGic_Connect函数代码,分析如下,

/*****************************************************************************/
/**
*
* 该函数用于将识别中断的函数(handler)与中断源的中断ID(Int_Id)。
* 该函数中的Callbackref参数作为调用中断函数(handler)时的参数。
*
* @参数  InstancePtr 为XScuGic实例的指针。
* @参数  Int_Id包含中断源的ID,其取值应该在 0 到 XSCUGIC_MAX_NUM_INTR_INPUTS - 1
* @参数  中断的处理函数
* @参数  CallBackRef为回调参考,通常为所连接驱动的实例指针。
*
* @返回
*
*       - XST_SUCCESS 如果处理函数(handler)正确连接
*
* @说明
*
* 警告: 作为参数提供的处理函数handler,它将覆盖之前连接的所有处理函数handler。
*
****************************************************************************/
s32  XScuGic_Connect(XScuGic *InstancePtr, u32 Int_Id,Xil_InterruptHandler Handler, void *CallBackRef)
{/** 检查输入是否合法*/Xil_AssertNonvoid(InstancePtr != NULL);  //指针非空Xil_AssertNonvoid(Int_Id < XSCUGIC_MAX_NUM_INTR_INPUTS);  //中断ID取值合法Xil_AssertNonvoid(Handler != NULL);  //处理函数非空Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);  //指针就绪/** 参数Int_Id作为中断表的索引,用于选择相应的中断处理函数handler*/InstancePtr->Config->HandlerTable[Int_Id].Handler = (Xil_InterruptHandler)Handler;  //处理函数InstancePtr->Config->HandlerTable[Int_Id].CallBackRef = CallBackRef;  //回调参数return XST_SUCCESS;
}

XScuGic_Connect分析相关推荐

  1. LInux命令行参数

    原创: Linux 微知识 在大学里面,老师一般会这样教,定义main 函数应该是这样的: 甚至是这样的: 但是其实在 Linux 下,一个正确的main 函数应该被定义为如下: 大家可以看到,mai ...

  2. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  3. 2022-2028年中国自动驾驶系统行业现状调研分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国自动驾驶系统行业市场行业相关概述.中国自 ...

  4. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻尼涂料行业市场行业相关概述.中国阻尼涂 ...

  5. 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻燃装饰行业市场行业相关概述.中国阻燃装 ...

  6. 2022-2028年全球与中国漂白吸水棉市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国漂白吸水棉行业市场行业相关概述.全 ...

  7. 2022-2028年全球与中国青苔清洗剂市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国青苔清洗剂行业市场行业相关概述.全 ...

  8. 2022-2028年全球与中国氢碘化物市场智研瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国氢碘化物行业市场行业相关概述.全球 ...

  9. 2022-2028年全球与中国人字拖市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国人字拖行业市场行业相关概述.全球与 ...

最新文章

  1. 小白都能看得懂的java虚拟机内存模型
  2. Java眼中的XML--文件读取--2 应用SAX方式解析XML
  3. think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...
  4. win8.1出现 called runscript when not marked in progress
  5. markdown html vue,vue项目引入markdown
  6. eclipse乱码解决
  7. 新秀发挥云17号:RHEL改变以太网地址克隆虚拟机后,
  8. 那些让老板赞不绝口的可视化大屏,附模板和教程
  9. vue-router的hash(地址栏中带#号)模式与History模式
  10. 我的dota之路(下)
  11. JAVAWeb项目 微型商城项目-------(七)后台添加用户管理和商品类型管理操作
  12. 有java基础学python-零基础应该选择学习 java、php、前端 还是 python?
  13. 怎么从altera官网下载那款fpga芯片数据手册
  14. igm焊接机器人基本操作_焊接机器人技术讲解.ppt
  15. 计算机智能化的例子,工程机械智能化技术案例实例.ppt
  16. 腾讯手机管家(android2.3),腾讯手机管家3.4 Android发布_软件资讯软件快报-中关村在线...
  17. gitlab 版本升级
  18. PyQt5编程-鼠标事件
  19. 炒股的最简单方法 炒股的管理和纪律要求
  20. Myeclipse链接sql server 2005是出现Error while performing database login with the sql2005 driver:

热门文章

  1. 视频技术详解:语音编解码技术演进和应用选型
  2. YouTube、微博、今日头条齐齐发力,短视频平台如何打造头部内容、做好用户留存?
  3. 216位攻城狮送给程序猿的10个新年礼物
  4. MJiOS底层笔记--KVO本质
  5. SnapKit 源码解读(五):Models
  6. Avaya以1亿美元向Extreme销售网络业务
  7. Spring Security 入门(3-11)Spring Security 的使用-自定义登录验证和回调地址
  8. jmap之使用说明与JVM配置
  9. wind2008中如何显示隐藏文件/夹
  10. DevExpress的更新