小谈DJYOS的中断线配置方法

ponybabi 发表于 2015-5-18 11:55:39 | 显示全部楼层 |阅读模式 [复制链接]
0 1432
中断是嵌入式系统中一个魅力十足亮点, 关于DJYOS对中断的内部巧妙的处理机制,各位看官可阅读《都江堰操作系统与嵌入式系统设计》中第六章节“中断”相关内容以及DJYOS源码中int.c/int.h中相关内容。本文探讨两点:DJYOS中中断处理流程以及如何将自己板子上的中断快速地挂接到DJYOS的中断系统。
DJYOS中断控制块的结构示意图如图1所示:
QQ图片20150518115325.png

                              
1 DJYOS中断控制块结构示意图
在图1所示中中断线可以理解为中断向量表中的某个中断向量,一个中断向量可对应一个或者多个中断源,也就说某个中断线有可能被多个中断源触发而接通,在中断ISR内部可判断具体是哪个中断源触发。DJYOS将中断类型分为实时中断和异步信号。实时中断对应紧急程度非常高的中断信号,异步信号对应紧急程度不是很高的中断信号,实时中断可打断异步信号,实时中断中又可实现嵌套,实时中断ISR中不可使用系统的调度功能。关于实时中断和异步信号的详细区别参考《都江堰操作系统与嵌入式系统设计》中第六章节“中断”相关内容。每个中断可自由配置为实时中断或者异步信号。当某个中断源产生中断请求即可使能某个特定中断线使能开关,如果是异步信号,还需使能异步信号总开关,最后接通中断总开关即可使CPU处理中断请求。
DJYOS中中断执行流程如下:中断源产生中断请求IRQ-->跳转至中断向量表中查询相应ISR及中断号-->保存现场-->调用DJYOS的中断入口函数int_engine_all-->判断中断类别(real或sync)-->调用用户注册的中断服务函数——返回至ISR并恢复现场——中断返回。
OK,了解了DJYOS的中断处理流程,如何将中断源挂接到图1所示DJYOS的中断控制块上呢?归纳以下,需要以下3个步骤,
Step1在cpu_peri_int_line.h中定义中断号,每款CPU都定义自己的中断源及中断号,发生中断号后,硬件会根据这个中断号跳转到中断向量表中相应的位置执行中断ISR,这里需要确保定义的中断号与该款CPU datasheet中定义中断号保持一致。
Step2在critical.c中配置当前工程使用到的中断号,具体配置方法为在全局数组tg_IntUsed添加相应的中断号,如MCB1700工程中配置的
  
const ufast_t tg_IntUsed[] =
  
{
  
    CN_INT_LINE_UART0,
  
    CN_INT_LINE_UART1,
  
    CN_INT_LINE_RTC,
  
    CN_INT_LINE_WDT,
  
    CN_INT_LINE_ENET,
  
    CN_INT_LINE_TIMER0,
  
    CN_INT_LINE_TIMER1,
  
    CN_INT_LINE_TIMER2,
  
    CN_INT_LINE_TIMER3,
  
    CN_INT_LINE_SSP0,
  
    CN_INT_LINE_SSP1
  
};
  
Step3:对于使用具体中断时,需要依次调用以下5个函数:
  
1.bool_t Int_SetClearType(ufast_t  ufl_line,ufast_t clear_type)  //设置某中断线的应答方式
  
2.void Int_IsrConnect(ufast_t  ufl_line, u32 (*isr)(ufast_t))    //关联中断线与ISR
  
3.bool_t Int_SettoAsynSignal(ufast_t  ufl_line)/ bool_t Int_SettoReal(ufast_t ufl_line)  //设置中断为异步信号or实时中断
  
4.bool_t Int_ClearLine(ufast_t  ufl_line)     //清除相应中断线的中断挂起状态
  
5.bool_t Int_RestoreAsynLine(ufast_t  ufl_line)/ bool_t Int_RestoreRealLine(ufast_t ufl_line)  //恢复保存的异步信号或实时中断中断线状态(与第3个函数保持一致)
  
完成了以上3个步骤,你就可将自己的中断ISR函数在DJYOS中运转起来了。当然这里还有一个前提就是你手头上的板子关于DJYOS的中断移植部分(即bsp目录下int_hard.c/int_hard.h)已经完成,关于这部分下次再唠叨唠叨。
上文如有不当之处,敬请指正,欢迎拍砖~~~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入我们,

发现科技可以让生活更美好...

立即注册

如果您已拥有本站账户,则可

精华导读

推荐阅读

资讯排行

站点统计|手机版|小黑屋| 都江堰操作系统交流论坛 ( 粤ICP备11028047号 )

Templated By DJYOS 论坛  粤ICP备11028047号  

返回顶部 返回列表