前言
础光实时操作系统(Photon RTOS)是一个由国科础石研发,并且符合AUTOSAR CP R20-11规范的实时操作系统, 它用于车辆底盘控制,汽车状态监控等场景,现已开源。
目前已具有任务管理、多核启动、中断处理等众多功能,更多详情可点击链接 :https://gitee.com/kernelsoft/photon-rtos
今天这篇文章主要讲解如何从无到有,快速上手础光实时操作系统。
首先从口袋掏出电脑、显示器、鼠标、键盘~
-
环境搭建
工具 | 名字 | 建议版本 |
虚拟机 | VirtualBox | 7.0.6 |
VMware | 16.1.0 | |
Linux系统 | Ubuntu(建议) | 22.04 |
础光实时操作系统开发环境为Linux,作者目前采用的方法是VirtualBox 7.0.6+Ubuntu 22.04。当然,也可根据自己喜好与习惯进行选择。
虚拟机和Ubuntu的安装教程较多,这里就不过多阐述了。
-
准备工作
-
-
础光实时操作系统代码路径:https://gitee.com/kernelsoft/photon-rtos
-
Toolchains路径:https://gitee.com/kernelsoft/toolchains
-
1、拉取代码
# 创建目录用于存放代码
mkdir RTOS
# 进入目录
cd RTOS
# 拉取PhotonRTOS
git clone https://gitee.com/kernelsoft/photon-rtos.git
# 拉取toolchains
git clone --depth=1 https://gitee.com/kernelsoft/toolchains.git
Toolchains是国科础石基础软件开发编译器工具链,用于编译相关系统项目。
2、配置依赖工具
# 进入photon-rtos
cd photon-rtos
# 只有在配置时运行一次,后续开发无需再次运行
bash quickstart.sh devel
# 安装qemu
sudo apt install qemu-system-arm
quickstart.sh是常用脚本功能集合,可通过指令bash quickstart.sh usage 查看使用方法。
qemu 是一个支持跨平台虚拟化的虚拟机,有User mode和System mode两种模式,在system mode配置下能模拟出整个计算机。
接下来就能够编译和运行代码了。
-
编译与运行
目前础光实时操作系统支持3个平台,默认是使用的mps2_m3平台
架构(arch) | 平台(mach) |
arm | zynqmp_r5 |
mps2_m3 | |
tricore | tc397 |
1、生成.config文件
# 若使用的是默认的arm,mps2_m3平台,则直接输入
bash quickstart.sh defconfig
# 若是其他平台,如arm,zynqmp_r5平台,则需要指定ARCH和MACH:
ARCH=arm MACH=zynqmp_r5 bash quickstart.sh defconfig
2、编译、运行代码
# 若使用的是默认的arm,mps2_m3平台,则直接输入
bash quickstart.sh
# 若是其他平台,如arm,zynqmp_r5平台,则需要指定ARCH和MACH:
ARCH=arm MACH=zynqmp_r5 bash quickstart.sh
可看到系统在完成初始化后,自动运行各类单元测试,测试结束后关闭系统。
3、编译与运行总结
# 默认(arm, mps2_m3)平台:
bash quickstart.sh defconfig
bash quickstart.sh
# zynqmp_r5平台:
ARCH=arm MACH=zynqmp_r5 bash quickstart.sh defconfig
ARCH=arm MACH=zynqmp_r5 bash quickstart.sh
# mps2_m3平台:
ARCH=arm MACH=mps2_m3 bash quickstart.sh defconfig
ARCH=arm MACH=mps2_m3 bash quickstart.sh
-
调试支持
我们已经成功运行了础光实时操作系统,可以试着修改代码,然后通过gdb查看代码运行情况。
1、安装调试工具
sudo apt install gdb-multiarch
gdb-multiarch 是一个经过交叉编译后的、支持多架构版本的 gdb。
2、 调试
# 若使用的是默认的arm,mps2_m3平台,则直接输入
bash quickstart.sh gdb
# 若是其他平台,如arm,zynqmp_r5平台,则需要指定ARCH和MACH:
ARCH=arm MACH=zynqmp_r5 bash quickstart.sh gdb
新建一个终端,调试elf格式的内核:
gdb-multiarch ./photon
进入gdb后,连接到qemu:
target remote:1234
连接成功后,就可通过指令进行调试了。
通过以上内容,可以快速入门础光实时操作系统,欢迎大家感受它的魅力,同时也希望大家提出宝贵意见。