UCOSII归纳三

来源:互联网 发布:w10系统怎么连接网络 编辑:程序博客网 时间:2024/05/16 08:43

1.OS_TCB任务控制块全部驻留在RAM中,这是值得注意的,特别是在RAM缺乏的时候。

2.任务的管理:

  1:建立和删除任务。(注意:任务删除要考虑任务资源的释放。)

  2:请求删除任务:如果任务A运行一段时间已经拥有了一些资源,而任务B想删除它,要是强制删除,这些资源可能没有释放。

  3:改变任务优先级。

  4:挂起和恢复任务。

3.信号量由两部分组成:信号量的计数值和等待该信号量任务的等待列表。主要用于资源共享和任务同步。

4.Malloc和free对内存操作的缺点:1:多次操作会产生内存碎片。2:执行时间并不确定。

5.可重入的代码可以被一个以上的任务调用,而不必担心数据的破坏。

6.void OSCtxSw(void);//用户任务切换

   void OSIntCtxSw(void);//中断任务切换

   void OSStartHighRdy(void);//操作系统第一次启动的时候调用的任务切换。

   void OSPendSV(void);//用户中断处理函数

7.任务函数的局部变量越多,嵌套层数越多,堆栈越偏大,也要注意堆栈对齐问题。

8.Volatile作用是阻止编译器进行优化,每次读取或修改值的时候,都必须重新从内存中或外设寄存器中读取或修改,防止从缓冲处读取的值是过期的。

9.Volatile应用场合:

  1:中断ISR中修改,供其它程序检测的变量。

  2:多任务下任务共享的变量资源。

  3:外设的寄存器地址。

10.STM32中UCOSII的系统时钟节拍

void SysTick_Handler(void)

{

  if(delay_osrunning==1)//OS开始跑了,才执行正常的调度处理

  {  OSIntEnter(); //进入中断

     OSTimeTick(); //判断延迟的任务是否到达时间等             

     OSIntExit(); //触发任务切换软中断

  }

}

 

0 0
原创粉丝点击