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

    文章

    346

    浏览量

    41324
  • 模拟器
    +关注

    关注

    2

    文章

    818

    浏览量

    42698
  • RT-Thread
    +关注

    关注

    31

    文章

    1149

    浏览量

    38894
  • gcc编译器
    +关注

    关注

    0

    文章

    78

    浏览量

    3233
  • qemu
    +关注

    关注

    0

    文章

    54

    浏览量

    5207
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    RT-Thread记录(二、RT-Thread内核启动流程)

    在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程.
    的头像 发表于 06-20 00:30 4420次阅读
    <b class='flag-5'>RT-Thread</b>记录(二、<b class='flag-5'>RT-Thread</b>内核启动流程)

    RT-Thread的C语言编码规范

    这是一份 RT-Thread 开发人员的开发指引。RT-Thread 做为一份开源软件,它需要由不同的人采用合作的方式完成,这份文档是开发
    的头像 发表于 02-21 16:50 2079次阅读

    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.4w次阅读
    <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应用范围。ART-Pi作为卫星下位机,...
    发表于 01-25 18:26 5次下载
    【<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 4001次阅读
    <b class='flag-5'>RT-Thread</b>学习笔记 <b class='flag-5'>RT-Thread</b>的架构概述

    2022年最后1场,RT-Thread开发者项目分享会报名啦~

    近几年随着物联网的迅速发展,RT-Thread操作系统越来越受到开发者喜爱,基于RT-Thread生态的项目和产品也日益完善。自2021年来,RT-Thread携手电子发烧友共建
    的头像 发表于 12-27 21:05 649次阅读

    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文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 7次下载
    <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 7次下载
    <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 2593次阅读
    基于<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 357次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> mps2-an385 bsp移植制作 :环境搭建篇