文档章节

ucosii 知识点总结

青春无极限
 青春无极限
发布于 05/30 16:56
字数 604
阅读 32
收藏 0

建立任务, OSTaskCreateExt()
stk_size 用于指定堆栈成员数目的容量。也就是说,如果堆栈的入口宽度为 4 字节宽,那么 stk_size 为 10000 是指堆栈有 40000 个字节,意思就是数据的宽度*长度=堆栈的大小。

μC/OS-Ⅱ支持的处理器的堆栈既可以从上(高地址)往下(低地址)长也可以从下往上长
。用户在调用 OSTaskCreate()或 OSTaskCreateExt()的时候必须知道
堆栈是怎样长的,
当 OS_CPU.H 文件中的 OS_STK_GROWTH 置为 1 时,用户需要将堆栈的最高内存地址传递
给任务创建函数 - 一般默认为1,我们需要改为0,才能从堆栈的最低内存开始传递参数。

堆栈检验, OSTaskStkChk()

为了适应系统以后的升级和扩展,用户应该多分配 10%-100%的堆栈空间

因为 μC/OS-Ⅱ不允许多个任务具有相同的优先级,所以 OSTaskChangePrio()需要检验新优
先级是否是合法的(即不存在具有新优先级的任务)

有时候将任务挂起是很有用的。挂起任务可通过调用 OSTaskSuspend()函数来完成。被
挂起的任务只能通过调用 OSTaskResume()函数来恢复。

OSMboxPend(MboxTimeDly, TIMEOUT, &err); 用邮箱可以实现互斥锁的功能,也可以实现延时的功能

消息队列是一个循环的缓冲区,圆形的。如果此时消息队列已满,那么该消息将由于不能插入到消息队列中而丢失。

OSSemPend()和 OSMboxPend()函数一样,不能在中断服务子程序中调用 OSQPend(),因为中断服务子程序是不能等待的。

互斥锁和信号量不能在中断里使用,不然会影想任务的运行。对于初始化时胡一些系统变量,如果越界,会导致第一个优先级的任务无法运行,因为地址重叠了。

如果定义多个互斥锁,需要分为不同的优先级,有的优先级不能使用,会导致内存越界,比如优先级5.

© 著作权归作者所有

青春无极限
粉丝 2
博文 129
码字总数 71498
作品 0
卢湾
程序员
私信 提问
从零开始学习UCOSII操作系统15--总结篇

前言:在大学的时候,我们班级上面都有很多人觉得学习UCOSII(包括UCOSIII)是没什么厉害的,因为很多人都喜欢去学习Linux操作系统,但是,但是,真实的对整个UCOSII操作系统进行学习,我可以保...

rainbowcode
09/24
7
0
ucosii任务三要素---执行代码 堆栈 任务控制块

使用ucosii也有一段时间了,把学习到的总结一下。这篇文章不是对ucosii如何使用的讲解,而是主要看看ucosii内核实现的原理,或者说讲一些RTOS种通用的知识。对于RTOS基础知识的讲解,暂时就不...

u012142460
2018/02/27
0
0
STM32学习笔记一一UCOSII(1)

1.简介 UCOSII 是一个可以基于 ROM 运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。 1.1 ...

rainbowcode
09/24
8
0
从零开始学习UCOSII操作系统13--系统移植理论篇

从零开始学习UCOSII操作系统13--系统移植理论篇 1、什么是系统移植? (1)UCOSII移植到不同的处理器上,所谓的移植就是将一个实时的内核能在其他的微处理器或者微控制器上运行。 为了方便移植...

dhauwd
2018/04/05
0
0
ucosii的任务调度算法

在ucosii任务三要素和ucosii在CM3中的移植学习中,对于ucosii的任务的基本要素,任务切换的基本流程已经有了认识。任务切换中有一部分是找到当前就绪任务中优先级最高的,今天我们就来看看是...

u012142460
2018/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
14分钟前
2
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部