zoukankan      html  css  js  c++  java
  • uC/OS-II之入门与介绍20160525

    说一下刚学习uCOS的心得
    1)首先强调一下实时操作系统(RTOS)的特点,最明显的是提供及时响应和高可靠性
    2)基于实施操作系统的应用程序设计中,其中很重要的一个概念是"任务",任务设计也就是任务函数的设计是整个整
    个应用程序的基础,其他软件设计工作都是围绕来展开的
    3)用户任务函数中,必须包含至少一次的系统服务函数(一般是等待类的函数以便其他函数有机会得以运行),否则优
    先级更低的任务将无法得到运行的机会,中断服务程序不能调用该类函数即一些等待函数,防止中断服务程序被打断
    4)任务函数分为三类:
    单次执行,即执行一次就退出的任务。
    周期性执行,即到一定时间就执行的任务,当没到时间时该任务休眠,以便CPU去执行其他的任务。
    事件触发执行,即当特定的事件发生时就执行任务,当没有对应的事件发生时,该任务会休眠,CPU可以去执行其他任
    务。
    5)使用ucos-II时,要注意在Main函数中,加入两个初始化函数:OSInit(),OSStart()。OSInit()初始化ucosII中内部
    变量,OSStart()函数启动多任务环境
    6)OSTaskCreateExt,创建一个任务,第一个参数为函数指针,即创建好后,就执行该函数指针指向的函数体:
    INT8U OSTaskCreateExt (void (*task)(void *pd), //建立扩展任务(任务代码指针,函数指针)
                 void *pdata, //传递参数指针
                 OS_STK *ptos, //分配任务堆栈栈顶指针
                 INT8U prio, //分配任务优先级
                 INT16U id, //(未来的)优先级标识(与优先级相同)
                 OS_STK *pbos, //分配任务堆栈栈底指针
                 INT32U stk_size, //指定堆栈的容量(检验用)
                 void *pext, //指向用户附加的数据域的指针
                 INT16U opt) //建立任务设定选项
    例:OSTaskCreateExt(TaskRxProc,
                NULL,
                &TaskStkRxProc[128 - 1],
                3,
                3,
                TaskStkRxProc,
                TASK_STK_LEN_RX_PROC,
                NULL,
                OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);//Enable stack checking for the task|Clearthe stack when the task is create

    其他相关的系统函数后续再讲诉
    7)操作系统中的共享区也就是临界区,各个任务访问必须互斥,保证互斥的常见方法主要有:
    第一,进入然后就退出临界区,第二,使用信号量与互斥信号量
    另外,注意处理临界段代码需要禁止中断,处理完毕再允许中断,避免其他任务或者中断服务同时进入临界区
    uCOS提供了两个宏来实现,其中
    OS_ENTER_CRITICAL()进入临界区,禁止中断
    OS_EXIT_CRITICAL() 退出临界区,允许中断
    8)除了互斥外,资源同步也就是任务间的通信,主要的(同步)方式有:
    信号量,事件标志组,消息邮箱,消息队列这几种方法

    具体后续再介绍

  • 相关阅读:
    React Virtual Dom 与 Diff
    打造前端CI/CD工作流
    webpack-chain明细
    React项目中实现多语言支持
    【WPF】大量Canvas转换为本地图片遇到的问题
    【C#】【分享】 XX分钟学会C#
    【WPF】一些拖拽实现方法的总结(Window,UserControl)
    【WPF】 InkCanvas 书写毛笔效果
    js中this指向问题
    js原型浅谈理解
  • 原文地址:https://www.cnblogs.com/yuweifeng/p/5528309.html
Copyright © 2011-2022 走看看