littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C语言的FreeRTOS与STM32 HAL集成项目

项目简介

本项目针对STM32F4 Nucleo开发板开展FreeRTOS移植工作。因项目创建时STM32CubeMX不支持最新版FreeRTOS,故手动完成移植。项目集成了FreeRTOS v10.2,同时采用C Unity作为测试框架,可进行单元测试与集成测试。

项目的主要特性和功能

  1. 实时操作系统支持:集成FreeRTOS v10.2,具备事件组、队列、协程、内存管理、任务管理和计时器等功能,可构建实时操作系统。
  2. 测试功能:运用C Unity测试框架,支持单元测试和集成测试,能在GDB客户端控制台查看详细测试报告。
  3. 调试功能:支持以OpenOCD作为调试服务器,gdb - multiarch作为调试客户端,可设置断点和观察点。

安装使用步骤

前提条件

假设用户已下载本项目的源码文件,且已安装以下工具: - STM32F446RE Nucleo开发板 - FreeRTOS v10.2 - C Unity测试框架 - GCC工具链 arm - none - eabi - gcc v5.4.1 20160919 (release) - OpenOCD v0.10.0 - GDB gdb - multiarch v7.7.1

构建和运行测试

  1. 运行单元测试:在项目根目录下执行 make UNIT_TEST=yes 构建用于单元测试的镜像。
  2. 运行集成测试:在项目根目录下执行 make INTEGRATION_TEST=yes 构建用于集成测试的镜像。
  3. 清理构建文件:在项目根目录下执行 make clean 清理已构建的镜像。

调试步骤

  1. 启动调试服务器:在项目根目录下执行 make dbg_server OPENOCD_HOME=/PATH/TO/YOUR_OPENOCD 启动OpenOCD调试服务器。注意,运行OpenOCD可能需要超级用户权限。
  2. 启动调试客户端:
    • 打开 ./test_utility.gdb 文件,将第73行的 file <YOUR_PATH_TO_TEST_IMAGE> 修改为实际的测试镜像路径。
    • 在项目根目录下执行 make dbg_client 启动GDB客户端,可进行镜像加载、断点和观察点设置等操作。

查看测试报告

在GDB客户端控制台输入 report_test_result 命令,即可查看测试结果,包括运行的测试用例数量和失败的测试用例数量。若有测试失败,报告还会显示断言失败的位置。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】