μC/OS-ii的任务与通信

μC/OS-ii使用信号量、事件标志组、邮箱和消息队列这些中间环节来显现任务之间的通信,这些中间环节统一被称为事件。

1.计数信号量

给共享资源设立一个标志,表示共享资源的占用情况,使用共享资源前,对这个标志进行查询,再决定自己的行为,函数主体在os_sem.c中
相关函数:

1.1 函数OSSemCreat

table 1. 函数OSSemCreat

函数名OSSemCreat
函数原形OS_EVENT *OSSemCreat(INTU16 cnt);
功能描述创建信号量
输入参数cnt:信号量的初始值,一般为0,可以取0到65535之间的任何值
输出参数
返回值新建信号量的指针
先决条件
被调用函数

1.2 函数OSSemPost

table 2. 函数OSSemPost

函数名OSSemPost
函数原形INT8U OSSemPost(OS_EVENT *pevent));
功能描述发送信号量,信号量的值加1
输入参数pevent:所发送信号量的指针
输出参数
返回值OS_NO_EVENT:发送成功;
OS_ERR_EVENT_TYPE:pevent不是信号量类型;
OS_SEM_OVF:信号量的值溢出;
先决条件
被调用函数

1.3 函数OSSemPend

table 3. 函数OSSemPend

函数名OSSemPost
函数原形INT8U OSSemPost(OS_EVENT *pevent,INT16U timeout,INT8U *err);
功能描述等待(接收)信号量,信号量的值减1
输入参数1pevent:所发送信号量的指针
输入参数2timeout:等待信号量的最长时间,以时钟节拍为单位
输入参数3err:函数执行效果的变量地址。
OS_NO_ERR :信号量不为零。
OS_TIMEOUT :信号量没有在指定数目的时钟周期内被设置。
OS_ERR_PEND_ISR :从中断调用该函数。虽然规定了不允许从中断调用该函数,但μC/OS-Ⅱ仍然包含了检测这种情况的功能。
OS_ERR_EVENT_TYPE :pevent 不是指向信号量的指针。
输出参数
先决条件
被调用函数

2.事件标志组

2.1 函数OSFlagCreat

table 4. 函数OSFlagCreat

函数名OSFlagCreat
函数原形OS_FLAG_GRP * OSFlagCreat(OS_FLAGS flags,INT8U *err);
功能描述创建事件标志组
输入参数1flags标志组中各标志的初始值:
输入参数2err:函数执行效果的变量地址
输出参数
先决条件
被调用函数

2.2 函数OSFlagPost

2.3 函数OSFlagPend

3 消息邮箱

一个邮箱只能传送一个消息的地址

3.1 函数OSMboxCreat

3.2 函数OSMboxPost

3.3 函数OSMboxPostOpt

3.4 函数OSMboxPend

4.消息队列

消息队列可以存放多个消息,用一个指针数组构建消息队列,消息本身不参加排队,而是用指向不同消息的指针进行排队。

4.1 函数OSQCreat

4.2函数OSQPost

4.3 函数OSQPend

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
This book describes the design and implementation of mC/OS-II (pronounced "Micro C O S 2") which stands for<br>Micro-Controller Operating System Version 2. μC/OS -II is based on μC/OS, The Real-Time Kernel which was first<br>published in 1992. Thousands of people around the world are using μC/OS in all kinds of applications such as<br>cameras, medical instruments, musical instruments, engine controls, network adapters, highway telephone call boxes,<br>ATM machines, industrial robots, and many more. Nu merous colleges and Universities have also used μC/OS to<br>teach students about real-time systems.<br>μC/OS-II is upward compatible with μC/OS (V1.11) but provides many improvements over μC/OS such as the<br>addition of a fixed-sized memory manager, user definable callouts on task creation, task deletion, task switch and<br>system tick, supports TCB extensions, stack checking and, much more. I also added comments to just about every<br>function and I made μC/OS -II much easier to port to different processors. The source code in μC/OS was found in two<br>source files. Because μC/OS-II contains many new features and functions, I decided to split μC/OS-II in a few source<br>files to make the code easier to maintain.<br>If you currently have an application (i.e. product) that runs with μC/OS, your application should be able to run,<br>virtually unchanged, with μC/OS-II. All of the services (i.e. function calls) provided by μC/OS have been preserved.<br>You may, however, have to change include files and product build files to ‘point’ to the new file names.<br>This book contains ALL the source code for μC/OS-II and a port for the Intel 80x86 processor running in Real-Mode<br>and for the Large Model. The code was developed on a PC running the Microsoft Windows 95 operating system.<br>Examples run in a DOS compatible box under the Windows 95 environment. Development was done using the<br>Borland International C/C++ compiler version 3.1. Although μC/OS-II was developed and tested on a PC, mC/OS-II<br>was actually targeted for embedded systems and can easily be ported to many different processor architectures.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值