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

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

项目简介

本项目名为skibios,是一个基于C语言开发的小型实时操作系统(RTOS),属于兴趣项目。它能够运行在支持ARM Cortex M3/M4以及MPC57xx(Power architecture - e200)架构的任意微控制器上,但对MPC57xx的支持还不完全,部分集成工作仍在推进。

项目的主要特性和功能

  1. 预占式调度:具备带优先级反转处理的预占式调度器。
  2. 资源保护:利用MPU(若可用)保护内核资源(向量表、主堆栈、内核变量和堆标记)以及进程栈。
  3. 双层安全:提供基于MPU的硬件保护和软件定义的安全机制两层安全保障。
  4. 用户定制:有三个用户定义的MPU区域。
  5. 动态更新:支持在运行时更新ISR,且向量表受MPU保护。
  6. 堆管理:支持基于元数据的堆管理API。

安装使用步骤

假设已下载本项目的源码文件,可按以下步骤操作: 1. 配置参数:在param.xml文件中定义相关配置变量: - KERNEL_REGION_SIZE:定义内核区域可占用的总SRAM大小(单位:KB),支持的值有8、10、12、14、16、20、24、28、32、40、48、56、64。 - UPPER_REGION_SIZE:定义上内核区域(向量表 + 内核变量 + 主堆栈)的最大大小,支持的值有3、4、5。 - GHMB_REGION_SIZE:定义堆标记簿记区域的总大小(单位:KB),支持的值有1、2。 - PROCCESS_STACK_SIZE:定义每个用户进程的固定堆栈大小(单位:字节),支持的值有512、1024。 - PROCESS_PER_SECOND:定义调度器每秒的速度。 2. 编译生成文件:运行objgen文件夹中的start.py脚本生成目标文件,具体调用可参考Makefile。需定义BIN来定位arm - gcc二进制文件夹。 3. 排除文件(ARM):若使用ARM架构,需在arm - m3m4/scripts/arch_source.mak中注册以排除startup.c文件参与构建。 4. 启动代码(MPC57xx):若使用MPC57xx架构,需定义自己的启动代码,完成所有初始化后调用kernel_init。 5. 设备配置:tm4c1294ncpdt.xml包含设备特定的详细信息。 6. 部署运行:将生成的二进制文件部署到目标硬件上,启动硬件,RTOS将开始运行并管理多任务。

下载地址

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