加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

关于S3C44b0向量中断的疑问

时间:2013-11-23  来源:123485.com  作者:9stone

s3c44b0的IRQ中断包括了向量中断模式和非向量中断模式,这两种模式只能取其一:即允许了向量中断,就不允许非向量中断。

根据三星的资料,提供向量中断模式主要是减少中断的延迟时间,提高其响应速度。其发生的过程是:如果ARM7TDMI从中断控制器收到IRQ中断,ARM7TDMI将在0X18处执行一条指令。那条分支指令将会修改PC的值为中断服务程序的入口地址,接着会跳到相应的中断服务程序。在此过程中,中断控制器将会产生跳到相应的向量中断入口地址的机器码,其产生的规则为:=0xea000000+((<destination address> - <vector address> -0x08)>>2.

而这个机器码通常是由编译器自动产生,因此用户不需要根据上述规则计算。

   AREA    Init,CODE,READONLY 

    ENTRY

ResetEntry

    b ResetHandler                            ;for debug

    b HandlerUndef                           ;handlerUndef

    b HandlerSWI                      ;SWI interrupt handler

    b HandlerPabort                          ;handlerPAbort

    b HandlerDabort                          ;handlerDAbort

    b .                                             ;handlerReserved

    b HandlerIRQ

    b HandlerFIQ

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IMPORTANT NOTE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;If the H/W vectored interrutp mode is enabled, The above two instructions should be changed like below, to work-around with H/W bug of S3C44B0X interrupt controller.    

b   HandlerIRQ->subspc,lr,#4                                                             

b   HandlerIRQ  ->  subs pc,lr,#4

对b HandlerIRQ改为subspc,lr,#4的意义是什么?(这里注解是为了配合S3C44B0X中断控制器的H/W BUG工作!)在响应向量中断的时候,该条指令有没有被执行?如果被执行,此时LR的值发生了改变,在向量中断返回的时候还需不需要用该条指令返回,或者在进入的时候还要不要把LR的值减4入栈?

   而在主程序中:

for(i=_RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+0x20);i+=4)
    {
       *((volatile unsigned *)i)=0xEA000000+0x1FFE;
    }

该段程序的作用是装异常服务程序的入口地址吗,在开始的汇编程序中,我们已经做了这步操作,这个操作应该没什么意义吧,从C程序中装异常服务程序的入口地址应该根据0xea000000+((<destination address> - <vector address> -0x08)>>2进行,这点在ARM的用户手册中有详细的解释。

.综上所述:s3c44b0向量中断是由硬件自动完成的,还是因为它本身的硬件存在BUG,所以用软件要做一些必要的操作?不管了,先用非向量中断把程序跑起来再说吧,(后面有人在追着呢,用PHILPS的东东比这容易多了)等有时间把flash清掉,看是不是BIOS搞的鬼!


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门