uc os-ii的任务切换机理以及中断调度优化

uc os-ii的任务切换机理以及中断调度优化

ID:35060950

大小:27.00 KB

页数:8页

时间:2019-03-17

uc os-ii的任务切换机理以及中断调度优化_第1页
uc os-ii的任务切换机理以及中断调度优化_第2页
uc os-ii的任务切换机理以及中断调度优化_第3页
uc os-ii的任务切换机理以及中断调度优化_第4页
uc os-ii的任务切换机理以及中断调度优化_第5页
资源描述:

《uc os-ii的任务切换机理以及中断调度优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、--------------------------------------------精品文档Word可编辑值得收藏------------------------------------------------uCOS-II的任务切换机理以及中断调度优化/h1在嵌入式操作系统领域,由JeanJ.Labrosse开发的μC/OS,由于开放源代码和强大而稳定的功能,曾经一度在嵌入式系统领域引起强烈反响。而其本人也早已成为了嵌入式系统会议(美国)的顾问委员会的成员。不管是对于初学者,还是有经验的工程师,μC/OS开放源代码的方式使其不但知其然,还知其所以然。通过对

2、于系统内部结构的深入了解,能更加方便地进行开发和调试;并且在这种条件下,完全可以按照设计要求进行合理的裁减、扩充、配置和移植。通常,购买RTOS往往需要一大笔资金,使得一般的学习者望而却步;而μC/OS对于学校研究完全免费,只有在应用于盈利项目时才需要支付少量的版权费,特别适合一般使用者的学习、研究和开发。自1992第1版问世以来,已有成千上万的开发者把它成功地应用于各种系统,安全性和稳定性已经得到认证,现已经通过美国FAA认证。1μC/OS-II的几大组成部分μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。核心部分

3、(OSCore.c)8----------------------------------------------------精品文档值得收藏-------------------------------------------------------------------------------------------------------精品文档Word可编辑值得收藏------------------------------------------------是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事

4、件处理等多部分。能够维持系统基本工作的部分都在这里。任务处理部分(OSTask.c)任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。时钟部分(OSTime.c)μC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。与CPU的接口部分是指μC/OS-II针对所使用的CPU的移植部分。由于μC/OS

5、-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。2对于MSP430的中断处理2.18----------------------------------------------------精品文档值得收藏--------------------------------------------------------------------

6、-----------------------------------精品文档Word可编辑值得收藏------------------------------------------------函数调用和中断调用的操作MSP430最常使用的C编译器应该就是IAREmbedd-edWorkBench。对于这一编译器来说,通过分析和研究,发现它有以下规律。(1)函数调用如果是函数级调用,编译器会在函数调用时先把当前函数PC压栈,然后调用函数,PC值改变。如果被调用的函数带有参数,那么,编译器按照以下的规则进行。最左边的两个参数如果不是struct(结构体)或者un

7、ion(联合体),将被赋值到寄存器,否则将被压栈。函数剩下的参数都将被压栈。根据最左边的那两个参数的类型,分别赋值给R12(对于32位类型赋值给R12:R13)和R14(对于32位类型赋值给R14:R15)。(2)中断调用如果是在中断中调用中断服务子程序的话,编译器将把当前执行语句的PC压栈,同时再把SR压栈。接着,根据中断服务子程序的复杂程度,选择把R12~R15中的寄存器压栈。然后,执行中断服务子程序。中断处理结束后再把R8----------------------------------------------------精品文档值得收藏--------

8、------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。