[发明专利]uCOS-III操作系统实现任务切换的方法及装置在审
申请号: | 201410785577.8 | 申请日: | 2014-12-17 |
公开(公告)号: | CN105786597A | 公开(公告)日: | 2016-07-20 |
发明(设计)人: | 周景波 | 申请(专利权)人: | 普天信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 梁少微;王丽琴 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ucos iii 操作系统 实现 任务 切换 方法 装置 | ||
技术领域
本发明涉及通信技术,特别涉及一种uCOS-III操作系统实现任务切换 的方法及装置。
背景技术
uCOS-III是一个可扩展的,可固化的,抢占式的嵌入式实时操作系 统,提供了嵌入式实时操作系统所期望的所有功能包括资源管理、同步、 内部任务通信等。uCOS-III根据ANSI-C标准编写,代码量在6K到20K 之间,适合移植到各种嵌入式芯片上使用。但目前uCOS-III都是应用在 ARM等各种CPU上,基本没有在双堆栈指针(SP)寄存器构架的数字信号 处理器(DSP)上应用的案例。
双堆栈指针(SP)寄存器构架的数字信号处理器(DSP)指的是在DSP 核上有2个SP寄存器,一个是非中断时的SP寄存器:任务堆栈指针(TSP, TaskSP)寄存器,又可以称作正常堆栈指针(NSP,NormalSP)寄存器, 程序在非中断场景下使用TSP寄存器;一个是中断时的SP寄存器:异常堆 栈指针(ESP,ExceptionSP)寄存器,程序在中断场景下使用ESP寄存器。
目前适用于双SP寄存器构架的DSP上的嵌入式实时操作系统不多,而 且都是商业化产品,源代码不公开,对使用中出现的问题很难定位,也无 法扩展一些操作系统层面的功能。uCOS-III是一个开源的嵌入式实时操作 系统,代码量小,非常适合应用在DSP上,因此,uCOS-III的任务切换方 法在双SP寄存器构架的DSP上如何实现,是目前有待解决的关键问题。
发明内容
有鉴于此,本发明提供了一种uCOS-III操作系统实现任务切换的方法 及装置,能够基于双SP寄存器构架的DSP,实现uCOS-III操作系统的任务 切换。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明公开了一种uCOS-III操作系统实现任务切换的方法,该方法应用于 包括任务堆栈指针TSP寄存器和异常堆栈指针ESP寄存器的双堆栈指针寄存器 的数字信号处理器DSP中,该方法包括:
在中断发生时,将当前任务的其他寄存器的值压栈保存到当前任务的堆栈 空间中;
将TSP寄存器的值取出保存到当前任务的进程信息表中;同时将要切换的 任务进程信息表中TSP寄存器的值恢复到TSP寄存器;
将要切换的任务的其他寄存器的值从要切换的任务的堆栈空间中弹出恢复 到各对应的其他寄存器;
将要切换的任务的程序指针PC寄存器和状态寄存器SR的值通过PUSH指 令压栈保存到ESP寄存器所指向的中断堆栈空间中;
执行RTE指令,将要切换的任务的PC和SR寄存器的值从ESP寄存器所 指向的中断堆栈空间中取出,以使程序从要切换的任务的当前位置开始执行。
优选地,通过PUSHC或PUSHN指令,将当前任务的其他寄存器的值压栈 保存到当前任务的堆栈空间中。
优选地,通过POPC或POPN指令,将要切换的任务的其他寄存器的值从 要切换的任务的堆栈空间中弹出恢复到各对应的其他寄存器。
其中,DSP执行TRAP指令,或者,DSP接收到其他硬件发送的中断信号, 以使DSP进入中断状态。
所述硬件包括增强型可编程中断控制器EPIC。
所述其他寄存器包括:程序指针PC寄存器、状态寄存器SR、地址寄存器、 数据寄存器和控制寄存器。
本发明还公开了一种uCOS-III操作系统实现任务切换的装置,该装置应用 于包括任务堆栈指针TSP寄存器和异常堆栈指针ESP寄存器的双堆栈指针寄存 器的数字信号处理器DSP中,该装置包括:
任务切换单元,用于在中断发生时,将当前任务的其他寄存器的值压栈保 存到当前任务的堆栈空间中;将TSP寄存器的值取出保存到当前任务的进程信 息表中;同时将要切换的任务进程信息表中TSP寄存器的值恢复到TSP寄存器; 将要切换的任务的其他寄存器的值从要切换的任务的堆栈空间中弹出恢复到各 对应的其他寄存器;
程序执行跳转单元,用于将要切换的任务的程序指针PC寄存器和状态寄 存器SR的值通过PUSH指令压栈保存到ESP寄存器所指向的中断堆栈空间中; 执行RTE指令,将要切换的任务的PC和SR寄存器的值从ESP寄存器所指向 的中断堆栈空间中取出,以使程序从要切换的任务的当前位置开始执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普天信息技术有限公司,未经普天信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410785577.8/2.html,转载请声明来源钻瓜专利网。