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

【源码】基于ARMv8 AArch64的Raspberry Pi 64位实时操作系统

项目简介

本项目是针对Raspberry Pi 3的64位模式(ARMv8 AArch64)开发的实时操作系统(RTOS),基于TOPPERS/FMP内核进行移植。系统支持多核操作,可在Raspberry Pi 3的4核处理器上运行,启用了缓存和MMU(内存管理单元)。系统在EL3启动,于EL1NS下运行内核,通过软件模拟实现中断优先级功能。此外,项目支持QEMU模拟器,便于无实际硬件时开发调试。

项目的主要特性和功能

  • 多核支持:可在Raspberry Pi 3的4核处理器上运行。
  • 缓存和MMU启用:提升系统运行效率。
  • 中断优先级模拟:通过软件模拟实现中断优先级功能。
  • QEMU支持:支持在QEMU模拟器上运行,方便开发调试。
  • 调试工具:提供二进制加载工具,支持通过USB - 串口通信将内核加载到Raspberry Pi上运行。

安装使用步骤

1. 开发环境搭建

1.1 编译器安装

Linaro下载ARMv8 AArch64的编译器(如gcc - linaro - 6.3.1 - 2017.02 - xxx_aarch64 - elf),解压后将其路径添加到系统环境变量。

1.2 配置工具安装

TOPPERS官网下载配置工具,解压后放于项目目录的cfg/cfg文件夹。

1.3 其他工具安装

确保系统安装makeperlgitgcc - coregcc - g++

2. 项目构建

bash cd RPi64Toppers/fmp mkdir -p cfg/cfg mv <配置工具解压目录>/cfg cfg/cfg chmod 755 cfg/cfg/cfg mkdir build cd build perl ../configure -T rpi_arm64_gcc make fmp.bin

3. 在Raspberry Pi上运行

3.1 SD卡准备

将FAT32格式化的SD卡插入电脑,把项目中的RPi64Toppers/fmp/targets/rpi_arm64_gcc/config.txt和构建生成的fmp.bin复制到SD卡根目录。

3.2 串口连接

将Raspberry Pi的GPIO14(TXD1)、GPIO15(RXD1)和Ground分别连接到USB - 串口转换器的RXD、TXD和Ground引脚,用终端应用程序(如Tera Term或GTKTerm)打开串口连接,波特率设为115200bps。

3.3 启动系统

将SD卡插入Raspberry Pi并接通电源,系统启动并输出日志到串口终端。

4. 在QEMU上运行

4.1 QEMU安装

bash git clone git://git.qemu.org/qemu.git cd qemu git submodule init git submodule update --recursive cd .. mkdir qemu_build cd qemu_build ../qemu/configure --prefix=~/opt/qemu --target-list=aarch64 - softmmu make make install~/opt/qemu/bin添加到系统环境变量。

4.2 启动QEMU

bash qemu-system - aarch64 -M raspi3 -m 256 -serial null -serial mon:stdio -kernel fmp -nographic -smp 4Ctrl - a,再按x退出QEMU。

5. 调试工具使用

项目提供的二进制加载工具支持通过USB - 串口通信将内核加载到Raspberry Pi上运行,具体使用方法参考项目中的loader目录。

下载地址

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