在STM32CubeIDE中配置FreeRTOS中间层时需要选择interface,其中有三个选项:Disable、CMSIS_V1和CMSIS_V2,在之前的学习过程中我只移植过FreeRTOS的源码,并没用使用过CMSIS-RTOS接口,因此我在网上搜集了资料,凭借自己的理解再次记录。

CubeIDE FreeRTOS配置界面

CMSIS

ARM官方定义:

English:
The CMSIS is a vendor-independent hardware abstraction layer for microcontrollers that are based on Arm® Cortex® processors. The CMSIS defines generic tool interfaces and enables consistent device support. It provides simple software interfaces to the processor and the peripherals, simplifying software re-use, reducing the learning curve for microcontroller developers, and reducing the time to market for new devices.
The CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. The CMSIS is intended to enable the combination of software components from multiple middleware vendors.
中文:
Cortex微控制器软件接口标准(CMSIS)是独立于供应商的硬件抽象层,用于基于Arm Cortex处理器的微控制器。 CMSIS定义了通用工具接口,并提供一致的设备支持。 CMSIS软件接口简化了软件重用,减少了微控制器开发人员的学习时间,并缩短了新设备的上市时间。
CMSIS提供了到处理器和外围设备,实时操作系统以及中间件组件的接口。 CMSIS包括用于设备,板卡和软件的交付机制,并允许来自多个供应商的软件组件的组合。

从ARM官方提供的说明可以看出,CMSIS是一种接口标准,目的是屏蔽软硬件差异以提高软件的兼容性。

在ARM提供的部件列表中我们可以看到RTOS v1以及RTOS v2两个有关RTOS的部件。

RTOS v1:
Common API for real-time operating systems along with a reference implementation based on RTX. It enables software components that can work across multiple RTOS systems.
RTOS v2
Extends CMSIS-RTOS v1 with Armv8-M support, dynamic object creation, provisions for multi-core systems, binary compatible interface.

其描述已经很清楚:RTOS v1使得软件能够在不同的实时操作系统下运行(屏蔽不同RTOS提供的API的差别),而RTOS v2则是拓展了RTOS v1,兼容更多的CPU架构和实时操作系统。

因此我们在使用时可以根据实际情况选择,如果学习过程中使用STM32F1、F4等单片机时没必要选择RTOS v2,更高的兼容性背后时更加冗余的代码,理解起来比较困难;如果选择Disable则使用RTOS厂商提供的API,CubeIDE将不会提供图形化配置服务。

STM32CubeIDE(十一):FreeRTOS选项中Disable、CMSIS_V1和CMSIS_V2的区别相关推荐

  1. (十一)C语言中内存堆和栈的区别

    在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到.但对于很多的初学着来说,堆栈是一个很模糊的概念. 堆栈:一种数据结构.一个在程序运行时用于存放的地方,这可能是很多初学者的认 ...

  2. STM32CUBEIDE配置FreeRTOS

    环境:STM32CUBEIDE 版本1.02 STM32103C8T6最小系统板 F1,1.8.0 版本固件包 新建工程,选择芯片,不多做赘述 RCC中选择时钟源为 Crytal/Ceramic Re ...

  3. 在Amazon FreeRTOS V10中使用运行时统计信息

    在MCU on Eclipse网站上看到Erich Styger在8月2日发的博文,一篇关于在Amazon FreeRTOS V10中使用运行时统计信息的文章,本人觉得很有启发,特将其翻译过来以备参考 ...

  4. ROS学习笔记十一:ROS中数据的记录与重放

    ROS学习笔记十一:ROS中数据的记录与重放 本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况.本例子还是以小海龟例程为例. 记录 ...

  5. 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...

    关于Python程序中与"缩进"有关的说法中,以下选项中正确的是() 答:缩进在程序中长度统一且强制使用 同文学或同音乐主题的民歌,<_______>是其中之一.此曲经 ...

  6. VS2010中“工具选项中的VC++目录编辑功能已被否决”解决方法

    http://blog.csdn.net/chaijunkun/article/details/6658923 这是VS2010的改变,不能够在"工具-选项"中看到"VC ...

  7. Android列表控件选项中添加进度框ProgressBar实现

        今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...

  8. RIPv2相对于RIPv1来说主要有3方面的改进。下面的选项中,RIPv2的特点不包括【两个题】

    RIPv2相对于RIPv1来说主要有3方面的改进.下面的选项中,RIPv2的特点不包括______.C A.使用组播而不是广播来传播路由更新报文 B.采用了触发更新机制来加速路由收敛 C.支持动态网络 ...

  9. a_2可以用作python标识符嘛,【单选题】下列选项中,可作为Python标识符的是哪项? A. getpath() B. throw C. my#var D. _ My_price...

    [单选题]下列选项中,可作为Python标识符的是哪项? A. getpath() B. throw C. my#var D. _ My_price 更多相关问题 已知函数f(x)=2x2x-1+21 ...

最新文章

  1. 比特币现金社区推出OP_RETURN的4字节前缀指南
  2. 最近使用的两个工具 winscp和xshell
  3. 小程序-demo:小程序示例-page/component
  4. mongodb创建用户
  5. 使用Nginx实现反向代理 - 不同的子域名映射到不同的后台地址
  6. delphi7下调用微软的Web Services的心得
  7. form表单ajax提交 ac,請求Ajax 帶返回值的通用方法, 自動獲取頁面控件值(form表單post方法提交 ),自動給控件賦值...
  8. linux下drcom无法上网,drcom为什么还是不能上网啊!
  9. github初学者指南_GitHub初学者指南
  10. 如何让Python网络请求不走系统代*理*
  11. 技术人员如何创业《一》- 产品及想法
  12. Scala学习(一):Scala简介与Hello World!
  13. Julia: wsl ubuntu下安装、vscode及配置profile错误补正
  14. 【图像分割】基于matlab分水岭算法图像分割【含Matlab源码 390期】
  15. SQL 删除重复数据,只保留一行
  16. 基于深度学习的超大面积室内导航机器人Java后台软件设计
  17. 最好用的卸载软件工具(Your Uninstaller! PRO)
  18. 搜索引擎广告和信息流广告有什么区别?
  19. 每日一道算法题 拿金币(蓝桥杯练习系统)简单的dp算法
  20. 群晖中安装Firefly记账软件,使用安卓客户端登录

热门文章

  1. 09含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
  2. siesta在Linux运行,Siesta编译没有报错,但是一运行就出问题 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  3. 应用层常见协议——知识点
  4. PDM系统在饲料工程设计中的应用
  5. 2021年Web开发的7大趋势
  6. 在做微信分享发送红包时思路
  7. 多功能英文小说阅读器
  8. 北京、上海家庭年收入情况统计 (zz)
  9. linux通过Squid代理上网
  10. 四种单源最短路径算法