什么是RTOS系统

RTOS是Real Time Operation System的缩写,即实时操作系统!

rtos51介绍

rtx51是什么

rtx51是keil官方开发的用于8051系列处理器多任务实时操作系统

rtx51可以干什么

RTX51可以简化那些复杂而且时间要求严格的工程的软件设计工作

rtx51的两个版本

RTX51 Full

RTX51 Full使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换 RTX51工作在
与中断功能相似的状态下 信号和信息可以通过邮箱系统在任务之间互相传递 你可以从一存
储池中分配和释放内存 你可以强迫一个任务等待中断 超时或者是从另一个任务或中断发出的
信号或信息

RTX51 Tiny

RTX51 Tiny 是一个 RTX51的子集 它可以很容易地在没有任何外部存储器的单片8051系统上运
转 除了下列例外 RTX51 Tiny支持许多在 RTX51中的特征
RTX51 Tiny仅支持时间片轮转任务切换和使用信号进行任务切换 不支持抢先式的任务切换
不包括消息历程 没有存储器池分配程序

一般情况下,如果单片机的内存比较小的情况下,使用RTX51-Tiny,下面是RTX51-Tiny的一些参数

用VScode配置rtx51-Tiny

前面发过VSCode新建C51工程的例子,新建一个普通C51工程后,点击构建器选项

选择Rtx52-Tiny并保存

引入所需要的头文件即可:

编写一个简单的RTX51-tiny程序

#include "REG52.H"
#include "RTX51TNY.H"
sbit led0=P2^0;
sbit led1=P2^1;
//任务0是任务入口,相当于主函数,运行后就可以删除了
void job0() _task_ 0{//创建启动任务1,2os_create_task(1);os_create_task(2);//初始化完成,删除任务0os_delete_task(0);
}
//task1
void job1() _task_ 1{led0=0;//等待其他任务发来信号,收到信号才继续往下执行// os_wait(K_IVL);
}
//task2
void job2() _task_ 2{//给任务发送一个信号,该任务收到信号后将解除等待状态// os_send_signal(1);led1=1;
}

TRX51-Tiny接口说明

按住CTRL鼠标左键点击RTX51TNY.H

可以看到里面接口并不是很多

这里我们根据头文件一一总结讲解

unsigned char os_create_task(unsigned char task_id)

将一个任务移入任务队列

参数名 类型 描述
task_id unsigned char 任务ID

unsigned char os_delete_task(unsigned char task_id)

将一个任务移出任务队列

参数名 类型 描述
task_id unsigned char 任务ID

unsigned char os_wait(unsigned char typ, unsigned char ticks, unsigned int dummy)

等待某事件

参数名 类型 描述
typ unsigned char K_SIG 等待信号
K_TMO 等待超时
K_IVL 等待间隔
ticks unsigned char 等待的定时器标数
dummy unsigned int 没有定义的值,默认写0
返回值 描述
unsigned char NOT_OK 参数错误
TMO_EVENT 超时事件
SIG_EVENT 信号事件
RDY_EVENT 就绪事件

unsigned char os_wait1 (unsigned char typ)

等待某事件

参数名 类型 描述
typ unsigned char K_SIG 等待信号
K_TMO 等待超时
K_IVL 等待间隔

unsigned char os_wait2(unsigned char typ, unsigned char ticks)

等待某事件

参数名 类型 描述
typ unsigned char K_SIG 等待信号
K_TMO 等待超时
K_IVL 等待间隔
ticks unsigned char 等待的定时器标数

unsigned char os_send_signal(unsigned char task_id)

发送信号给某个任务,从任务信号调用

参数名 类型 描述
task_id unsigned char 任务的ID

unsigned char os_clear_signal(unsigned char task_id)

清除发送信号

参数名 类型 描述
task_id unsigned char 任务的ID

unsigned char isr_send_signal(unsigned char task_id)

发送信号给某个任务,从中断信号调用

参数名 类型 描述
task_id unsigned char 任务的ID

void os_set_ready(unsigned char task_id)

设置任务就绪标志

参数名 类型 描述
task_id unsigned char 任务的ID

void isr_set_ready(unsigned char task_id)

设置任务就绪标志

参数名 类型 描述
task_id unsigned char 任务的ID

unsigned char os_running_task_id(void)

返回当前正在运行的任务号

unsigned char os_switch_task(void)

切换任务,切换到的任务必须就绪,否则不会运行

void os_reset_interval(unsigned char ticks)

用于纠正由于 os_wait 函数同时等待 K_IVL 和 K_SIG 事件而产生的时间问题

参数名 类型 描述
ticks unsigned char 等待的定时器标数

