littlebot
Published on 2025-04-09 / 3 Visits
0

【源码】基于FreeRTOS的RISCV嵌入式系统任务通信与管理项目

项目简介

本项目是基于FreeRTOS的RISC-V嵌入式系统演示项目,主要围绕任务间通信与内存管理展开。通过队列实现数据传输,利用互斥信号量确保共享资源安全,避免读写冲突,同时具备动态内存分配和释放等内存管理能力。

项目的主要特性和功能

  1. 任务间通信:借助队列实现发送任务和接收任务之间的数据交互。
  2. 内存管理:支持动态内存分配和释放,还能获取空闲堆大小。
  3. 互斥信号量:用于保护共享资源的访问,防止数据混乱。
  4. 钩子函数:提供应用特定处理或调试功能,包括内存分配失败、空闲任务、栈溢出和系统滴答钩子函数。
  5. 演示程序:包含简单的blinky demo,可通过队列完成数据的发送和接收。

安装使用步骤

  1. 已下载项目源码文件后,确保已安装RISC-V工具链和编译环境。
  2. 依据项目中的Makefile或构建文件,使用RISC-V编译器进行项目构建:
    • 若手动构建,设置paths文件的实际路径后,执行make XLEN=64 DEBUG=1
  3. 按照项目中的启动脚本,使用RISC-V模拟器或硬件平台启动程序:
    • 硬件启动:执行./launch-sh/openocd_gdb_launch.sh ./build/RTOSDemo64.elf,在gdb界面输入continue,结束时按Ctrl+C,可使用dump memory /tmp/log (&_LOG_START_ADDRESS) (&_LOG_START_ADDRESS + 1000)导出内存日志。
    • Spike启动:执行./launch-sh/spike_openocd_gdb_launch.sh ./build/RTOSDemo64.elf,后续操作与硬件启动相同。
    • 在Visual Studio Code中,需在pathsc_cpp_properties.jsonlaunch.jsontasks.json文件中设置实际路径,使用Ctrl+Shift+B构建项目,按F5启动。
  4. 程序启动后,会自动创建并启动发送任务和接收任务,通过队列进行通信。
  5. 可使用Spike终端或其他调试工具观察任务输出和内存日志,查看内存日志可执行cat /tmp/log

注意:具体使用步骤可能因构建环境和硬件平台不同而有差异,本项目仅为示例,用户需根据自身环境适当调整。

下载地址

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