您的位置 首页 FPGA

ARM-Linux s3c2440 之中止剖析(一)

硬件篇:S3C2440是arm920T架构,先温习一下s3c2440中的中断控制器原理和相关硬件构架。中断控制器(InterruptControler):S3c2440A的中断…

硬件篇:

S3C2440 是arm920T架构,先温习一下s3c2440中的中止控制器原理和相关硬件构架。

中止控制器(InterruptControler):

S3c2440A的中止控制器有60个中止源,如DMA中止,UART中止,IIC中止等,60个中止源在寄存器顶用相应的位来一共。当有多个中止要求到来时,经过裁定进程后,中止控制器向CPU恳求FIQ或许IRQ中止。裁定进程依据硬件中的优先级模块来决议,其成果最终写进中止未决(intterrupt pending)寄存器中,经过中止未决寄存器的值能够清楚哪个中止产生了。

S3c2440中止控制器流程图:

挂起

中止形式(InterruptMode):

ARM920T(CPU)中有两类中止形式: FIQ中止和 IRQ中止,前者俗称快中止,后者称为一般中止。 一切中止源均能够指定采纳何种中止形式。程序状况寄存器(PSR)有F和I标志位,当F 位 置 1 时,CPU不接受FIQ中止,相同,I方位1 时CPU不接受 IRQ中止。所以中止控制器需清零F位和I位,且将中止屏蔽寄存器(INTMSK)清零后,方可接纳中止。

中止未决寄存器(InterruptPending Register)

S3C2440A有两个中止未决寄存器:中止源未决寄存器(SRCPND) 和中止未决寄存器(INTPND)。这两个寄存器指明晰是否有中止未决(产生)。当中止源(一个或许多个一起产生)要求进行中止服务程序时,SRCPND寄存器中相应的方位 1, 一起主动地,在INTPND寄存器中只需 1 位被置1(由于从上图中能够看出INTPND是经过裁定进程之后的,所以依据优先级决议最高优先级的中止被置1)。 假如INTMSK中相应的中止置 1,那么,SRCPND中相应位将被置1,而INTPND不会有改动。当INTPND置位时,不管何时,只需I 或标志位为0,那么即可碑文中止服务程序。SRCPND 和 INTPND 寄存器可读可写,所以中止服务程序碑文完后应当先写相应位的 1到SRCPND寄存器,然后写相应位的 1 到INTPND寄存器完结清零,以便CPU能呼应下一次中止的产生。

中止屏蔽寄存器(InterruptMask Register)

中止屏蔽寄存器INTMSK用来指示中止是否并制止(屏蔽)。假如相应方位1 标明该中止源被屏蔽,置0 则中止能够正常服务。假如某一中止MASK 为 1且中止产生,SRCPND中相应位会置1.

中止优先级模块(InterruptPrioprity Generating Block)

该模块能够服务32个中止要求,共由两级裁定单元组成。榜首级有6个arbiter0 ~ 5,第二级为arbiter 6, 每个arbiter里的中止的优先级采纳轮换机制改动优先级。

每个裁定arbiter处理6个中止要求,规则由优先寄存器(PRIORTY)中相应的ARB_MODE (1位)和ARB_SEL(2位)来决议。裁定arbiter中REQ0总是最高优先级的,而REQ5总是最低的。所以只能在REQ1~REQ4中设定优先级:

ARB_SEL位为00b时,优先级:REQ0,REQ1,REQ2,REQ3,REQ4,REQ5

ARB_SEL位为01b时,优先级:REQ0,REQ2,REQ3,REQ4,REQ1,REQ5

ARB_SEL位为10b时,优先级:REQ0,REQ3,REQ4,REQ1,REQ2,REQ5

ARB_SEL位为11b时,优先级:REQ0,REQ4,REQ1,REQ2,REQ3,REQ3

所谓优先级选用轮换机制,举例说是,例如REQ1产生时,这时ARB_SEL主动变成01b,所以,之后的优先级将为:REQ0,REQ2,REQ3,REQ3,REQ1,REQ5,可见,当某一中止产生后(REQ1~REQ4),它的优先级将放到最低(在REQ5前),不断轮回,同理REQ2产生时,ARB_SEL主动变成10b,之后的优先级将为:REQ0,REQ3,REQ4,REQ1,REQ2,REQ5。但REQ0,或许REQ5产生时,ARB_SEL将和谐不变。

以上是在相应地ARB_MODE为1的时分。当ARB_MODE被置0的时分,将依照默许的形式也便是上图中所示。

关于外部中止:

s3c2440有24个GPIO输入触外部中止,可分为低电平触发,高电平触发,下降沿触发,上升沿触发,或许下降,上升时触发形式。

经过以上,s3c2440的中止控制器原理,硬件构架剖析完了。后边再来剖析,ARM-Linux s3c2440之中止剖析的软件完成原理。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/264928.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部