CMSIS-RTOS 简介
CMSIS-RTOS API是基于Arm®Cortex®-M处理器的设备的通用RTOS接口。CMSIS-RTOS为需要RTOS功能的软件组件提供标准化API,从而为用户和软件行业带来了巨大的好处。
- CMSIS-RTOS提供许多应用程序或技术(如UML或Java(JVM))所需的基本功能。
- CMSIS-RTOS API的统一功能集简化了软件组件的共享,减少了学习工作量。
- 使用CMSIS-RTOS API的中间件组件与RTOS无关。符合CMSIS-RTOS标准的中间件更易于适应。
- CMSIS-RTOS API的标准项目模板(例如电机控制)可以随附免费提供的CMSIS-RTOS实施。
- 注意
- CMSIS-RTOS API定义了最小特征集。RTOS供应商可能会提供具有扩展功能的实现。

典型的CMSIS-RTOS API实现与现有的实时内核接口。CMSIS-RTOS API提供以下属性和功能:
- 函数名称,标识符和参数具有描述性且易于理解。这些功能强大而灵活,减少了暴露给用户的功能。
- 线程管理允许您定义,创建和控制线程。
- 中断服务程序(ISR)可以调用一些CMSIS-RTOS功能。当无法从ISR上下文调用CMSIS-RTOS函数时,它拒绝调用。
- 三种不同的线程事件类型支持多线程和/或ISR之间的通信:
- 信号:是一个标志,可用于指示线程的特定条件。信号可以在ISR中修改或从其他线程设置。
- 消息:是一个32位值,可以发送到线程或ISR。消息缓存在队列中。消息类型和队列大小在描述符中定义。
- Mail:是一个固定大小的内存块,可以发送到线程或ISR。邮件缓存在队列中并提供内存分配。邮件类型和队列大小在描述符中定义。
- 互斥量和信号量被合并。
- CPU时间可以安排具有以下功能:
- 甲超时参数在许多CMSIS-RTOS功能并入以避免系统死机。指定超时后,系统将等待,直到资源可用或发生事件。等待时,会安排其他线程。
- 所述osDelay函数将一个线程进入状态WAITING为指定的一段时间。
- 通用osWait函数等待分配给线程的事件。
- 所述osThreadYield提供合作社线程切换并传递到执行相同优先级的另一个线程。
CMSIS-RTOS API可选择通过Cortex-M存储器保护单元(MPU)集成多处理器系统和/或访问保护。
在一些RTOS实现中,线程可以在不同的处理器上执行,因此邮件和消息队列可以驻留在共享的存储器资源中。
CMSIS-RTOS API鼓励软件行业发展现有的RTOS实施。使用宏定义和访问内核对象。这允许区分。RTOS实现可以在不同方面针对Cortex-M处理器进行不同和优化。可选的特征可以是例如
- 通用等待功能; 即支持时间间隔。
- 支持Cortex-M内存保护单元(MPU)。
- 零拷贝邮件队列。
- 支持多处理器系统。
- 支持DMA控制器。
- 确定性上下文切换。
- 循环上下文切换。
- 避免死锁,例如优先级倒置。
- 使用Cortex-M3 / M4指令LDREX和STREX实现零中断延迟。
CMSIS-RTOS 简介的更多相关文章
- CMSIS RTOS -- embOS segger
#ifndef __CMSIS_OS_H__ #define __CMSIS_OS_H__ #include <stdint.h> #include <stddef.h> #i ...
- CMSIS的简介
Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A ...
- RTOS之CMSIS-RTOS
CMSIS-RTOS 是实时操作系统的通用 API.它提供了标准化的编程接口,它只是封装了RTX/embos,以后还可能封装freeRTOS,uc/os等等第三方OS,CMSIS RTOS是ARM现在 ...
- 聊聊CMSIS-RTOS是什么东东
起因:发布自己翻译用的CMSIS_RTOS_Tutorial后,陆续收到网友关于“CMSIS-RTOS是干么的?”之类的问题,再次统一回复. 众所周知,实时操作系统是嵌入式领域的基石.而可选的嵌入式操 ...
- STM32F429i-DISCO FreeRTOS keil STM32CubeMX
目标: 在STM32F429 Disco开发板上用FreeRTOS双线程点亮双闪led. 准备: 0. STM32F429i-DISCO 1. keil ARMMDK 5.13 2. STM32Cub ...
- CMSIS_RTOS_Tutorial自译中文版
一.序言 本资料是Trevor Martin编写的<The Designers Guide to the Cortex-M Processor Family>的摘要,并得到Elsevier ...
- CMSIS-RTOS 时间管理之时间延迟Time Delay
时间管理 Time Management 此RTOS除了可以把你的应用代码作为线程运行,它还可以提供一些时间服务功能,使用这些功能你就可以访问RTOS的一些系统调用. 时间延迟Time Delay 在 ...
- ARM官方《CMSIS-RTOS教程》之线程Threads
创建线程Creating Threads 一旦RTOS开始运行,就会有很多系统调用来管理和控制活跃的线程.默认情况下,main()函数自动被创建为第一个可运行的线程.在第一个例子里我们使用main() ...
- CMSIS-RTOS的使用
CMSIS-RTOS实现通常作为库提供.要将RTOS功能添加到现有的基于CMSIS的应用程序,需要添加RTOS库(通常是配置文件).RTOS库的可用功能在头文件cmsis_os.h中定义,该文件特定于 ...
- 【RL-TCPnet网络教程】第4章 RL-TCPnet网络协议栈简介
第4章 RL-TCPnet网络协议栈简介 本章节介绍RL-TCPnet网络协议栈,让大家对 RL-TCPnet有一个整体的了解,RL-TCPnet是一款小型网络协议栈,适用于 ARM 内 ...
随机推荐
- 马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象
马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象 “未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,将很难生存下去.” 9月 ...
- wackoPicko 渗透平台的安装
2016-05-17 wackoPicko 的介绍及下载地址 https://github.com/adamdoupe/WackoPicko#from=codefrom.com 首先我们 ...
- 华为P30系列新增“无线投屏”功能
3月26日法国巴黎全球首发之后,4月11日华为又移师上海举办2019春季新品发布盛典,新一代拍照旗舰P30.P30 Pro正式登陆国内. 除了感光徕卡四摄带来的“彩色夜视仪“+“望远镜”的震撼拍照效果 ...
- LINUX命令LS -AL 解析
LINUX命令LS -AL 解析 linux命令ls -al 解析 ls是“list”的意思,与早期dos的命令dir功能类似.参数-al则表示列出所有的文件,包括隐藏文件,就是文件前面第一个字符为. ...
- 如何启动和关闭MySQL?(四)
分为: 图形化 命令行 方法一:在“计算机”的图标上右键,然后选择“管理”,双击“服务和应用程序”,然后选择“服务”,找到“MySQL”这个服务,然后点击“右键”,就可以进行“停止”和“重新启动”的操 ...
- Hadoop框架基础(一)
** Hadoop框架基础(一) 学习一个新的东西,传统而言呢,总喜欢漫无目的的扯来扯去,比如扯扯发展史,扯扯作者是谁,而我认为这些东西对于刚开始接触,并以开发为目的学者是没有什么帮助的,反而 ...
- checkbox和文字不再同一水平线上
为了演示效果,我故意将文字变为12px,将复选框变大,看到的效果就是下面的那样 然后,我们通过给复选框添加vertical-align:middle:让文字和复选框达到同一水平线的效果
- python ftp
#fpt_server.py#__*__ encoding=utf-8 __*__ import socket ,os class MyClass(object): def __init__(self ...
- net实现ping的方法
class ServicePinger { private static readonly ILog log = LogManager.GetLogger(typeof(ServicePinger)) ...
- js确认框confirm()用法实例详解
先为大家介绍javascript确认框的三种使用方法,具体内容如下 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认. ? 1 2 3 4 5 6 7 8 ...