欢迎来到天天文库
浏览记录
ID:24416885
大小:50.50 KB
页数:3页
时间:2018-11-14
《单片机系统中的多任务多线程机制的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机系统中的多任务多线程机制的实现
2、第1...关键词:单片机任务线程并行处理引言首先要指出的是一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原型的各种高端嵌入式处理器。作为一个完整的操作系统,RTOS有一个可靠性很高的实时内核,将CPU
3、时间、中断、I/O、定时器等资源都包括起来,留给用户一个标准的应用程序接口(API);根据各个任务的优先级,合理地在不同任务之间分配CPU的时间,保证程序执行的实时性、可靠性。内核一般都能提供任务调度和中断服务等功能,部分高档商业化产品,如PEnv[env1][]中,每个变量由三项组成,env1是二维下标参数*/voidgetadd(unsignedcharenv1){unsignedchartemp;temp=SP;JMPEnv[env1][0]=(*((unsignedcharidata*)SP));temp--;JMPEnv[env1
4、][1]=(*((unsignedcharidata*)temp));JMPEnv[env1][2]=SP-2;}/*置中断返回的任意跳转地址*/voidputadd(unsignedcharenv1)reentrant{unsignedchartemp[15];chari;/*下面保存进入中断程序时的压栈值*/for(i=0,i<15;i++){temp[i]=(*((unsignedcharidata*)SP));SP--;}/*放置新地址*/SP=JMPEnv[env1][2];SP++;(*((unsignedcharidat
5、a*)SP)=JMPEnv[env1][1];SP++;(*((unsignedcharidata*)SP))=JMPEnv[env1][0];/*恢复中断开始时的那些压栈值*/for(i=14;i>=0;i--){SP++;(*((unsignedcharidata*)SP))=temp[i];}}结语限于篇幅,不可能详述任务、线程和标识的细节,仅提出一种单片机等嵌入式控制系统对多任务进行实时处理的一种思想;借鉴于主流操作系统中的多任务和多线程机制。实践证明,这种想法是行之有效的,并且取得了很好的效果。虽然我们研制的系统是对多个相同
6、的任务进行并行处理,但该种设计方法应该可以推广到多种不同性质的实时任务的并行处理当中去。
此文档下载收益归作者所有