我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1256|回复: 0

嵌入式实时操作系统arts-OS的中断管理 -ARM

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-7-30 19:13:42 | 显示全部楼层 |阅读模式
ThreADId id;//表示注册此中断的线程id  unsigned long interrupTId;//惟一表示一个中断  Interrupt ;//中断的服务函数指针  unsigned long parameter;//中断服务程序使用的参数  struct UserInterrupt_t *next;//用来维护一个链表  } UserInterrupt,*UserInterruptPtr;  实现中断挂接的主要系统调用:  SyscallError tmAttachInterrupt(unsigned char irqno,Interrupt ,unsigned long parameter,unsigned long *intId);  SyscallError tmDetachInterrupt(unsigned long intId);  实际上,因为IA32平台的限制,用户态线程/进程不能直接操纵I/O。为了更好地实现核外驱动,中断管理模块还提供了一个关闭这种限制的函数:  SyscallError tmIOPL(unsigned char on);  4 核外中断的评价  ARTs-OS的核外硬中断可以满足I/O管理的要求,它具有下列优点:  (1)实现简单。ARTs-OS的核外硬中断实现起来非常简单,内核只需额外提供几个系统调用。而这些系统调用的实现方法也很简单,且结构清晰、所需的代码少,完全能够满足ARTs-OS作为嵌入式系统的需要。  (2)驱动程序编写简单。中断管理为核外驱动程序提供几个系统调用,如:挂接中断、删除中断等。驱动程序只需准备好相应的中断处理函数调用系统调用即可。驱动程序使用核外驱动和使用其他系统调用一样简单,无需特殊的操作。  (3)调试方便。通常,驱动程序在核内运行,其中断服务程序也在核内运行。一般的调试工具不能调试核内的程序,ARTs-OS则不同。因为核外中断的中断服务程序是核外的函数,这些函数使用的数据、函数都在核外,所以核外中断的中断服务程序和运行在核外的其他函数没有本质的区别,便于使用GDB等调试工具。  但是核外硬中断方法也有不足之处,例如运行效率较低。因为中断服务程序在核外运行,每当中断到达时,为了执行相应的中断服务程序必须到核外,执行完毕后又必须切换回核内。这样执行每个中断服务程序都必须来回进行上下文切换,从而导致运行速率下降。实际上,ARTs-OS针对这种来回切换的情况进行了一些优化,切换时只需保护和恢复必须的上下文,这样的速率延迟还是可以接受的。另外,核外中断方法还会对系统的安全性产生一定的影响,因为驱动程序能够使用核外的驱动方式,必然导致运行在核外的驱动程序拥有一些特权。但实际上这种安全性的保障应该是驱动程序编制者的任务,即驱动程序编制者应该自己保障其中断服务程序不破坏系统的安全性。  综合考虑系统的扩展性、简洁性和功能,ARTs-OS的实现应该是可以接受的。
回复

使用道具 举报

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

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表