0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用RT-Thread Master+QEMU模拟器进行RT-Thread原型快速开发

冬至子 来源:lchnu 作者:lchnu 2023-09-27 14:50 次阅读

前言

前段时间分别在Win和Mac M1/M2 Silicon硬件环境下折腾了VS Code + RT-Thread的编译问题。

本文简单探讨Mac Silicon硬件环境下,使用RT-Thread Master主仓库代码+QEMU模拟器的模拟问题,方便在无硬件条件下进行RT-Thread原型快速开发,也为脱离硬件条件分析RT-Thread调度原理提供基本的开发环境基础。

1.工具需求

arm-none-eabi-gcc;
VS Code + Scons;
brew,Silicon处理器下为Homebrew,本文讨论安装过程;
QEMU for ARM,本文讨论安装过程。本文下载了qemu 7.2.1版本的源代码,且解压到用户根目录下的qemu-7.2.1目录,如下图高亮处所示;
rt-thread master代码,可以在gitee或者github上下载,本文下载的代码解压到用户根目录下的rt-thread-master目录,如下图高亮处所示。

1.jpg

2.Mac Silicon环境下brew安装

Step 1. 基础brew

在Mac上打开终端工具,复制如下命令到终端中,安装homebrew。

1.jpg

Step 2. 选择下载源 - 此处选择中科大下载源

选择1,即中科大下载源后,再根据提示输入Y,会提示输入本机密码。正确输入密码后,自动下载相关文件,等待终端完成。

1.jpg

Step 3. 下载完成生效brew

安装脚本下载和执行完成后,根据提示,可以重启终端,或者输入如下命令,其中,本文中lichuang是Mac用户名,请按照实际情况进行对应修改。

source /Users/lichuang/.zprofile

1.jpg

Step 4. 确认brew安装成功

安装完毕后,输入如下命令,查看brew版本。

brew --version
//或者
brew -v
不出意外,如下图所示,会提示git部分有问题。根据提示,分别按照提示输入如下两条命令即可(按照实际提示命令输入)

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask

输入上述命令后,再次查看brew版本,提示Homebrew成功安装,并显示版本号。

1.jpg

3.Mac Silicon环境下QEMU for ARM安装

Step 1. 确认qemu源代码的目录

本文使用Qemu 7.2.1。从官方链接中下载qemu 7.2.1版本的源代码,且解压到用户根目录下的qemu-7.2.1目录。

1.jpg

打开终端,依次使用如下命令进入qemu目录。命令行的含义分别为:进入目录,创建build文件夹,进入build文件夹,配置make选项。

cd qemu-7.2.1
mkdir build
cd build
../configure --target-list=arm-softmmu
如果是纯净系统,则会提示Ninja未安装。

1.jpg

Step 2. 依此根据错误提示安装pkg-config, glib, pixman等工具

1.jpg

1.jpg

依次使用brew install xx命令安装相关工具后,完成了qemu的编译准备。为了防止复现出错,下图是本人在纯净MacOS环境下使用brew安装的相关工具图。该图可以通过进入opthomebrewCellar目录确认。

1.jpg

Step 3. 编译QEMU

完成上述步骤,依此在终端环境中,使用如下命令编译qemu,过程中会出现如下图所示的系列进度条。等待进度条完毕,若在终端中使用qeme-system-arm --version能显示qemu版本,表示安装成功。

make -j8
sudo make install

1.jpg

2.jpg

Qemu Summary

上述3个小步骤,可以用如下终端中的命令行进行小结。

brew install ninja pkgconfig glib pixman
git clone https://git.qemu.org/git/qemu.git
cd qemu
mkdir build
cd build
../configure --target-list=arm-softmmu
make -j8
sudo make install
4. VS Code环境下编译RTT且运行
打开VS Code软件,使用打开工程选项,依次进入到rt-thread-master/bsp/qemu-vexpress-a9文件夹中,打开工程。在完成系列2文章配置的前提下,可以快速一键编译该bsp。

然后,在VS Code命令行输入./qemu.sh,即可完成RT-Thread在Mac Silicon硬件+QEMU ARM环境下的仿真

1.jpg

小结

