Keil RTX 版本 5(RTX5)实现 CMSIS-RTOS2 作为基于 Arm Cortex-M 处理器的设备的本地 RTOS 接口。提供了到 CMSIS-RTOS API v1 的翻译层。因此,RTX5 可以用于先前基于 RTX 版本 4 和 CMSIS-RTOS 版本 1 的应用程序,而且花费最少。
以下各节提供了更多详细信息:
- 创建一个 RTX5 项目 介绍如何在 Keil MDK 中设置 RTX v5 项目。
- 操作理论 提供有关 CMSIS-RTOS RTX v5 操作的一般信息。
- 配置 RTX v5 描述了 CMSIS-RTOS RTX v5 的配置参数。
- 构建 RTX5 库 解释如何构建您自己的 CMSIS-RTOS RTX v5 库。
- 目录结构和文件概述 解释作为 CMSIS-RTOS RTX v5 的一部分提供的目录和文件。
- 技术数据 列出了微控制器的硬件要求和限制,例如并发线程的数量。
- MISRA C:2012 规范 描述了违反 MISRA 标准的情况。
使用 RTX5 创建微控制器应用程序的步骤如下:
- 创建一个新项目并选择一个微控制器设备。
-
在 Manage Run-Time Environment 窗口中,选择 CMSIS::CORE 和 CMSIS::RTOS2 (API)::Keil RTX5。您可以选择将 RTX 添加为库(Variant:Library)或添加完整的源代码(Variant:Source - 如果使用事件记录器,则为必需的):
- 如果验证输出需要其他组件,请尝试使用 “解决” 按钮。
-
点击确定。在 Project 窗口中,您将看到已经自动添加到项目中的文件,例如 RTX_Config.h,RTX_Config.c,库或源代码文件以及系统和启动文件:
- 如果使用 Variant:Source 作为上面的 Statet,则必须确保至少使用 C99 编译器模式(项目选项 -> C/C++ -> C99 模式)。
-
您可以通过右键单击 Source Group 1 并选择 Add New Item to 'Source Group 1' 来将模板文件添加到项目中。在新窗口中,点击用户代码模板。在右侧,您将看到 CMSIS-RTOS RTX 的所有可用模板文件:
- 使用 RTX_Config.h 文件将 RTX5 配置为应用程序的需求。
Cortex-A 上 RTX 的附加要求
与 M 级设备相比,基于 Cortex-A 的微控制器在中断和定时器实现方面的统一性较差。因此,RTX 在使用 A 级设备时需要额外的组件,即 IRQ Controller(API)和 OS Tick(API)实现。
与 CMSIS 一起提供的默认实现是
- Arm Generic Interrupt Controller (GIC)
- Arm Cortex-A5, Cortex-A9 Private Timer (PTIM)
- Arm Cortex-A7 Generic Physical Timer (GTIM)
对于未实现 GIC,PTIM 和 GTIM 的设备,请参阅相应的设备系列包并选择适当的实现。
添加对 RTX 特定功能的支持
如果您在应用程序代码中需要某些 RTX 特定功能,请包括头文件 rtx_os.h 。这使低功耗和无滴答的操作模式成为可能。
添加事件记录器可见性
- 要将事件记录器与 RTX5 一起使用,请选择软件组件 Compiler:Event Recorder 。
-
选择软件组件的源码版本 CMSIS::RTOS2 (API): Keil RTX5 。
- 在应用程序代码中调用函数 EventRecorderInitialize()(理想情况下在 main()中)。
- 构建应用程序代码并将其下载到调试硬件。
目标应用程序生成事件信息后,可以使用事件记录器在 μVision 调试器中查看它。