51单片机rtx51-Tiny嵌入式实时操作系统初试相关推荐

  1. 参考任哲的《嵌入式实时操作系统μC_OS-II原理及应用》,对UCOS的任务调度做了下整理。

    参考任哲的< 嵌入式 实时操作系统μC_OS-II原理及应用>,对 UCOS 的任务调度做了下整理. UCOS有两种调度器,一种是任务级的调度器,一种是中断级的调度器.任务级的调度器由OS ...

  2. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十六章 UCOSII 实验 1任务调度...

    1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十六章 ...

  3. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...

    1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十八章 ...

  4. 【012】SylixOS嵌入式实时操作系统助力中国航天事业

    SylixOS嵌入式实时操作系统助力中国航天事业 发布于2016年09月30日 2016年9月23日,翼辉信息与中国航天科技集团上海航天计算机技术研究所在上海完成SylixOS发行版风云翼辉嵌入式实时 ...

  5. 从零开始构建嵌入式实时操作系统2——重构

    1.前言 本人是一个普通的中年程序员,并不是圈内的大牛,写嵌入式操作系统这一系列的文章并不是要显示自己的技术,而是出于对嵌入式的热爱.非常幸运,本人毕业后的十几年一直从事嵌入式行业,遇到过各种坑,也收 ...

  6. RT-Thread 创始人熊谱翔:我和 Linux、嵌入式实时操作系统 RT-Thread

    我和 Linux.嵌入式实时操作系统 RT-Thread -- RT-Thread创始人熊谱翔,2015 年 接触 Linux 说起 Linux 应该从我在校园时期说起.我是在山城--重庆邮电学院念的 ...

  7. 嵌入式实时操作系统11——操作系统内核运行原理

    先展示一个操作系统运行动态图 1.操作系统内核关键知识点 本文将用一个实际的工程例子来剖析操作系统内核运行原理.在此之前我们先回顾一下之前文章讲述的重点知识点. <嵌入式实时操作系统3--任务切 ...

  8. 嵌入式实时操作系统1——初识嵌入式实时操作系统

    嵌入式实时操作系统是什么 嵌入式实时操作系统是一个特殊的程序,是一个支持多任务的运行环境.嵌入式实时操作系统最大的特点就是"实时性",如果有一个任务需要执行,实时操作系统会立即执行 ...

  9. 嵌入式实时操作系统μC/OS II(一)

    嵌入式实时操作系统μC/OS II 为什么要学习μC/OS-II ㈠.凡从事嵌入式系统开发工作的人,必须对嵌入式操作系统有足够的了解. ㈡.对于初学者,从μC/OS-II开始是个明智的选择. 1.μC ...

最新文章

  1. 了解这些,你就可以在Spring启动时为所欲为了
  2. Android蓝牙串口程序开发
  3. 笔记整理-信息技术服务标准-ITSS组成要素
  4. 爱奇艺体验Serverless极致扩缩容,资源利用率提升40%
  5. 手动将自定制的WebPart部署到 SharePoint 2010 中
  6. java Lock 源码分析
  7. 构建LAMP平台及应用系统
  8. Springt Boot(7)----一种快捷搭建Spring Boot应用
  9. TypeScript 的声明文件的使用与编写
  10. 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
  11. 小程序的发布并发布为Android App流程
  12. FAT32文件系统的数据结构
  13. houdini大神自诉:为什么我要放弃maya I
  14. Windows系统中Word文档在插入公式时,公式按钮是灰色的(无法插入公式)的解决办法
  15. Spring Boot中使用JUnit5进行单元测试
  16. Android修改实战教程(漫放软件)
  17. Android 百度地图导航引擎初始化失败
  18. 【转载】CodeWarrior IDE使用Tips-如何编译生成和调用静态库
  19. asp.net动态网页制作视频教程
  20. 工具_在线生成安卓证书

热门文章

  1. 香港银行开户请尽早!附最全开户攻略
  2. abp构建Web API服务
  3. 在c++中用编程画一个圆
  4. 三星引入ChatGPT半个月泄密3次;MidJourney V5相机镜头完整参数列表;万字长文,拆解投身大模型3个本质问题 | ShowMeAI日报
  5. 爬取阿里云物联网平台设备的物模型数据
  6. 腾讯数据分析师认证!
  7. 计算机无法启动 主板,主板故障导致电脑无法启动的原因以及解决方法!
  8. Android12 源码下载、编译、刷机、单编调试Framework
  9. 企业微信根据微信联系人批量自动发送邀请,还可根据手机号批量添加
  10. Linux最全面试题100问答,纯纯爽文