CUBE中CMSIS_V1和CMSIS_V2选项的区别

本文介绍了在使用Cube创建FreeRTOS时遇到的CMSIS_V1和CMSIS_V2选项的区别。CMSIS RTOS v1适用于Keil RTXv4.x,与系统和线程查看器兼容;而CMSIS RTOS v2则与组件查看器配套,适用于Keil RTXv5及更新版本,便于软件组件操作分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.起因:

在用Cube创建FreeRtos有CMSIS_V1和CMSIS_V2选项,不知道有什么区别
https://img-blog.csdnimg.cn/8df3c9c488174f83b9ed2e0bbd104672.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Wk54Kt55qE5aWH5aaZ5ryC5rWB,size_20,color_FFFFFF,t_70,g_se,x_16]
)

二.答案:

不同选项在MDK调试中起到不同作用:

  1. CMSIS RTOS v1 :系统和线程查看器

系统和线程查看器仅支持基于 CMSIS RTOS v1 的旧版 Keil RTXv4.x(仅支持 Keil RTX 4.82 或更早版本)。

在这里插入图片描述

如果你使用 Keil RTXv4.x 的项目使用 ARM V6.x 编译器工具链编译的,需要遵循“系统和线程查看器”为空。

有关 Keil RTX 5 的类似信息,可以使用“组件查看器”。

  1. CMSIS RTOS v2:组件查看器

与上面第5点对应,组件查看器仅支

### 使用REOS在STM32CubeIDE中的配置 在讨论如何于STM32CubeIDE中使用REOS前,需澄清可能存在误解之处——通常提及的是FreeRTOS而非REOS。假设意图在于探讨FreeRTOS的集成与配置,则以下信息适用。 当在STM32CubeIDE内配置FreeRTOS中间件时,存在三种不同的接口选项可供选择:`Disable`、`CMSIS_V1` `CMSIS_V2`[^1]。这些选项决定了应用程序将采用何种方式来调用操作系统服务: - **Disable**: 此设置意味着不启用任何特定版本的CMSIS-RTOS API;即项目不会链接至任一形式的CMSIS-RTOS实现,仅限于直接操作FreeRTOS提供的API。 - **CMSIS_V1**: 启用了基于旧版CMSIS-RTOS标准的第一代API集。此模式下编译器会引入兼容早期CMSIS RTOS规范的一系列宏定义及头文件支持,允许开发者利用一组标准化的方法访问实时调度功能。 - **CMSIS_V2**: 这是最新的选择,它实现了更新后的CMSIS-RTOS V2规格。相较于V1而言,V2提供了改进过的抽象层次以及更丰富的特性集合,旨在简化多核处理器上的编程模型并增强跨平台可移植性。 对于希望快速上手或迁移现有代码的情况来说,默认情况下推荐选用`CMSIS_V2`作为首选项,除非有特殊理由需要保持向后兼容性或是针对某些具体硬件特性的需求而不得不依赖较早的标准版本。 一旦选择了合适的接口类型之后,在实际编写程序期间应当遵循所选API风格对应的文档指南来进行线程管理、同步机制构建等工作。例如创建新任务可以借助如下所示的方式完成(这里假定已经启用了`CMSIS_V2`): ```c osThreadAttr_t attr; attr.name = "myTask"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = 128 * 4; // Stack size in bytes attr.priority = osPriorityNormal; // Create the thread according to attribute definitions & assign a function. osThreadId_t tid = osThreadNew((os_pthread)taskFunction, NULL, &attr); if(tid != NULL){ // Thread creation successful... } ``` 上述代码片段展示了通过指定属性结构体参数化新建一个名为`myTask`的任务实例的过程,并指定了堆栈大小其他初始化细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值