0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CMSIS-RTOS是什么?

strongerHuang 来源:strongerHuang 2023-04-11 10:53 次阅读

CMSIS:Cortex Microcontroller Software Interface Standard,Cortex微控制器软件接口标准。它包含的内容比较多:

CMSIS-RTOS:主要用于RTOS的API,可与中间件和库组件实现一致的软件层。

CMSIS-DSPArm针对各种Cortex-M处理器内核进行了优化的丰富DSP功能的集合。

CMSIS-Driver:接口可用于许多微控制器系列。

CMSIS-Pack:定义了包含软件组件的软件包。

CMSIS-SVD:可通过当前寄存器状态显示设备外设的详细视图。

CMSIS-DAP:Cortex调试访问端口(DAP)的标准化接口。

CMSIS-NN:高效的神经网络内核的集合。

我们在使用STM32CubeMX配置FreeRTOS时有一个CMSIS_V1和CMSIS_V2的选项,你知道CMSIS_V1和CMSIS_V2区别是什么?

下面我们就来简单分享一下关于CMSIS-RTOS的内容。

CMSIS的简介

Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由ARM专门针对CORTEX-M系列提出的标准。

在该标准的约定下,ARM和芯片厂商会提供一些通用的API接口来访问Cortex内核以及一些专用外设,以减少更换芯片以及开发工具等移植工作所带来的金钱以及时间上的消耗。

只要都是基于Cortex的芯片,代码均是可以复用的。CMSIS是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。使用 CMSIS可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。

CMSIS主要内容就如之前分享的Cortex-M内容:CMSIS-RTOS:主要用于RTOS的API,可与中间件和库组件实现一致的软件层。

CMSIS-DSP:Arm针对各种Cortex-M处理器内核进行了优化的丰富DSP功能的集合。

CMSIS-Driver:接口可用于许多微控制器系列。

CMSIS-Pack:定义了包含软件组件的软件包。

CMSIS-SVD:可通过当前寄存器状态显示设备外设的详细视图。

CMSIS-DAP:Cortex调试访问端口(DAP)的标准化接口。

CMSIS-NN:高效的神经网络内核的集合。

更多相关介绍可以参看文章:Cortex-M软件接口标准CMSIS

CMSIS-RTOS是干么的?

众所周知,实时操作系统嵌入式领域的基石,而可选的嵌入式操作系统有很多,如FreeRTOS、μCOS、RT-Thread、RTX、ThreadX、uLinux等。

CMSIS-RTOS是ARM公司为统一操作系统、降低嵌入式门槛而发布的操作系统标准软件接口。通俗讲,CMSIS-RTOS将操作系统(不管是FreeRTOS还是RTX等)屏蔽起来,然后提供CMSIS-RTOS接口函数给最终使用者调用。

如此以来,最终使用者只需要学习CMSIS-ROTS即可,从而降低学习门槛。(目前FreeRTOS和RTX能够很好的支持CMSIS-RTOS,其他有些RTOS还没有做适配)。

a5f4bd9c-d811-11ed-bfe3-dac502259ad0.png

CMSIS-RTOS 是实时操作系统的通用 API。它提供了标准化的编程接口,它只是封装了RTX/Embos,以后还可能封装μCOS、ThreadX等第三方RTOS。

就如开篇所说的,在STM32CubeMX配置FreeRTOS有一个CMSIS_V1和CMSIS_V2的选项:

a60450b8-d811-11ed-bfe3-dac502259ad0.png

同时,CMSIS-ROTS也对Keil的RTX作了很好的支持,如果你安装了Keil MDK,在CMSIS目录下,你会发现RTX的源码:

a61e7ed4-d811-11ed-bfe3-dac502259ad0.png

这里顺便说一下:RTX与μCOS、ThreadX等这些RTOS一样,同样免费开源(源码在CMSIS目录下,可以自己查看),遵循Apache2.0开源协议。

补充

CMSIS RTOS是ARM现在热推的物联网操作系统mbedOS的基础,搞懂这个RTOS API,更有利于从事RTOS底层、IC底层软件开发。

可移植到很多,RTOS,使软件模板、中间件、库及其它组件能工作于支持的 RTOS 系统(ST就针对FreeRTOS做了CMSIS-RTOS底层支持,所以,你会看到STM32CubeMX有CMSIS_V1和CMSIS_V2的选项)。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6809

    浏览量

    147636
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222157
  • Cortex
    +关注

    关注

    2

    文章

    194

    浏览量

    45743
  • CMSIS
    +关注

    关注

    0

    文章

    37

    浏览量

    11767
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118795

