UCOS
Light as water
这个作者很懒,什么都没留下…
展开
-
UCOS局部变量、任务堆栈
UCOS中局部变量的生命周期:任务一直存在,所以在任务中(非子函数)定义的局部变量不会死亡,在任务间的信息传递因局部变量未死亡而可行。在子函数中定义的局部变量在退出该函数时才死亡,在子函数中调用任务切换时局部变量保留,在任务切换所至任务执行完成并回到子函数正常退出时才死亡。UCOS任务堆栈:【函数嵌套、所调用函数局部变量分配内存、中断服务子程序嵌套】1、当任务运行时保存一些局部变量(CPU...原创 2019-09-08 14:19:40 · 803 阅读 · 0 评论 -
UCOSIII优先级
优先级 0:中断服务管理任务 OS_IntQTask()优先级 1:时钟节拍任务 OS_TickTask() 滴答定时器任务优先级 2:定时任务 OS_TmrTask()优先级 3:开始任务 OS_start_task()优先级OS_CFG_PRIO_MAX-2 : 统计任务 OS_StatTask...原创 2019-09-08 14:20:59 · 1046 阅读 · 0 评论 -
uCOS任务堆栈的深入分析
堆栈作用的就是用来保存局部变量,从实质上讲也就是将CPU寄存器的值保存到RAM中。在uCOS中,每一个任务都有一个独立的任务堆栈。为了深入理解任务堆栈的作用,不妨分析任务从“出生”到“消亡”的整个过程,具体就是分析任务的建立,运行,挂起几种状态中任务堆栈的变化情况。目前假设系统运行着一个由用户创建的用以完成打印工作的任务TPrint。TPrint最初通过OSTaskCreate()函数创建,在该...原创 2019-09-08 16:13:30 · 469 阅读 · 0 评论 -
uCOS-III中的OS_CRITICAL_ENTER()和OS_CRITICAL_EXIT()使用
uCOS-III是uCOS-II的升级版本,虽然针对于后者有各种优化,但是有一点不是特别好,就是有些宏定义名称会做一些修改,这种修改可能更合理,但是可能会引起一些不必要的“误会 ”,例如在uCOS-II中临界区的使用函数名字为:#include "os_cpu.h" //包含该头文件 xxxx(){ OS_CPU_SR cpu_sr=0; //必须要定义一个局部变量...原创 2019-09-08 16:32:44 · 1351 阅读 · 0 评论