ImageVerifierCode 换一换
格式:PDF , 页数:15 ,大小:335.98KB ,
资源ID:16119796      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16119796.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(uCOS操作系统个基本函数汇总资料下载.pdf)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

uCOS操作系统个基本函数汇总资料下载.pdf

1、Void OSSchedLock(void);所属文件 OS_CORE.C 调用者 任务或中断 开关量 N/A OSSchedLock()函数停止任务调度,只有使用配对的函数 OSSchedUnlock()才能重新开始内核的任务调度。调用 OSSchedLock()函数的任务独占 CPU,不管有没有其他高优先级的就绪任务。在这种情况下,中断仍然可以被接受和执行(中断必须允许)。OSSchedLock()函数和 OSSchedUnlock()函数必须配对使用。C/OS-可以支持多达 254 层的 OSSchedLock()函数嵌套,必须调用同样次数的 OSSchedUnlock()函数才能恢复任

2、务调度。注意/警告:任务调用了调用了 OSSchedLock()函数后,决不能再调用()函数后,决不能再调用 可能导致当前任务挂起的系统函数:可能导致当前任务挂起的系统函数:OSTimeDly(),(),OSTimeDlyHMSM(),(),OSSemPend(),OSMboxPend(),OSQPend()。因为任务调度已经被禁止,其他任务不能运行,这会导致系统死锁。Void OSSchedUnlock(void);所属文件 OS_CORE.C 调用者 任务或中断 开关量 N/A 在 调用了 OSSchedLock()函数后,OSSchedUnlock()函数恢复任务调度。任务调用了 OSS

3、chedLock()函数后,决不能再调用可能导致当前任务挂起的系统函 数:OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。因为任务调度已 经被禁止,其他任务不能运行,这会导致系统死锁。void OSStart(void);所属文件 OS_CORE.C 调用者 初始代码 开关量 无 OSStart()启动 C/OS-II 的多任务环境。在调用 OSStart()之前必须先调用 OSInit()。在用户程序中 OSStart()只能被调用一次。第二次调用 OSStart()将不进行任何操作。void OSStatInit

4、(void);所属文件 OS_CORE.C 调用者 初始代码 开关量 OS_TASK_STAT_EN&OS_TASK_CREATE_EXT_EN OSStatInit()获取当系统中没有其 他任务运行时,32 位计数器所能达到的最大值。OSStatInit()的调用时机是当多任务环境已经启动,且系统中只有一个任务在运行。也就是说,该函 数只能在第一个被建立并运行的任务中调用。INT8U OSTaskChangePrio(INT8U oldprio,INT8U newprio);所属文件 OS_TASK.C 调用者 任务 开关量 OS_TASK_CHANGE_PRIO_EN OSTaskChan

5、gePrio()改变一 个任务的优先级。参数 oldprio 是任务原先的优先级。newprio 是任务的新优先级。返回值 OSTaskChangePrio()的返回值为下述之一:OS_NO_ERR:任 务优先级成功改变。OS_PRO_INVALID:参数中的任务原先优先级或新优先级大于或等于 OS_LOWEST_PRIO。OS_PRIO_EXIST:参数中的新优先级已经存在。OS_PRIO_ERR:参数中的任务原先优先级不存在。参数中的新优先级必须是没有使用过的,否则会返回错误码。在 OSTaskChangePrio()中还会先判断要改变优先级的任务是否存在 INT8U OSTaskCrea

6、te(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8U prio);所属文件 OS_TASK.C 调用者 任务或初始化代码 开关量 无 OSTaskCreate()建立一个新任务。任务的建立可以在多任务环境启 动之前,也可以在正在运行的任务中建立。中断处理程序中不能建立任务。一个任务必须为无限循环结构,且不能有返回点。OSTaskCreate()是为与先前的 C/OS 版本保持兼容,新增的特性在 OSTaskCreateExt()函数中。无论用户程序中是否产生中断,在初始化任务堆栈 时,堆栈的结构必须与 CPU 中断后寄存器入栈的顺序结构相同。

7、详细说明请参考所用处理器的手册。参数 task 是指向任务代码的指针。Pdata 指向一个数据结构,该结构用来在建立任务时向任务传递参数。ptos 为指向任务堆栈栈顶的指针。任务堆栈用来保存局部变量,函数参数,返回地址以 及任务被中断时的CPU 寄存器内容。任务堆栈的大小决定于任务的需要及预计的中断嵌套层数。计算堆栈的大小,需要知道任务的局部变量所占的空间,可能产生 嵌套调用的函数,及中断嵌套所需空间。如果初始化常量OS_STK_GROWTH 设为 1,堆栈被设为从内存高地址向低地址增长,此时 ptos 应该指向任务 堆栈空间的最高地址。反之,如果 OS_STK_GROWTH 设为 0,堆栈将

