[发明专利]一种具有优先级任务切换的单片机编程方法无效
申请号: | 201010571315.3 | 申请日: | 2010-11-25 |
公开(公告)号: | CN102023895A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 雷刚 | 申请(专利权)人: | 广东雅达电子股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 罗晓林;李志强 |
地址: | 517000 广东省河源市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 具有 优先级 任务 切换 单片机 编程 方法 | ||
技术领域
本发明涉及一种单片机的编程方法,尤其涉及一种具有优先级任务切换的单片机编程方法。
背景技术
目前单片机的编程方式主要是单任务过程操作和实时多任务操作系统。单任务过程操作系统中所有任务都是流水线方式操作,所有任务都是同一个优先级,对紧急任务将会产生延时,由于任务之间没有切换,整个系统只需要一个堆栈;实时多任务操作系统中所有任务都是最高优先级方式操作,所有任务都有不同的优先级,任务在执行过程中,如果有更高优先级任务发生,更高优先级任务将抢占执行,由于任务之间有切换,每个任务都有一个独立的堆栈,导致系统复杂且占用资源多。
发明内容
本发明要解决的技术问题是提供一种提高高优先级任务的响应时间,系统简单,占用资源少的具有优先级任务切换的单片机编程方法。
为了解决上述技术问题,本发明采取以下技术方案:
一种具有优先级任务切换的单片机编程方法,包括以下步骤:
(1)将系统中的每一个任务都设置成具有对应唯一的优先级,并且系统中的所有任务共同使作用一个堆栈;
(2)将系统中的所有任务都存放在任务优先级队列中;
(3)查询任务优先级队列,选择任务优先级队列中的最高优先级任务进行执行;
(4)当前任务执行完成后,重新查询任务优先级队列中的任务,并对最高优先级任务进行执行。
(5)在任务执行过程中,更高优先级任务不可中断现有任务执行。
所述步骤(2)中每个任务的优先级保持固定。
所述步骤(3)执行任务的过程中,处于优先级队列中的任务均保持等待状态。
本发明通过将所有任务都设置成共用一个堆栈,并且在系统运行过程中处于任务队列中的任务均保持原先的任务优先级,使系统简单化,而且在执行任务的过程中,其他更高优先级的任务保持等待状态不能抢占执行,占用资源少。
具体实施方式
为了便于本领域技术人员的理解,下面结合具体实施例对本发明作进一步的描述。
一种具有优先级任务切换的单片机编程方法,包括以下步骤:
(1)将系统中的每一个任务都设置成具有对应唯一的优先级,并且系统中的所有任务共同使作用一个堆栈;
(2)将系统中的所有任务都存放在任务优先级队列中;
(3)查询任务优先级队列,选择任务优先级队列中的最高优先级任务进行执行;
(4)当前任务执行完成后,重新查询任务优先级队列中的任务,并对最高优先级任务进行执行。
其中,步骤(2)中每个任务的优先级保持固定不变,不可修改各任务原来的优先级,步骤(3)执行任务的过程中,处于优先级队列中的任务均保持等待状态,均不能进行抢占执行。所有任务均通过事件或时钟源唤醒。
具体执行时,任务优先级列表如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东雅达电子股份有限公司,未经广东雅达电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010571315.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:长短金手指的镀金工艺方法
- 下一篇:局部镀金板的制作工艺