Keil 环境中建立带 FreeRTOS 的 STM32L 项目
Keil 环境中建立带 FreeRTOS 的 STM32L 项目是嵌入式系统开发中的一种常见应用。FreeRTOS 是一个小巧、可靠、可移植的实时操作系统,可以应用于各种微控制器和嵌入式系统。STM32L 是 STMicroelectronics 公司推出的一个低功耗微控制器系列,广泛应用于物联网、工业自动化、医疗器械等领域。
本文将指导读者在 Keil 环境中建立带 FreeRTOS 的 STM32L 项目,涵盖项目结构、文件添加、配置文件修改、启动文件修改等多个方面。
1. 项目结构
在 Keil 环境中建立带 FreeRTOS 的 STM32L 项目需要首先创建一个项目文件夹,并将 source 文件夹复制至项目目录下。然后,在 Keil 中添加 RTOS 文件,如图所示:
在添加 RTOS 文件时,需要选择 heap_2.c 文件,可以根据需要选择其他 heap 文件,例如 heap_1.c 等。如果需要使用协程型任务,则需要添加 croutine.c 文件。
2. 添加 include 目录
在 Keil 环境中,需要添加 include 目录,位于 source 文件夹下的 include 文件夹中。这个文件夹包含了 FreeRTOS 的头文件和其他配置文件。
3. FreeRTOSConfig.h 文件
FreeRTOSConfig.h 文件是 FreeRTOS 的功能配置文件,需要将其复制到 source 文件夹下的 include 文件夹中,或者其他用户文件夹下。这个文件需要根据需要进行修改,可以配置 FreeRTOS 的各种参数,如任务优先级、堆栈大小、时钟频率等。
4. PORTMACRO.H 文件
PORTMACRO.H 文件是 FreeRTOS 的移植文件,需要将其添加到 include 路径中,以便连接到 portmacro.h 文件。同时,需要修改 PORTMACRO.H 文件,以适应 STM32L 微控制器。
5. port.c 文件
port.c 文件是 FreeRTOS 的移植文件,基本不需要修改,其中包含了 FreeRTOS 对于 STM32L 微控制器的移植实现。
6. PORTASM.S 文件
PORTASM.S 文件是在 Keil 环境中不需要的,因为相关的函数已经被移到 port.c 文件中。
7. 修改 startup 文件
startup 文件需要根据需要进行修改,选择对应的芯片文件,并且需要先取消其只读属性。修改后,需要在 "__heap_limit" 下面,"PRESERVE8" 前面加入以下内容:
IMPORT xPortPendSVHandler
IMPORT xPortSysTickHandler
IMPORT vPortSVCHandler
8. 修改 PORTMACRO.H 文件
在 PORTMACRO.H 文件中,需要将 configCPU_CLOCK_HZ 修改为对应的频率值,单位是 Hz。对于 STM32L 微控制器,可以将其设置为 32000000。
通过以上步骤,可以成功地在 Keil 环境中建立带 FreeRTOS 的 STM32L 项目。这个项目可以作为物联网、工业自动化、医疗器械等领域的基础,帮助开发者快速开发基于 STM32L 的嵌入式系统。