本文SoC芯片中集成了向量中断控制器VIC,使用VIC的IRQ中断处理过程是:首先在初始化程序中使能VIC相关中断,然后正常运行用户程序,当有IRQ中断产生时,VIC将会根据中断源设置VICVectAddr寄存器为相应中断服务程序的地址,切换处理器工作模式为IRQ模式,并跳转到IRQ中断入口0x00000018处;异常向量表中0x00000018处使用一条“LDR PC,[PC,#-0xFF0]”指令,这条指令将会读取VICVectAddr寄存器的值然后放入PC程序指针,即跳转到相应中断服务程序;中断服务中执行相应的中断处理,清除中断标志;中断服务完成后,即可返回原中断点继续执行。
本文定义了12个中断源,其中内部中断源8个。所有中断处理程序的总入口为UCOS_IRQHandler,之后在调用的C_IRQHandler函数中通过读取VICIRQStatus寄存器判断并跳转到相应的中断处理程序执行。
3.4 μC/OS-II多任务调度实现SoC验证
µC/OS-Ⅱ可以管理多达64个任务,系统保留了四个最高优先级和四个最低优先级的任务供自己使用,所以用户可以使用的只有56个任务。任务的优先级越高,反映优先级的值则越低。多任务的创建与管理主要通过以下函数实现:
< >建立任务,OSTaskCreate()删除任务,OSTaskDel()请求删除任务,OSTaskDelReq()挂起任务,OSTaskSuspend()恢复任务,OSTaskResume()改变任务的优先级,OSTaskChangePrio()HOPES T.Hardware/software co- verification,an IP vendors viewpoint[C].Proc Int Conf on Computer Design: VLSI in Computers and Processors. Austin, TX,USA,1998:242-246.Tumer R.System-level verification-a comparison of approaches rapid system prototyping.1999[J],IEEE International Workshop on 16-18 June 1999,154-159王海滨. 基于SOPC的1553B总线接口逻辑设计[J] 微计算机信息,2009,4-2:105-106.Jean J.Labrosse.嵌入式实时操作系统μC/OS-II(第2版) [M], 北京:北京航空航天大学出版社.2003.5田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社. 2005,6