您的位置: 嵌入式在线 > 技术中心 > ARM > 44B0 中断分析(二)

44B0 中断分析(二)

2006-12-26      嵌入式在线      收藏 | 打印
   1.文件描述和准备         

    本文将试图讲述44B0X处理器处理中断的具体过程,如果读者的中断执行不正常,请确保 FLASH 中烧录了立宇泰 ARMSys's BootLoader for Linux V1.2,同时ADS开发环境中的RO Base为0x0c0008000,RW Base为0xc5f0000。 本文采用的44BINIT.s的自叙为:

     

     本程序以系统的Timer0中断为例,中断初始化程序如下:

    

    2.调试程序装载后 

     AXD装载AXF调试文件后,暂时不运行,PC指针指示在bResetHandler处,用右键菜单中的Disassembly,可以看出初始地址实际上指示在0x0c008000,即ADS中设置的RO Base,表示程序即将从0x0c008000开始运行。      


    3.非矢量模式下的执行过程 

     经过以上准备工作,单击【运行】两次后 Timer0 中断发生,通过事先设置好的断点捕捉中断,所有图中的红点即为运行前设置的断点: 

     ⑴PC->0x0c008000 转到 PC->0x00000018 处,即转到 Flash 中执行Bootloader的代码。

     ⑵ PC->0x00000018 转到 PC->0x0c000018处,即又跳回到SDRAM中。 

      ⑶ PC->0x0c000080处执行的是IsrIRQ中断识别程序。  

      ⑷ 识别程序段执行完后,转到用户的中断服务程序Timer_ISR( )入口。    

     4.矢量模式下的执行过程 

      OPTION.s中有_IRQ_BASEADDRESS   EQU   0xc000000; 

      在44BINIT中有如下定义:

       ^ (_IRQ_BASEADDRESS+0x100) ……
       HandleTIMER0   # 4
       …… 

      猜测地址HandleTIMER0=_IRQ_BASEADDRESS+0x134=0x0c000134,下面来看看猜想对不对。 改rINTCON=0x1进行矢量中断过程的观察,重新装载程序,再单击【运行】两次后,Time0中断产生: 

      ⑴ Timer0 中断产生,跳转到中断矢量地址 0x00000060,而不是跳转到 IRQ中断入口0x00000018,这就是非矢量中断和矢量中断的本质区别。  

     ⑵ 再跳转到0x00000334,注意还是在Flash中,因此还得归功于Bootloader 黑体所选程序是类似宏调用HandlerTIMER0 HANDLER HandleTIMER0 产生的代码,由于这是在 Flash 中,所以不可能是调试时下载进去的。(不相信可以把44BINIT.s中的宏HandlerTIMER0  HANDLER HandleTIMER0注释掉试试。)   执行完0x00000348处的指令后,执行步骤⑶。  

     ⑶ 好,Bootloader完成使命后,跳转到用户的Timer_ISR( ),入口地址为0x0c0087d4 ,在44B.h中有定义:#define pISR_TIMER0  (*(unsigned *)(_IRQ_BASEADDRESS+0x134))//0x54),可看出pISR_TIMER0和44B0INIT.h中定义的HandleTIMER0指向地址是一样的,都指向0x0c000134。 下图即pISR_TIMER0=(int)Timer_ISR;已经生效的明证。    

   【心得】不管是何种中断模式,如果中断总是没有执行,则可以在FLASH中的中断分支表的相应项目上设置断点,再然后灵活运用STEPIN、STEPOUT、STEP等控制程序流程,以观察问题的根源。 在汇编级代码中设置断点,需要用到右键菜单中的【Set PC】,设置完后,不要忘记改回初始的PC值。
本文来源:21control    作者:
热点资讯(一周点击率)
热评博文
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张

 

快乐大本营

    无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。

    想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷

工程师之星
朱礼昆
电子信息工程专业,擅长硬件编程
  • 胡菲菲  技术专长:嵌入式系统linux
  • 柳如峰  技术专长:模电,电源
热门招聘
论坛热贴