项目简介
本项目是基于C++实现的裸机操作系统,专为Raspberry PI 3a+设计。旨在通过C++语言创建一个能在Raspberry PI 3a+上运行的简单操作系统。当前支持基本的硬件管理功能,如GPIO控制、图形渲染和系统定时器,后续计划扩展任务系统和中断处理等功能。
项目的主要特性和功能
- 多核系统启动和初始化:支持Raspberry PI 3a+的多核启动与初始化。
- GPIO管理:具备基本的GPIO输入输出控制功能。
- 图形管理:支持物理显示器的图形渲染以及PSF2字体的文本显示。
- 系统定时器:提供系统定时器计数功能,用于时间测量和延迟操作。
- 堆栈跟踪:可在QEMU模拟器中实现堆栈跟踪和崩溃信息输出。
- DMA与图形双缓冲:支持DMA和图形双缓冲功能(目前仅在QEMU中可用,硬件上存在崩溃问题)。
安装使用步骤
准备开发环境
- 在Windows上安装WSL(Windows Subsystem for Linux),并配置AArch64交叉编译环境。
- 安装QEMU模拟器以在Windows上进行模拟运行。
编译项目
使用提供的批处理脚本编译项目,生成kernel8.img
文件。
模拟运行
在Windows上使用QEMU模拟器运行生成的裸机镜像,通过运行./play.sh
脚本启动模拟器。
实际硬件部署
- 将生成的
kernel8.img
文件复制到SD卡的根目录。 - 确保SD卡上包含Raspberry PI 3a+所需的最小固件。
- 在SD卡上创建或修改
config.txt
文件,确保包含以下配置:kernel_old=1 disable_commandline_tags=1 disable_overscan=1 framebuffer_swap=0
- 将SD卡插入Raspberry PI 3a+并启动设备。
注意事项
- 项目当前版本在QEMU模拟器中运行正常,但在实际硬件上可能无法完全正常工作,建议在真实硬件上运行前充分测试。
- 因是裸机编程,C++的某些高级语言特性可能无法使用。
- 编译和部署过程需要一定的Linux和交叉编译环境配置知识。
- 在实际硬件上运行前,请确保硬件和固件版本与项目要求相匹配。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】