欢迎来到天天文库
浏览记录
ID:34623664
大小:349.16 KB
页数:15页
时间:2019-03-08
《嵌入式实时操作系统教程7》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、开源实时嵌入式操作系统原理和实践程序员篇(7)品质是价值和TM尊严的体现1课程目的¢介绍μTenux的基本原理¢掌握μTenux的主要系统调用¢学会基本的实时多任务设计方法悠龙软件版权所有©22面向对象¢有志于从事嵌入式软件设计人员¢有C语言基础¢掌握KEILMDK或IAREWARM或μT/Studio开发知识¢有一定操作系统原理基础知识悠龙软件版权所有©33课程设计思路¢理论和实践结合¢练习紧密结合μTenux套件¢讲解和练习囊括主要的系统调用悠龙软件版权所有©44议程¢1.Tenux的概要¢2.μT/Kerne
2、l的任务管理¢3.μT/Kernel的任务间同步和通信¢4.μT/Kernel的任务间扩展同步和通信¢5.μT/Kernel的内存管理¢6.μT/Kernel的时间管理¢7.μT/Kernel的中断管理¢8.μT/Kernel的系统状态管理悠龙软件版权所有©55μT/OS的功能¢μT/Kernel:μTenux内核¢任务管理¢任务同步和通信功能¢任务扩展同步和通信功能¢内存池管理功能¢时间管理功能¢中断管理功能¢系统状态管理功能¢调试支持功能悠龙软件版权所有©66中断的术语¢µT/Kernel规范中的中断¢包括设备
3、引发的外部中断¢及CPU异常产生的中断。¢每个中断号¢可定义一段中断处理程序。¢中断处理程序¢可设计成直接启动,基本上无须操作系统的干预;¢也可以通过一个高级语言的支持函数来启动。¢中断管理函数¢执行外部中断以及CPU异常处理等操作。悠龙软件版权所有©77中断处理的图解当CPU响应某一中断时,若有优先级高的中断源发出中断请求,则CPU能中断正在进行的中断服务程序,并保留这个程序的断点,响应高级中断,高级中断处理结束以后,再继续执行低级中断服务程序,最后返回主程序继续执行。悠龙软件版权所有©88中断管理中断处理程序是
4、作为任务无关部分来运行的。¢定义中断处理程序:ERercd=tk_def_int(UINTdintno,T_DINT*pk_dint)¢定义一个中断定义编号为dtintno的中断处理程序,并允许中断处理程序运行。此处所说的“中断”既包括设备的外部中断,又包括CPU异常。¢参数:dintno中断定义编号参数:pk_dint中断处理程序定义信息的数据包pk_dint的包含的详细内容:ATRintatr中断处理程序的属性FPinthdr中断处理程序的地址(可在此添加其他实现依赖相关的参数)¢当设置pk_dint=NULL
5、时,先前定义的中断处理程序将被取消。当中断的处理程序被取消时,具体的处理由实现定义。¢当中断发生时,CPU硬件中的中断处理器将直接启动该系统调用定义的中断处理程序。悠龙软件版权所有©99中断管理¢从中断处理程序中返回:voidtk_ret_int()¢退出中断处理程序。¢参数:None¢尽管这个系统调用是以C语言接口的形式定义的,但是,如果使用了高级语言支持程序,它将不用这种格式来调用。¢中断处理程序可通过执行tk_ret_int系统调用(函数)或CPU中断返回指令(或者有相同意义的指令)来终止。¢当处理程序正在运
6、行时,由中断处理程序所调用的系统调用并不会产生分派;相反,分派将会被延迟到调用tk_ret_int来终止中断处理程序的处理以后(分派延迟)因此tk_ret_int会导致对所有在中断处理程序运行期间所发布的分派请求进行处理。悠龙软件版权所有©1010CPU中断控制CPU中断控制函数用作CPU外部中断标志控制。¢禁止所有外部中断:DI(UINTintsts)intsts是CPU中断状态(具体情况取决于实现依赖)不是一个指针。¢允许所有外部中断:EI(UINTintsts)intsts是CPU中断状态(具体情况取决于实现
7、依赖)不是一个指针。¢获得存放在intsts中外部中断禁止的状态BOOLisDI(UINTintsts)返回值:TRUE中断被禁止FALSE允许中断外部中断禁止状态是指μT/Kernel决定禁止中断时的状态。*注:intsts必须为DI()存放到它那儿的值或0。如果它被指定为其他值,操作无法保证。悠龙软件版权所有©1111CPU中断控制应用举例:voidfoo(){UINTintsts;DI(intsts);if(isDI(intsts)){/*Interruptswerealreadydisabledatthet
8、imethisfunctionwascalled.*/}else{/*Interruptswereenabledatthetimethisfunctionwascalled.*/}EI(intsts);}悠龙软件版权所有©1212思考题¢中断处理函数的编写有什么要求?悠龙软件版权所有©1313参考资料¢网站¢Tenux开源社区:www.tenux.org¢T
此文档下载收益归作者所有