中断处理函数映射说法是否正确不敢保证,意思就是将中断处理函数的地址与参数放入中断向量表中(_vector_table)中。
早期运用的arm芯片规模较小,在芯片上直接有uart的中断服务函数地址寄存器,直接将中断服务函数的地址写入寄存器就搞定了。然后zynq似乎比较复杂,中断也比较。在zynq中有个Scu(snoop control unit窥探控制单元,也是arm所有的)专门控制中断处理。Vivado SDK中提供了scugic驱动来处理相关的操作。下面具体说一下,中断hook的过程。
XScuGic_LookupConfig // 找到scugic的定义实体;
XScuGic_CfgInitialize // 初始化scugic实体;
Xil_ExceptionInit() //异常处理初始化
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,
pScuGic);
这一步基本是固定的,中断触发之后统一由XScuGic_InterruptHandler先处理,然后在HandlerTable中查找相应的处理函数。这个HandlerTable数组的长度为95个,包含了所有的中断ID。
Xil_ExceptionEnable(); 异常处理使能
XScuGic_Connect( pScuGic,XPAR_PS7_UART_1_INTR, (Xil_InterruptHandler)ZUartPs_InterruptHandler , (void*)pUart1Inst);
这才是将我们定义的中断服务函数地址映射到HandlerTable中。也可以使用UartPs驱动中包含的中断处理函数。
XScuGic_Enable( pScuGic, XPAR_PS7_UART_1_INTR); 使能uart对应的中断ID。
XUartPs_SetInterruptMask( pUart1Inst, XUARTPS_IXR_RXOVR | XUARTPS_IXR_TXEMPTY /*| XUARTPS_IXR_TNFUL*/ ); 这应用程序中开启接收缓冲fifo中断与发送为空中断。
这时uart接收到数据,则会自动跳入中断处理函数ZUartPs_InterruptHandler中。向发送硬fifo中写入数据,在数据发空后,也会跳入中断处理函数ZUartPs_InterruptHandler中。两者根据不同中断状态寄存器中的标识进行相应的处理。
上一篇:解决stm8会卡在串口中断的问题
下一篇:STM8S学习03——寄存器版本的一些程序
推荐阅读
史海拾趣
在快速发展的同时,Elekon也积极履行社会责任。公司注重环保和可持续发展,积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Elekon还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elekon的社会责任感,也为公司的长期发展奠定了坚实的基础。
请注意,以上故事均为虚构,旨在为您提供关于Elekon Industries公司发展起来的相关故事。如有需要,请参考公司官方发布的信息或相关新闻报道。
为了保持技术领先地位,Aplus Integrated Circuits公司注重产学研合作。公司与多所高校和研究机构建立了紧密的合作关系,共同开展科研项目和技术攻关。这种合作模式不仅为公司带来了源源不断的技术创新动力,还为公司培养了一批高素质的研发人才。
随着国内市场的饱和,Bedford Opto公司开始寻求国际化扩张的机会。通过与国外知名企业的合作,公司成功打入国际市场,并获得了更多的业务机会。同时,公司还积极参与国际技术交流与合作,不断提升自身的技术水平和创新能力。
随着数据中心的能耗问题日益突出,GreenTech敏锐地捕捉到了这一市场机遇。公司研发了一套绿色数据中心解决方案,包括高效能服务器、智能温控系统和可再生能源供电系统等。这些创新技术有效降低了数据中心的能耗和碳排放,为云计算和大数据产业的绿色发展提供了有力支持。GreenTech的解决方案得到了多家互联网巨头的认可,并成功应用于多个大型数据中心项目。
为了进一步扩大市场份额和提升品牌影响力,Catalyst / ON Semiconductor公司开始实施全球扩张战略。公司先后在多个国家和地区设立了分支机构和研发中心,以便更好地服务当地客户并吸引优秀人才。同时,公司还积极与其他知名企业进行战略合作,共同推动半导体技术的创新和应用。
电源说明: 1、变压器是4W的,该5V电源设计的最大输出电流2.5A 2、当输入采用单相单变压器供电或单相3变压器供电时,5V电源噪音峰峰值200mV左 右 3、当输入采用三相供电时,5V电源噪音峰峰值400mV左右 4、2576的振荡频率是52KHZ,而该噪音类似 ...… 查看全部问答∨ |
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 这个二极管又是起什么作用? 保护作用吧?感觉没必要啊 这个是电平复位 电路,FPGA单片机都一样 就是这个二极管加的有点多余我感觉 51单片机是高电平复位 这个是低 ...… 查看全部问答∨ |
一年的嵌入式软件系统开发工作经验 做过2个项目 1、基于GSM的安防监控系统 硬件系统采用的是C8051内核的单片机与西门子的TC35i 无线发射模块(我没有参与硬件设计),但整个软件系统包括硬件驱动全我做的。 2、胜利油田 石油开采的 远程数据传 ...… 查看全部问答∨ |
|
请问,我的PC上运行的在 linux 操作系统,请问在这个环境里用什么工具进行 ARM 嵌入式软件开发? 请问,我的PC上运行的在 linux 操作系统,请问在这个环境里用什么工具进行 ARM 嵌入式软件开发?… 查看全部问答∨ |
|
求达人扫盲EVC下的多线程内存管理与VC下哪些不同,需要注意什么 求达人扫盲EVC下的多线程内存管理与VC下哪些不同,需要注意什么 最近由于项目要求,我要转想WINCE下开发,目前正在学习,有些不明白的地方 需要大家帮我讲解 如题的疑问 谢谢你们… 查看全部问答∨ |