uCOS-III学习笔记.doc_第1页
uCOS-III学习笔记.doc_第2页
uCOS-III学习笔记.doc_第3页
uCOS-III学习笔记.doc_第4页
uCOS-III学习笔记.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UCOS-III学习笔记一知识要点1. 用户代码不允许调用任务函数,任务一旦创建只能由UCOS-III调用2. 每个任务都必须创建创建自己的堆栈,可以静态分配或由malloc()动态分配,但类型只能为CPU_STK3. 任务优先级数越小越高,设置范围1OS_CFG_PRIO_MAX-2,OS_CFG_PRIO_MAX在OS_CFG.h中定义,系统默认的最大优先级为10,统计任务的优先级在os_CFG_app.h中定义。系统默认的一些优先级:统计任务:11OS_CFG_TICK_TASK_PRIO :104. 分配堆栈大小时:1K=2565. OSTaskCreate()里面有些指针没有意义。6. 推荐在调用OSStart()函数之前只创建一个任务,因为此时UCOS-III可以统计CPU的使用率7. 每个任务都是一个无限循环,通过调用延时函数OSTimeDly()或OSTimeDlyHMSM()等待一个事件而被挂起。8. 任务不像C函数,没有return的。9. 只运行一次的任务结束时必须调用OSTaskDel()删除自己。10. 任务在等待事件时不会占用CPU11. 一旦堆栈被动态分配就不能再回收,对于不需要删除的任务,建议动态分配堆栈12. uC/OS-III 允许用户在调用 OSStart() 之前创建任意个任务,但当用到统计任务统计 CPU 的使用率时,调用 OSStart() 之前只允许创建1个任务,给这个任务一个相当高的优先级。统计任务本身也有优先级OS_CFG_STAT_TASK_PRIO,在os_CFG_app.h中定义。,此优先级排倒数第二,第一是空闲任务。13. 任务要获得共享资源使用权就必须先获得互斥信号量(mutex),使用完后要释放mutex。14. 消息队列是任务与任务间的通信,未接受到消息队列的任务会被暂时挂起,处于等待接受的状态。15. OSTimeDly(),任务调用这个函数后就会被挂起直到期满。二单任务应用程序2 多任务管理程序主任务主任务中创建多个子任务4 统计任务这部分可以参考UCOS-ii的/article/1974b289a1ebd7f4b0f77469.html进入OSStatTaskCPUUsageInit函数后会多次调用其他函数,最后进入OS_StatTaskInit函数,此函数会创建统计任务(鼠标一直往下拉到底就会看到任务创建,如下图),任务优先级默认为最大值-2.进入任务函数,在任务函数中会主动计算结果,并提供用户接口,5 内存管理1.uC/OS-III 可以获得连续的内存块2.不要在嵌入式系统中使用 malloc() 和 free() ,因为这样会导致内存碎片。3.可以用 malloc() 动态的分配内存空间,但不要释放这些内存空间 。 就是说定义不需要释放的空间时可以使用 malloc() , 这样能使所定义的空间的利用率接近为 100%4.用户可以创建任意个内存分区(限制于处理器的 RAM ) 。5.uC/OS-III 中与内存分区相关的函数都是以 OSMem?() 为前缀。6.通过设置 OS_CFG.H 中的 OS_CFG_MEM_EN 为 1 开启内存管理服务。7.OSMemCreate() 只能在任务级被调用, OSMemGet() 和 OSMemPut() 可以在 ISR 中使用, 因为这两个函数不会被阻塞且能快速地被执行 。8.内存块的大小最好用 #defines 定义的宏常量代替。 1. 创建内存分区和内存块方法一:方法二:2. 从内存分区申请内存块应用代码通过调用 OSMemGet() 可以从内存分区中申请内存块。3. 释放内存块到内存分区当用户对内存块的使用完毕后,必须将该内存块归还给对应的内分区。调用 OSMemPut() 实现这个功能。4. 如何动态地分配内存任务在内存分区被分配完时可以等待内存块 。 uC/OS-III 不支持任务等待内存分区 , 但是可以通过一个信号量用于内存分区中内存块的分配。如图:( 1 ) 获得一个内存块时 , 先调用 OSSemPend() 获得一个信号量 ,然后再调用 OSMemGet() 获得一个内存块。( 2 ) 释放一个内存块时 , 先调用 OSMemPut() 释放这个内存块 ,然后再调用 OSSem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论