电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

uCosII学习汇总(转载)VIP免费

uCosII学习汇总(转载)_第1页
1/10
uCosII学习汇总(转载)_第2页
2/10
uCosII学习汇总(转载)_第3页
3/10
发表于 2009/11/14 14:06:29 标签: 无标签 uCos-II 学习汇总(转载) 1.在uC/OS-II 的帮助手册内,作者特地强调绝对不能在OSInit()或者OSStart()内 调用Timer 初始化程序,那会破坏系统的可移植性同时带来性能上的损失。 所以,一个折中的办法就是: 在优先级最高的程序内调用,这样可以保证当 OSStart()调用系统内部函数 OSStartHighRdy()开始多任务后,首先执行的就是 Timer 初始化程序。或者 专门开一个优先级最高的任务,只做一件事情,那就是执行 Timer 初始化, 之后通过调用OSTaskSuspend()将自己挂起来,永远不再执行。不过这样会 浪费一个 TCB 空间。对于那些 RAM 吃紧的系统来说,还是不用为好。 2.(三) 一些重要的uC/OS-II API 介绍 任何一个操作系统都会提供大量的API 供程序员使用,uC/OS-II 也不例外。由于uC/OS-II 面向 的是嵌入式开发,并不要求大而全,所以内核提供的API 也就大多和多任务息息相关。 主要的有以下几类: 1)任务类 2)消息类 3)同步类 4)时间类 5)临界区与事件类 我个人认为对于初级程序员而言,任务类和时间类是必须要首先掌握的两种类型的API。 下面我就来介绍比较重要的: 1) OSTaskCreate 函数 这个函数应该至少再main 函数内调用一次,在OSInit 函数调用之后调用。作用就是创建 一个任务。目前有四个参数,分别是任务的入口地址,任务的参数, 任务堆栈的首地址和 任务的优先级。调用本函数后,系统会首先从 TCB 空闲列表内申请一个空的 TCB 指针,然后 将会根据用户给出参数初始化任务堆栈,并在内部的任务就绪表内标记该任务为就绪状态。 最后返回,这样一个任务就创建成功了。 2) OSTaskSu spend 函数 这个函数很简单,一看名字就该明白它的作用,它可以将指定的任务挂起。如果挂起的是 当前任务的话,那么还会引发系统执行任务切换先导函数OSShed 来进行一次任务切换。 这个函数只有一个参数,那就是指定任务的优先级。那为什么是优先级呢?事实上在系统 内部,优先级除了表示一个任务执行的先后次序外,还起着分别每一个任务的作用,换句话 说,优先级也就是任务的 ID。所以 u C/OS-II 不允许出现相同优先级的任务。 3) OSTaskResu me 函数 这个函数和上面的函数正好相反,它用于将指定的已经挂起的函数恢复成就绪状态。如果 恢复任务的优先级高于当前任务,那么还为引发一次任务切换。其参数类似 OSTaskSu spend 函数,为指定任务的...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

uCosII学习汇总(转载)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部