设文无忧为首页 | 把文无忧加入收藏夹 | 站务联系     论文格式网:论文格文下载,论文格式大全,论文格式范例,如何写论文,怎么把握论文的格式,分类最全的论文范文格式网。
你所在的位置:首页 > 论文大全 > 工科论文 > 机械制造
机械制造:uC/OS-Ⅱ中任务切换的仪器仪表实现实例
uC/OS-Ⅱ中任务切换的仪器仪表实现实例
| 文章出自:论文格式 | 编辑:论文格式范文 | 点击: | 2013-05-03 21:30:04 |

  假设某仪器要实现A/D采样、输入控制、显示等功能.uC/OS-Ⅱ操作系统将对这三个任务进行管理,协调各自工作.任务描述:
  统计任务:每做完例行统计后执行一次显示输出;初始任务:每隔10节拍进行一次A/D采样;用户任务:每秒判断一次是否有输入控制信号.
  实验中为了测量与观察方便,采用对89C51的P1口每次取反的操作来模拟仪器执行的任务,由于关心的是操作系统的性能,而非任务本身,因此简化是可行的.
  设置时钟节拍:50Hz三个任务(包含系统空闲任务):
  任务名优先级操作空闲任务63空操作统计任务62每秒做一次统计并对P1.2取反初始任务4每秒对P1.0取反一次用户任务5每10个节拍对P1.1取反一次设计中须注意以下两点:
  (1)任务的现场保护:除PUSH到堆栈的CPU寄存器外,还应包括任务运行过程中保存到堆栈的信息,所以每次保存的信息量是变化的.
  (2)任务堆栈的大小应根据实际情况充分估计,避免过大或者不足.
  在这个例子中定义了TASK   STK   SIZE(任务堆栈)为64个字节,故在内部RAM中预留出64个字节作为操作系统的系统堆栈,用全局变量定义如下:
  INT8U  idata  sp[64]    at     0x30;该语句表示系统堆栈从30H开始.
  (1)开始多任务调度每个任务堆栈初始化情况:
  堆栈指针SP=48-1+8+5+2+2+sizeof(void*),即系统堆栈放入以上信息后SP指针所指的位置.
  下面开始多任务调度:
  系统堆栈指针SP初始值30H,将初始任务的任务堆栈内容(在xdata段)Load到系统堆栈内,完成后SP应指向系统堆栈栈顶,然后运用pop指令切换到初始任务.
  (2)在任务运行中进行任务切换切换前系统堆栈为:
  将系统堆栈中从当前SP开始一直到30H的堆栈信息保存到当前任务堆栈中,然后把新任务的任务堆栈的内容Load到系统堆栈中来.
  然后用POP指令将任务切换到新任务中去.
  (3)在中断返回时切换任务须保存的信息在中断时应保存,切换任务时,只要将SP减去由于调用OSIntExit()和OSIntCtxSw()两个函数而使SP指针增加的4个字节,其他与任务级切换一样.

友情说明:评职称要发论文,写论文太麻烦了,发表论文更麻烦,不过,还是要先了解下职称相关的讯息吧。看看下边的信息吧。

友荐云推荐
相关论文列表
文无忧论文格式网是一个专业提供各类论文的标准格式,标准论文格式范文,各类论文范文模板,免费论文下载,各类应用文文书、合同范文等的论文网站。
Copyright©2012-2046 文无忧. All Rights Reserved .心无界 文无忧—文无忧 让你行文无忧 版权所有 文无忧lun.wen5u.com-论文无忧
网站合法性备案号:蜀ICP备14013885号-1