《recan-2024GTC-基于Arm虚拟硬件平台移植RT-Thread操作系统.pdf》由会员分享,可在线阅读,更多相关《recan-2024GTC-基于Arm虚拟硬件平台移植RT-Thread操作系统.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、基于 Arm 虚拟硬件移植 RT-Thread 操作系统RT-Thread社区技术专家、架构师李肯关于我(架构师李肯,关于我(架构师李肯,RecanRecan)扎根嵌入式领域10年,一个专注于嵌入式物联网架构设计架构设计的攻城师 热爱分享热爱分享、沉迷技术专研,善于挖掘微小技术点的核心底层逻辑 2023年度RT-Thread社区优秀布道者优秀布道者、CSDN资深嵌入式领域博客专博客专家家、CSDN深圳深圳COCCOC城市开发者社区城市开发者社区主理人 技术自媒体、微信公众号李肯陪你玩赚嵌入式李肯陪你玩赚嵌入式主理人 致敬未来的攻城狮计划致敬未来的攻城狮计划发起者和践行者 核心技术栈能力:嵌入式
2、架构设计、编译构建、性能优化及代码重构、嵌入式架构设计、编译构建、性能优化及代码重构、网络通讯、无线网络协议、物联网协议、网络通讯、无线网络协议、物联网协议、RTOSRTOS内核移植及驱动开发内核移植及驱动开发技术改变命运技术改变命运科技改变世界科技改变世界目录目录如何基于如何基于 Arm Arm 虚拟硬件移植虚拟硬件移植 RTRT-Thread Thread 操作系统?操作系统?移植心得体会分享移植心得体会分享Demo Demo 演示演示Arm Arm 虚拟硬件的重要特性虚拟硬件的重要特性什么是什么是 ArmArm 的虚拟硬件?的虚拟硬件?什么是什么是 Arm Arm 虚拟硬件?虚拟硬件?A
3、rm 虚拟硬件(Arm Virtual HardwareArm Virtual Hardware)提供了一个 Ubuntu Linux 镜像,包括用于物联网、机器学习和嵌入式应用程序的 Arm 开发工具:例如,Arm 编译器、FVP 模型和其他针对 Cortex-M 系列处理器的开发工具帮助开发者快速入门。Arm 虚拟硬件限时免费提供用于评估用途,例如,评估 CI/CD、MLOps 和 DevOps 工作流中的自动化测试工作流等。UbuntuUbuntu、LinuxLinux 集成开发工具集成开发工具 快速入门快速入门 限时免费限时免费 官方授权官方授权Arm Arm 虚拟硬件的架构图虚拟硬件
4、的架构图 软件开发流程支持(Develop Worflows)开发者资源(AVH Developer Resources)云原生部署和开发工具集成(AVH Integrations)虚拟模拟模型(AVH Models FVPs)ArmArm 虚拟硬件的重要特点虚拟硬件的重要特点与与 QEMUQEMU 的对比的对比特点特点 类别类别AVHQEMU新新支持最新的诸如Cortex-M85,Ethos-U 系列 NPU相对支持的CPU会比较旧,无法体验最新的多多支持多达16种FVPs,基本覆盖Arm Cortex-M系列达不到这么多的模拟芯片的模拟虚虚硬件级的精准虚拟模拟模型,专注于提供与实际硬件相同
5、的行为和性能模拟精度较差,尤其在硬件层面更明显,更适用于软件侧模拟有关有关 Arm Arm 虚拟硬件平台的参考资料虚拟硬件平台的参考资料 Arm 虚拟硬件产品简介 Arm 虚拟硬件帮助文档 Arm 虚拟硬件开发者资源(开源代码)【中文技术指南】Arm 虚拟硬件实践专题一:产品订阅指南(百度智能云版)【中文技术指南】Arm 虚拟硬件实践专题二:Arm 虚拟硬件 FVP 模型入门指南【中文视频直播课】加速AI开发,1小时快速入门Arm虚拟硬件 李肯联合 Arm&CSDN 推出 基于Arm 虚拟硬件的【Arm AI 开发体验创造营】实验手册RTRT-ThreadThread的核心软件架构图的核心软件
6、架构图 CPU架构层:多种架构兼容 硬实时内核层:操作系统的核心能力 组件与服务层:高内聚、低耦合 软件包层:多样化发生RTRT-ThreadThread对应的源代码目录结构对应的源代码目录结构RTRT-ThreadThread的的“软软”架构和架构和“硬硬”架构架构“硬硬”架构架构“软软”架构架构bspCPU架构层components组件与服务层documentation其他(文档)examples其他(范例)include硬实时内核层libcpuCPU架构层src硬实时内核层tools其他(工具)RTRT-ThreadThread操作系统的移植操作系统的移植内核移植内核移植=CPU 架构移
7、植架构移植+BSP 移植移植 RTRT-ThreadThread操作系统的移植操作系统的移植CPU 架构移植架构移植 RTRT-ThreadThread操作系统的移植操作系统的移植BSP 移植移植 基于基于 Arm Arm 虚拟硬件移植虚拟硬件移植 RTRT-ThreadThread1.获取最新的 RT-Thread 工程源码2.基于 Arm 虚拟硬件搭建一个能跑通裸机基础功能(能开机打印hello world)的工程3.新建一个bsp目录,例如 bsp/arm/AVH-FVP_MPS2_Cortex-M7,把step2的基础工程放到这个bsp目录4.寻找一个RT-Thread的配置模版,可直
8、接从 bsp/qemu-vexpress-a9 拷贝一个rtconfig.h5.尝试编译构建qemu-vexpress-a9,找出除bsp层和libcpu层外的所有参与编译的文件列表6.将step5的文件列表添加到bsp目录的工程文件中,并加上bsp相关实现文件和libpcu的相关文件(这个使用的是Cortex-M7),以及增加一些头文件检索目录,必要时加入一些宏定义7.实现bsp中的相关接口,例如系统tick定时器的初始化、console串口的初始化等操作8.重新构建工程,理论上理论上,跑在 Arm 硬件平台的 axf 文件就可以生成了!基于基于 Arm Arm 虚拟硬件的编译构建虚拟硬件的
9、编译构建cbuildcbuildcbuild:open-CMSIS-Pack 构建调用工具此工具允许嵌入式开发者通过协调以下工具来构建CPRJ和csolution项目:cbuildgencsolutioncpackgetcmakeninja默认情况下,cbuild预期输入一个完全配置好的解决方案(.csolution.yml)或上下文(.cprj)工程文件。参考链接:https:/ cbuild cbuild 编译构建的编译构建的cprjcprj工程文件工程文件项目描述(*.cprj)文件格式CMSIS项目描述格式统一了构建软件项目的规范。它是一个公共格式,用于在支持基于CMSIS-Pack的
10、运行时环境的工具之间交换项目构建信息。此外,该格式还促进了从部分项目构建项目,称为项目“层”的工具驱动构建。项目描述旨在生成单个可执行文件或库文件。它是一个以 xml 格式为组成部分的文本配置文件。用于输入给 cbuild 构建工具。参考链接:https:/open-cmsis-pack.github.io/devtools/buildmgr/latest/cprjFormat_pg.htmlcprjcprj工程文件示例工程文件示例libcpulibcpu的适配移植:基本操作的适配移植:基本操作BSPBSP的适配移植:基本操作的适配移植:基本操作BSPBSP的适配移植:有点东西的适配移植:有点
11、东西B BSPSP的适配移植:真有那么顺利吗?的适配移植:真有那么顺利吗?B BSPSP的适配移植:尴尬了?的适配移植:尴尬了?串口串口/stdio/stdio的重定向:问题出在哪里?的重定向:问题出在哪里?参考链接:semihosting简介 AVH-UART配置参数简介ArmArm 虚拟硬件的虚拟接口虚拟硬件的虚拟接口参考链接:Arm 虚拟接口的官方介绍串口串口/stdio/stdio的重定向:巧妙实现的重定向:巧妙实现串口串口/stdio/stdio的重定向:巧妙实现的重定向:巧妙实现串口串口/stdio/stdio的重定向:巧妙实现的重定向:巧妙实现移植成功:简单展示移植成功:简单展示
12、移植成功:简单展示移植成功:简单展示移植成功:简单展示移植成功:简单展示移植的心得体会分享移植的心得体会分享 独乐乐,不如众乐乐!纸上得来终觉浅,绝知此事要躬行!先从“小事”做起!善用你的“知识库”,把问题问好!保持空杯心态!Arm Arm 虚拟硬件在虚拟硬件在RTRT-ThreadThread上的展望上的展望 开发和测试开发和测试:在:在AVHAVH环境中编译和运行环境中编译和运行RT-ThreadRT-Thread,确保其在,确保其在ArmArm架构上的正确性和性能。架构上的正确性和性能。CI/CDCI/CD集成集成:AVHAVH可以集成到持续集成可以集成到持续集成/持续交付(持续交付(C
13、I/CDCI/CD)流程中,提高开发效率。)流程中,提高开发效率。性能评估性能评估:使用:使用AVHAVH进行性能评估和基准测试,评估不同进行性能评估和基准测试,评估不同ArmArm虚拟硬件配置下的性能表现。虚拟硬件配置下的性能表现。物联网应用开发物联网应用开发:AVHAVH可以与可以与RT-ThreadRT-Thread配合,为物联网设备提供快速原型开发和测试环境。配合,为物联网设备提供快速原型开发和测试环境。机器学习集成机器学习集成:AVHAVH提供的虚拟硬件,结合提供的虚拟硬件,结合RTRT-ThreadThread作为开发和测试机器学习模型的平台。作为开发和测试机器学习模型的平台。教育和培训教育和培训:AVHAVH作为教学工具,帮助学习者理解作为教学工具,帮助学习者理解RT-ThreadRT-Thread在在ArmArm架构上的行为。架构上的行为。硬件兼容性测试硬件兼容性测试:AVHAVH可以用于测试可以用于测试RT-ThreadRT-Thread在不同硬件配置下的兼容性。在不同硬件配置下的兼容性。资源优化资源优化:帮助评估:帮助评估RT-ThreadRT-Thread在不同虚拟硬件配置下的资源使用情况,优化系统资源占用。在不同虚拟硬件配置下的资源使用情况,优化系统资源占用。ShowShow Time Time 演示时间演示时间 谢 谢!