本文简单讨论了Mac Silicon硬件环境下,使用VS Code + Qemu对RT-Thread RTOS的模拟。对于暂时没有硬件环境,或者希望研究RT-Thread内核原理的开发者,可以方便构建工程原型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM处理器
    +关注

    关注

    6

    文章

    360

    浏览量

    41739
  • 模拟器
    +关注

    关注

    2

    文章

    875

    浏览量

    43219
  • RT-Thread
    +关注

    关注

    31

    文章

    1289

    浏览量

    40118
  • gcc编译器
    +关注

    关注

    0

    文章

    78

    浏览量

    3382
  • qemu
    +关注

    关注

    0

    文章

    57

    浏览量

    5357
收藏 人收藏

    评论

    相关推荐

    RT-Thread记录(一、版本开发环境及配合CubeMX)

    RT-Thread 学习记录的第一篇文章,RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及
    的头像 发表于 06-20 00:28 5238次阅读
    <b class='flag-5'>RT-Thread</b>记录(一、版本<b class='flag-5'>开发</b>环境及配合CubeMX)

    RT-Thread学习笔记】如何优雅地退出QEMU模拟器

    RT-Thread学习笔记】如何优雅地退出QEMU模拟器?我想重新编译源码,再次运行新的代码,怎么办呢?如何才能退出这个QEMU命令行控制台?
    的头像 发表于 07-26 04:06 5959次阅读
    【<b class='flag-5'>RT-Thread</b>学习笔记】如何优雅地退出<b class='flag-5'>QEMU</b><b class='flag-5'>模拟器</b>?

    如何在windows和linux平台使用RT-Thread QEMU BSP,并运行RT-ThreadGUI示例

    开发板的情况下体验RT-ThreadRT-Thread使用QEMU模拟了ARM vexpress A9
    的头像 发表于 02-08 08:50 1.4w次阅读
    如何在windows和linux平台使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>QEMU</b> BSP,并运行<b class='flag-5'>RT</b>-ThreadGUI示例

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本文是RT
    发表于 11-26 16:06 0次下载

    RT-Thread用户手册

    RT-Thread用户手册——本书是RT-Thread的编程手册,用于指导在RT-Thread实时操作系统环境下如何进行编 程。
    发表于 11-26 16:16 0次下载

    RT-Thread开发,如何有效学习RT-Thread的五个步骤

    RT-Thread推出RT-Thread Inside战略开放RT-Thread开发平台授权合作,与硬件十万个为什么合作首次推出第一款RT-
    的头像 发表于 09-25 09:55 3.5w次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>开发</b>,如何有效学习<b class='flag-5'>RT-Thread</b>的五个步骤

    RT-Thread软件包定义和使用

    RT-Thread软件包是运行于RT-Thread物联网操作系统平台上,面向不同应用领域的通用软件组件 。RT-Thread 同时提供了开放的软件包平台,为开发者提供了众多可重用软件包
    的头像 发表于 05-21 11:29 1w次阅读
    <b class='flag-5'>RT-Thread</b>软件包定义和使用

    RT-Thread全球技术大会:RT-Thread测试用例集合案例

    RT-Thread全球技术大会:RT-Thread测试用例集合案例           审核编辑:彭静
    的头像 发表于 05-27 16:34 2100次阅读
    <b class='flag-5'>RT-Thread</b>全球技术大会:<b class='flag-5'>RT-Thread</b>测试用例集合案例

    RT-Thread学习笔记 RT-Thread的架构概述

    的种种优越之处。RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过 16 个年头的沉淀,伴随着物联网的兴起,它正演变成一个功能强大、组件丰富的物
    的头像 发表于 07-09 11:27 4556次阅读
    <b class='flag-5'>RT-Thread</b>学习笔记 <b class='flag-5'>RT-Thread</b>的架构概述

    RT-Thread文档_RT-Thread 简介

    RT-Thread文档_RT-Thread 简介
    发表于 02-22 18:22 5次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 简介

    RT-Thread文档_Keil 模拟器 STM32F103 上手指南

    RT-Thread文档_Keil 模拟器 STM32F103 上手指南
    发表于 02-22 18:22 4次下载
    <b class='flag-5'>RT-Thread</b>文档_Keil <b class='flag-5'>模拟器</b> STM32F103 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与移植

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 3959次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习

    RT-Thread qemu mps2-an385 bsp移植制作 :环境搭建篇

    最近打算系统地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 进行一些软件功能的验证,qemu
    的头像 发表于 08-02 14:45 637次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> mps2-an385 bsp移植制作 :环境搭建篇