本页介绍了用于 STMicroelectronics STM32 ARM Cortex-M3 微控制器的 FreeRTOS 演示应用程序。 演示使用用于 ARM 的 IAR 嵌入式工作台开发工具, 并且预配置为在 ST 的 STM32 评估板上运行(如您想使用其他开发板,请参阅说明)。 评估板配备有 STM32F103VB 微控制器, 该微控制器包含 128 KB 的板载闪存和 20 KB 的板载 RAM。 STM32F103VB 还包括 USB 和 CANbus 外设。 注意: 如果项目构建失败,可能是使用的 IAR 嵌入式工作台版本过低。 如果构建失败, 那么也可能是项目文件(在无提示的情况下)已经损坏,因此需要 将其恢复至初始状态,然后才能使用新版本的 IAR 构建项目。
重要提示!使用 STM32 ARM Cortex-M3 演示的注意事项使用此 RTOS 移植之前,请阅读以下所有要点。另请参阅常见问题:我的应用程序未运行,问题可能出在哪里? 源代码组织FreeRTOS 下载包含所有 FreeRTOS 移植的源代码,因此包含的文件比此演示所需的多得多。 请参阅源代码组织部分,获取 下载文件的描述和有关创建新项目的信息。STM32F103 演示的 IAR 工作区文件称为 RTOSDemo.eww,位于 FreeRTOS/Demo/CORTEX_STM32F103_IAR 目录中。
演示应用程序演示应用程序硬件设置演示应用程序包含受中断驱动的 UART 测试,其中一个任务传输字符,该字符随后由另一个任务接收。为确保该功能 的正常操作,必须将环回连接器安装到 STM32 评估板的 UART00 连接器 (引脚 2 和 3 必须在9 路连接器上连接在一起)。此演示应用程序使用了在原型板上构建的 LED 显示屏,因此无需使用其他硬件设置。 使用 J-Link USB JTAG 接口将主机与目标连接。
构建和运行演示应用程序
功能此演示应用程序创建了 24 个持久任务,并定期动态创建和销毁另外 4 个任务。 这些任务主要包括 标准演示应用程序任务(有关单个任务的详细信息,请参阅演示应用程序 部分)。除了标准演示任务外,还创建了以下任务和测试:
如果演示应用程序正确执行,其表现如下:
RTOS 配置和使用详情RTOS 移植专用配置这些演示的特定配置项目包含在 FreeRTOS/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h 中。 可根据 在本文件中定义的常量,以适配您的应用程序。 特别是-
注意:请记住 ARM Cortex-M3 核心使用低数值数字表示高 优先级中断,这似乎有悖直觉,而且很容易忘记! 如果您希望将中断分配为低优先级,请不要将中断的 优先级指定为 0(或其他较小数值),因为这可能会导致中断实际上在系统中具有最高优先级 - 因此,如果该优先级 高于 configMAX_SYSCALL_INTERRUPT_PRIORITY,则可能会导致系统崩溃。 ARM Cortex-M3 核心的最低优先级实际上是 255,然而,不同的 ARM Cortex-M3 供应商采用了不同数量的优先位, 并且提供了以不同方式指定优先级的库函数。 例如,在 STM32 上,您可以在 ST 驱动函数库调用中指定的最低优先级 实际上是 15 - 您可以指定的最高优先级是 0。 这是由 FreeRTOSConfig.h 中的常量 configLIBRARY_KERNEL_INTERRUPT_PRIORITY 定义的。 每个端口都#定义 'BaseType_t' 等于该处理器的最有效数据类型。 本移植将 BaseType_t 定义为长整型。 请注意,vPortEndScheduler() 尚未实现。 中断服务程序与大多数移植不同,导致上下文切换的中断服务程序没有特殊要求,可以根据编译器文档进行编写。 宏 portEND_SWITCHING_ISR() 可用于从 ISR 内请求上下文切换。请注意,portEND_SWITCHING_ISR() 将启用中断。 在抢占式和协同式 RTOS 内核之间切换将 FreeRTOS/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h 内的定义 configUSE_PREEMPTION 设置为 1 以使用抢占式内核或 设置为 0,以使用协同式内核。编译器选项与所有的端口一样,使用正确的编译器选项至关重要。 若要确保这一点, 最佳方法是基于提供的演示应用程序文件构建您的应用程序。内存分配Source/Portable/MemMang/heap_2.c 位于 ARM Cortex-M3 演示应用程序项目中, 用于提供 RTOS 内核所需的内存分配。 请参阅 API 文档的内存管理部分, 获取完整信息。Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|