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

【源码】基于C语言的基本实时操作系统BMOS

项目简介

BMOS是一个基础的实时操作系统(RTOS)内核,提供抢占式任务切换、不同的任务优先级以及用于同步的信号量。项目包含专为STM324L433RC设计的特定驱动程序,可与RTOS内核配合使用。该内核专为嵌入式系统开发者打造,旨在简化多任务编程和硬件驱动开发。

项目的主要特性和功能

  1. 任务调度:支持基于任务优先级的调度,运行中的任务可显式让出控制权。若启用抢占,高优先级就绪任务会抢占低优先级任务,否则为协作式多任务。
  2. 同步机制:支持计数和二进制信号量,p()操作可提供超时参数。
  3. 任务栈管理:支持静态和动态分配任务栈,通过栈末尾的填充区实现任务栈保护,并在空闲任务中进行栈溢出检查。
  4. 设备驱动:包含针对STM32L433RC的UART、GPIO、SWO/Semihost、时钟驱动,部分驱动可在RTOS未启动时运行,且UART驱动为全中断驱动。
  5. 实用工具:有静态分配的环形缓冲区、列表实现和日志子系统,避免动态分配,方便调试。

安装使用步骤

环境准备

确保已安装以下依赖: - arm-none-eabi-gcc - arm-none-ebai-newlib - openocd

配置

编辑demo/Makefile,使其反映工具链的根目录、openocd二进制文件的路径以及开发板脚本文件的路径。

编译和烧录

  1. 进入demo目录。
  2. 运行make flash命令进行编译并将程序烧录到开发板。若要创建禁用日志的发布版本,可运行make release。编译文件将输出到build目录。

查看日志

可通过编辑config.h文件选择使用SWO或Semihosting查看日志。也可使用调试工具配置SWO,或切换日志系统到Semihosting。若要启用通过LPUART1设备(通过UART转USB转换器暴露)进行日志记录,需注意在演示应用中LPUART1设备已被应用本身使用。

下载地址

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