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

【源码】基于C语言的树莓派简易裸机操作系统

项目简介

本项目旨在展示一个简单操作系统的工作原理以及其需要配置的不同部分。该操作系统可在树莓派Model A和Model B上运行,帮助开发者深入理解操作系统的核心组件,如线程管理、内存管理和中断处理等。

项目的主要特性和功能

  1. 线程管理:支持线程创建、上下文切换、进程调度(轮询算法),每个线程有独立栈,仅支持内核线程并运行在系统模式,支持定时器中断及一系列线程操作方法,具备空闲线程功能。
  2. 内存管理:实现内存分配器malloc.h和页分配器palloc.h,不支持内存管理单元(MMU)。
  3. 屏幕输出:通过HDMI实现屏幕支持,初始化帧缓冲,可输出ASCII字符并确保消息完整显示。
  4. GPIO支持:可通过LED实现输出功能。
  5. 同步机制:实现信号量、锁和条件变量。
  6. 中断处理:配置中断、定时器中断和软件中断。
  7. 调试与断言:实现内核调试和条件断言功能。
  8. 浮点运算支持:借助libgcc.a库支持模运算和除法运算。
  9. 多库支持:支持ctype.hstdio.h等多种常用库。

安装使用步骤

准备工作

  1. 安装yagarto工具链,从此处下载。安装前阅读yagarto的readme文件,并将arm-none-eabi配置到$PATH环境变量中。更多信息参考这里
  2. 准备树莓派项目提供的固件文件(bootcode.binstart.elfconfig.txt),这些文件可在backup-boot目录中找到。

编译与部署

  1. src目录下执行make命令,生成src/kernel.img文件。
  2. kernel.img文件复制到树莓派使用的SD卡中,SD卡根目录需包含bootcode.binconfig.txtkernel.imgstart.elf文件。

运行

将SD卡插入树莓派,连接电源,同时将HDMI端口连接到显示器,即可在显示器上看到线程的执行情况。

下载地址

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