说一下刚学习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)除了互斥外,资源同步也就是任务间的通信,主要的(同步)方式有:
信号量,事件标志组,消息邮箱,消息队列这几种方法

具体后续再介绍

uC/OS-II之入门与介绍20160525的更多相关文章

  1. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

  2. uC/OS II原理分析及源码阅读(一)

    uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...

  3. 【原创】uC/OS II 任务切换原理

    今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...

  4. uC/OS II 函数说明 之–OSTaskCreate()与OSTaskCreateExt()

    1. OSTaskCreate()    OSTaskCreate()建立一个新任务,能够在多任务环境启动之前,或者执行任务中建立任务.注意,ISR中禁止建立任务,一个任务必须为无限循环结构.    ...

  5. uc/os iii移植到STM32F4---IAR开发环境

    也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...

  6. uc/os 任务删除

    问题描述:     uc/os 任务删除 问题解决: uc/os任务删除流程图 具体代码 注:     如上是关中断,以及取消优先级对应的就绪标志 关中断代码为: 取消就绪标志,实际上是将就绪表中指定 ...

  7. uc/os任务创建

    问题描述:      uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...

  8. uC/OS 的任务调度解析 (转)

    uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...

  9. 关于uC/OS的简单学习(转)

    1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...

随机推荐

  1. Windows下Mongo分片及集群

    这里简单介绍一下windows下mongodb的分片设置和集群搭建,希望能够为迷茫的新手起到一点点作用.其实windows下与linux下思路是一致的,只是绑定时的ip,与端口号不同,linux下可以 ...

  2. 安装文件报错error while loading shared libraries: libssl.so.6

    http://www.openssl.org/source/  这里下载http://www.openssl.org/source/openssl-1.0.0r.tar.gz 安装命令为:tar -z ...

  3. 001----Mysql隔离级别

    一:事务隔离级别 mysql数据库的隔离界别如下: 1, READ UNCOMMITTED(未提交读) 事务中的修改,即使没有提交,对其它事务也是可见的.  这样会造成脏读(Dirty Read)的问 ...

  4. hdfs向hbase上传数据报错分析

    通过hbse的import工具向hbase导入文件时出现出错误: hbase org.apache.hadoop.hbase.mapreduce.Driver import hbase_rgrid_k ...

  5. javascript 强制转换规则 boolean 布尔值类型

    摘自 <你不知道的Javascript(中卷)> p55 一句话简述, 假值表以外的值均可以认为是真值,部分浏览器可能自定义了假值表以外的假值,并不符合W3C规范,需要特殊对待. 首先也是 ...

  6. CF刷刷水题找自信 2

    CF 1114A  Got Any Grapes(葡萄)? 题目意思:给三个人分葡萄,三个人对葡萄的颜色有一些要求,问所准备的三种颜色的葡萄能否满足三人的要求. 解题意思:直接按条件判断即可. #in ...

  7. UI分析之石家庄铁道大学官网

    点击进入石家庄铁道大学的官方网站,首先映入眼帘的是“石家庄铁道大学”七个大字,配以蓝色背景和学校的俯瞰图,给人一种严谨又不失清新的感觉. 学校的网站首页界面主要有九个界面,分别是网站首页,学校概况,组 ...

  8. erlang节点互相ping,一个能ping通,另外一个不行。

    今天发现一个问题,2个erlang节点,1个主动ping另外一个不通,然后等待另外一个ping过来,2个节点才连通.记录一下. 首先,erlang节点的cookie是一致的.查了文档,cookie一致 ...

  9. ssh: Could not resolve hostname问题终于解决了?

    1.如果系统为64位,无法启动启动hdfs: ./sbin/start-dfs.sh.并有以下错误: sed: -e expression #1, char 6: unknown option to  ...

  10. CodeForces Round #527 (Div3) D2. Great Vova Wall (Version 2)

    http://codeforces.com/contest/1092/problem/D2 Vova's family is building the Great Vova Wall (named b ...