前言
础光实时操作系统(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# 拉取PhotonRTOSgit clone https://gitee.com/kernelsoft/photon-rtos.git# 拉取toolchainsgit clone --depth=1 https://gitee.com/kernelsoft/toolchains.git
Toolchains是国科础石基础软件开发编译器工具链,用于编译相关系统项目。
2、配置依赖工具
# 进入photon-rtoscd photon-rtos# 只有在配置时运行一次,后续开发无需再次运行bash quickstart.sh devel# 安装qemusudo 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 defconfigbash quickstart.sh# zynqmp_r5平台:ARCH=arm MACH=zynqmp_r5 bash quickstart.sh defconfigARCH=arm MACH=zynqmp_r5 bash quickstart.sh# mps2_m3平台:ARCH=arm MACH=mps2_m3 bash quickstart.sh defconfigARCH=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
连接成功后,就可通过指令进行调试了。
通过以上内容,可以快速入门础光实时操作系统,欢迎大家感受它的魅力,同时也希望大家提出宝贵意见。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70020053/viewspace-3021237/ ,如需转载,请注明出处,否则将追究法律责任。