原文标题:CMSIS-RTOS是什么?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FTP SERVER不能正常启动的原因?

    XMC4500 上做了CAN和网络通信,CAN 只做接受,但数据量比较大,32ms 接收一次。FTP 主要是用作下载 CAN 通信数据。系统是CMSIS-RTOS,采用SD卡存储,CAN 和FTP
    发表于 02-19 08:32

    CMSIS-RTOS V1与V2的区别是什么?

    最近的学习FreeRTOS,看到STM32CubeMX分别用CMSIS-RTOS V1,V2进行封装,请教CMSIS-RTOS V1与V2的有什么区别?如果用在产品项目,哪个版本合适?
    发表于 04-11 06:06

    stm32cubemx 5.1.0版本生成的开启mpu的IAR工程编译报错的原因?

    今天升级了stm32cubemx 还有f4的软件包(STM32Cube_FW_F4_V1.24.0)此次升级改动较以往来说还是比较多的 freertos升级到10.0.1,cmsis-rtos升级到
    发表于 04-22 08:15

    【安富莱】RTX嵌入式操作系统教程发布,支持M3和M4系列,含54个配套例程

    ,RL-TCPnet和RL-FlashFS的应用教程。4. 关于MDK5中的CMSIS-RTOS RTX版本,等明年FreeRTOS教程发布后,统一搞加上了CMSIS-RTOS封装层的OS5. 此教程配套
    发表于 12-12 16:51

    FreeRTOS按耐不住,也加入MDK软件包大阵营

    转新消息说明:1. ARM也是能够倒腾,进入MDK5系列之后,为RTX系统增加了一个封装层CMSIS-RTOS,不过这个RTX还是基于RTX4.XX版本。最近的版本终于倒腾出来RTX5了,为其再次
    发表于 03-30 16:08

    STM32CubeIDE+FREERTOS的相关资料下载

    调用,需要细致研读代码才行。。。而且CMSIS_RTOS封装的功能并不全面,当需要实现复杂功能时,还是得直接调用FREERTOS的API。2. 想要使用通用的CMSIS_RTOS封装,需要研读其代码,CMSIS_V2的官方API
    发表于 02-09 07:57

    基于CUBEMX H750移植RTX5分析

    基于CUBEMX H750 移植 RTX5 使用AC6编译器参考文档:【安富莱】RTX5内核教程,采用CMSIS-RTOS V2封装层,已经更新发布至第6章 (2020-09-21)硬件
    发表于 02-15 06:38

    基于Arm Cortex-A的入门级处理器CMSIS介绍

    CMSIS 组件符合Arm 架构的应用程序二进制接口 (ABI)(CMSIS-RTOS v1 除外)。这确保了支持各种工具链之间互操作的 C API 接口。由于 CMSIS 定义了可扩展到各种处理器和设备
    发表于 04-22 09:25

    如何为stm32f217xx控制器启动rtos编程?

    。/*---------------------------------------------------------------------------- * CMSIS-RTOS 'main
    发表于 12-28 12:56

    请问osThreadSuspendAll() 的CMSIS-RTOS v2替代品是什么?

    尝试将我的代码移植到 CMSIS-RTOS v2 并遇到一些缺失的功能。我没有看到 osThreadSuspendAll() 替换。
    发表于 01-05 07:25

    创建一个RTX内核系统来完成CAN任务

    Development Ket) 中的 CMSIS-RTOSRTOS 和应用层提供了一个标准的 API, 包括 Keil free RTOS RTOS, RTX (实时自动X)
    发表于 08-22 07:19

    如何在RTX中使用ADC、 GPIO和USB鼠标

    (Microcontroller Development Ket) 的 CMSIS-RTOSRTOS 和应用层提供了一个标准的 API, 包括 Keil 免费 RTOS 、 RTX (实时自动X
    发表于 08-22 07:45

    如何通过多任务访问Keil RTX程序EEPROM

    MDK (Microcontroller Development Ket) 的 CMSIS-RTOSRTOS 和应用层提供了一个标准的 API, 包括 Keil 免费 RTOS 、 RTX (实时
    发表于 08-23 06:04

    将RTX迁移到CMSIS-RTOS

    CMSIS-RTOS API是基于Cortex-M处理器的设备的通用RTOS接口。 CMSIS-RTOS为需要RTOS功能的软件组件提供了标准化的API,因此给用户和软件行业带来了巨大
    发表于 09-04 06:37

    如何理解CMSIS-RTOS API和宏定义

    宏定义中的 instances 表示基于此任务参数,创建出几个任务实例,比如instances为2,则会创建出两个任务。
    的头像 发表于 08-26 11:54 2275次阅读
    如何理解<b class='flag-5'>CMSIS-RTOS</b> API和宏定义