历史上的今天

今天是:2024年09月16日(星期一)

2019年09月16日 | Zynq篇——uart中断

发布者:灵感发电站 来源: eefocus关键字:Zynq篇  uart中断  中断处理函数 手机看文章 扫描二维码
随时随地手机看文章

中断处理函数映射说法是否正确不敢保证,意思就是将中断处理函数的地址与参数放入中断向量表中(_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中。两者根据不同中断状态寄存器中的标识进行相应的处理。

关键字:Zynq篇  uart中断  中断处理函数 引用地址:Zynq篇——uart中断

上一篇:解决stm8会卡在串口中断的问题
下一篇:STM8S学习03——寄存器版本的一些程序

推荐阅读

提到马斯克,大家首先想到的一般是特斯拉,但马斯克旗下还有一个更大胆更又创意的公司——Space X。很早之前SpaceX就提到载游客去太空旅行的目标。而这这一目标或将在今年成为现实。对于SpaceX来说,他们即将开启载人航天发射业务,现在官方宣布签下全球首位绕月飞行私人乘客。消息一出引来全球网友的关注,毕竟这个项目太疯狂了。SpaceX在官方推特上表示...
专注于引入新品的全球电子元器件授权分销商贸泽电子 (Mouser Electronics) 即日起备货Texas Instruments (TI) 的OPA855非完全补偿放大器。该款双极性输入的宽带低噪声运算放大器非常适合配置为高带宽跨阻放大器和电压放大器,其8GHz增益带宽积 (GBWP) 可以在维持较高闭环带宽的前提下实现高增益配置。不仅如此,OPA855的输入噪声仅为0.98nV/√Hz,能够尽...
项目名称:A_基于乐拓示波器调试can通信产品过程本贴基于上次开箱,引入一个调整示波器探头的调谐电容,从而会影响示波器信号波形的采集,我们来分析下基本原理:上图a为直连模式,此时相当于直接用两根导线将待测信号和示波器探头连接起来。上图b为我们最常用到的示波器探头,即无源探头,探头内部是有衰减电阻和输入等效电容,常见带宽都是500MHz以下,...
在上一篇文章中说了STM8的ADC连续采样模式,为了提高采样的精度和速率,STM8单片机还提供了带缓存的连续采样模式,也就是说ADC会连续采集8个数据,放在缓存中,读取数据时可以一次从缓存中读取8个数据,这样就可以通过8个数据数据计算平均值,使得采样的结果更加准确。下面看一下官方文档中的对缓存模式的介绍。通过文档中可以看出,要开启缓存模式,只需...

史海拾趣

问答坊 | AI 解惑

LM2576输出噪音问题

电源说明: 1、变压器是4W的,该5V电源设计的最大输出电流2.5A 2、当输入采用单相单变压器供电或单相3变压器供电时,5V电源噪音峰峰值200mV左 右 3、当输入采用三相供电时,5V电源噪音峰峰值400mV左右 4、2576的振荡频率是52KHZ,而该噪音类似 ...…

查看全部问答∨

这个二极管又是起什么作用? 是不是有必要?

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 这个二极管又是起什么作用? 保护作用吧?感觉没必要啊 这个是电平复位 电路,FPGA单片机都一样 就是这个二极管加的有点多余我感觉 51单片机是高电平复位 这个是低 ...…

查看全部问答∨

WINCE下怎么加自己的输入法?有了输入法的DLL怎么加注册表项让其被调用起来?

WINCE下怎么加自己的输入法?有了输入法的DLL怎么加注册表项让其被调用起来?…

查看全部问答∨

谁有单片机C语言程序设计实训100例的所有源码

请问一下谁有单片机C语言程序设计实训100例的所有源码,能否上传一个啊,谢谢了!…

查看全部问答∨

请大家看下我的情况 想还工作了

一年的嵌入式软件系统开发工作经验 做过2个项目 1、基于GSM的安防监控系统 硬件系统采用的是C8051内核的单片机与西门子的TC35i 无线发射模块(我没有参与硬件设计),但整个软件系统包括硬件驱动全我做的。 2、胜利油田 石油开采的 远程数据传 ...…

查看全部问答∨

关于挂载sd的问题

davinci 的 MontaVista 的操作系统,能正确识别U盘和SD卡,U盘和SD卡具有相同的文件系统 使用fdisk查看均为b  Win95 FAT32,U盘能够正常mount,可是SD卡却mount不了: # mount -t vfat /dev/mmcblk0 /mnt/sd FAT: bogus number of res ...…

查看全部问答∨

请问,我的PC上运行的在 linux 操作系统,请问在这个环境里用什么工具进行 ARM 嵌入式软件开发?

请问,我的PC上运行的在 linux 操作系统,请问在这个环境里用什么工具进行 ARM 嵌入式软件开发?…

查看全部问答∨

H.264产品的区别

工作需要,求救! 请问哪位专业人事能告诉我在视频会议系统中,一般使用的H.264视频传输产品都是哪些厂商生产的,每个产品有什么异同? 急!!!谢谢!!!…

查看全部问答∨

evc4.0 开发ce5.0程序过程中,程序退出。

evc4.0 开发ce5.0程序过程中,程序退出。提示:exited with code 3(0x03);…

查看全部问答∨

求达人扫盲EVC下的多线程内存管理与VC下哪些不同,需要注意什么

求达人扫盲EVC下的多线程内存管理与VC下哪些不同,需要注意什么 最近由于项目要求,我要转想WINCE下开发,目前正在学习,有些不明白的地方 需要大家帮我讲解 如题的疑问 谢谢你们…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved