搜索
bottom↓
回复: 0

关于avr32中断问题求助

[复制链接]

出0入0汤圆

发表于 2013-6-5 15:15:26 | 显示全部楼层 |阅读模式
avr32的中断管理由硬件和软件协同完成。主要由文件intc.c,intc.h和vectoers.s三个文件完成,我的理解是:
其中intc文件主要是完成了中断源的注册,也就是说,中断组和中断号以及中断程序的入口地址获得是在该文件完成的。
vectoers文件主要定义evba以及一些中断操作。例如如下代码段:
Int0:
        SSRF    VECTORS_SR_GM_OFFSET                                    /* Set global interrupt mask (disable interrupts)           */
        NOP
        NOP

        MFSR    R12, VECTORS_SR_OFFSET
        BFEXTU  R12, R12, VECTORS_SR_MX_OFFSET, 3
        CP.W    R12, VECTORS_SR_MX_EXCEPTION_MODE                       /* check execution mode                                     */
        BRHS    __exception_stack                                       /* if (R12 == {Exception, NMI}) then change interrupt stack */
                                                                         /* ... to exception stack                                   */

        MOV     R12, VECTORS_INT0                                       /* Pass int_level parameter to BSP_INTC_IntGetHandler       */
        RCALL   BSP_INTC_IntGetHandler
        CP.W    R12, 0                                                  /* Test returned interrupt handler pointer                  */
        BRNE    OSIntISRHandler                                         /* if (R12 != 0) then, jump to the OSIntISRHandler          */
        RETE                                                            /* if (R12 == 0) it was a spurious interrupt then, return   */
                                                                        /* ... from event handler                                   */
当中断来到的时候,根据注册的相应信息,配合vectoers里面的中断向量,转跳至用户的中断程序入口。
以上这些可以算作是软件完成部分吧。。
问题来了:
对于avr32uc3a的架构,所需要的中断都已近注册好了,当中断来的时候,是硬件完成pc(程序指针)的转跳吗?另外,硬件会不会自动将当前sr,pc,lr以及通用的r0-r12压栈??
avr32到底是如何完成的第一次转跳的??
在此先谢谢各位了

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 15:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表