8、从内存的低地址向高地址增长。prio 为任务的优先级。每个任务必须有 一个唯一的优先级作为标识。数字越小,优先级越高。返回值 OSTaskCreate()的返回值为下述之一:函数调用成功。具有该优先级的任务已经存在。OS_PRIO_INVALID:参数指定的优先级大于 OS_LOWEST_PRIO。OS_NO_MORE_TCB:系统中没有 OS_TCB 可以分配给任务了。任务堆栈必须声明 为 OS_STK 类型。在任务中必须调用 C/OS 提供的下述过程之一:延时等待、任务挂起、等待事件发生(等待信号量,消息邮箱、消息队列),以 使其他任务得到 CPU。用户程序中不能使用优先级 0,1,2,3

9、,以及 OS_LOWEST_PRIO-3,OS_LOWEST_PRIO-2,OS_LOWEST_PRIO-1,OS_LOWEST_PRIO。这些优先级 C/OS 系统保留,其余的 56 个优先级提供给应用程序。INT8U OSTaskCreateExt(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8U prio,INT16U id,OS_STK*pbos,INT32U stk_size,void*pext,INT16U opt);所 属文件 OS_TASK.C 调用者 任务或初始化代码 开关量 无 OSTaskCreateExt()建立一个新任

10、务。与 OSTaskCreate()不同的是,OSTaskCreateExt()允许用户设置更多的细节内容。任务的建立可以在多任务环境启动之前,也可以在 正在运行的任务中建立,但中断处理程序中不能建立新任务。一个任务必须为无限循环结构(如下所示),且不能有返回点。参数 task 是指向 任务代码的指针。Pdata 指针指向一个数据结构,该结构用来在建立任务时向任务传递参数。下例中说明 C/OS 中的任务代码结构以及如何传递参 数 pdata:(如果在程序中不使用参数 pdata,为了避免在编译中出现“参数未使用”的警告信息,可以写一句 pdata=pdata;)ptos 为指向任务堆栈栈顶的指

11、针。任务堆栈用来保存局部变量,函数参数,返回地址以及中断时的 CPU 寄存器内容。任务堆栈的大小决定于任务的需要及预计的中断嵌 套层数。计算堆栈的大小,需要知道任务的局部变量所占的空间,可能产生嵌套调用的函数,及中断嵌套所需空间。如果初始化常量 OS_STK_GROWTH设 为 1,堆栈被设为向低端增长(从内存高地址向低地址增长)。此时 ptos 应该指向任务堆栈空间的最高地址。反之,如果 OS_STK_GROWTH 设为 0,堆栈将从低地址向高地址增长。每个任务必须有一个唯一的优先级作为标识。id 是任务的标识,目前 这个参数没有实际的用途,但保留在 OSTaskCreateExt()中供今

12、后扩展,应用程序中可设置 id与优先级相同。pbos 为指向堆栈底端 的指针。如果初始化常量 OS_STK_GROWTH 设为 1,堆栈被设为从内存高地址向低地址增长。此时 pbos 应该指向任务堆栈空间的最低地址。反之,如 果 OS_STK_GROWTH 设为 0,堆栈将从低地址向高地址增长。pbos 应该指向堆栈空间的最高地址。参数 pbos 用于堆栈检测函数 OSTaskStkChk()。stk_size 指定任务堆栈的大小。其单位由 OS_STK 定义:当 OS_STK 的类型定义为 INT8U、INT16U、INT32U的时候,stk_size 的单位为分别为字节(8 位)、字(16

13、 位)和双字(32 位)。pext 是一个用户定义数据结构的指针,可作为 TCB 的扩展。例如,当任务 切换时,用户定义的数据结构中可存放浮点寄存器的数值,任务运行时间,任务切入次数等等信息。opt 存放与任务相关的操作信息。opt 的低 8 位由 C/OS 保留,用户不能使用。用户可以使用 opt 的高 8 位。每一种操作由 opt 中的一位或几位指定,当相应的位被置位时,表示选择某种操作。当前的 C/OS 版本支持下列操作:OS_TASK_OPT_STK_CHK:决定 是否进行任务堆栈检查。OS_TASK_OPT_STK_CLR:决定是否清空堆栈。OS_TASK_OPT_SAVE_FP:决定是否 保存浮点寄存器的数值。此项操作仅当处理器有浮点硬件时有效。保存操作由硬件相关的代码完成。其他操作请参考文件 uCOS_II.H。返 回值 OSTaskCreateExt()的返回值为下述之一:任务堆栈必须声明为 OS_STK 类型。在任务中必须进行 C/OS 提供的下述过程 之一:延时等待、任务挂起、等待事件发生(等待信号量,消息邮箱、消息队列),以使其他任务得到 CPU。用户程序中不能使用优先级 0,1,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1