1 / 5
文档名称:

uCOSIII学习笔记.docx

格式:docx   大小:337KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

uCOSIII学习笔记.docx

上传人:wz_198613 2022/2/19 文件大小:337 KB

下载得到文件列表

uCOSIII学习笔记.docx

文档介绍

文档介绍:UCOS-III学****笔记
一.知识要点
用户代码不允许调用任务函数,任务一旦创建只能由UCOS-III调用
每个任务都必须创建创建自己的堆栈,可以静态分配或由malloc()动态分配,但类型只能为CPU_STK
任务优先级数越小越高UCOS-III学****笔记
一.知识要点
用户代码不允许调用任务函数,任务一旦创建只能由UCOS-III调用
每个任务都必须创建创建自己的堆栈,可以静态分配或由malloc()动态分配,但类型只能为CPU_STK
任务优先级数越小越高,设置范围1~OS_CFG_PRIO_MAX-2,,系统默认的最大优先级为10,。
系统默认的一些优先级:
统计任务:11
OS_CFG_TICK_TASK_PRIO :10
分配堆栈大小时:1K=256
OSTaskCreate()里面有些指针没有意义。
推荐在调用OSStart()函数之前只创建一个任务,因为此时UCOS-III可以统计CPU的使用率
每个任务都是一个无限循环,通过调用延时函数OSTimeDly()或OSTimeDlyHMSM()等待一个事件而被挂起。
任务不像C函数,没有return的。
只运行一次的任务结束时必须调用OSTaskDel()删除自己。
任务在等待事件时不会占用CPU
一旦堆栈被动态分配就不能再回收,对于不需要删除的任务,建议动态分配堆栈
uC/OS-III 允许用户在调用 OSStart() 之前创建任意个任务,但当用到统计任务统计 CPU 的使用率时,调用 OSStart() 之前只允许创建1个任务,给这个任务一个相当高的优先级。统计任务本身也有优先级OS_CFG_STAT_TASK_PRIO,。,此优先级排倒数第二,第一是空闲任务。
任务要获得共享资源使用权就必须先获得互斥信号量(mutex),使用完后要释放
mutex。
消息队列是任务与任务间的通信,未接受到消息队列的任务会被暂时挂起,处于等待接受的状态。
OSTimeDly(),任务调用这个函数后就会被挂起直到期满。
二.单任务应用程序
多任务管理程序
主任务
主任务中创建多个子任务
统计任务
这部分可以参考UCOS-ii的
进入OSStatTaskCPUUsageInit函数后会多次调用其他函数,最后进入OS_StatTaskInit函数,此函数会创建统计任务(鼠标一直往下拉到底就会看到任务创建,如下图),任务优先级默认为最大值-2.
进入任务函数,在任务函数中会主动计算结果,并提供用户接口,
内存管理
-III 可以获得连续的内存块
malloc() 和 free() ,因为这样会导致内存碎片。
malloc() 动态的分配内存空间,但不要释放这些内存空间 。{ 就是说定义不需要释放的空间时可以使用 malloc() , 这样能使所定义的空间的利用率接近为 100%}
(限制于处理器的 RAM ) 。
-III 中与内存分区相关的函数都是以 OSMem???() 为前缀。
6