Linux+QEMU 搭建 RT-Thread 开发环境

概述

嵌入式软件开发离不开开发板,在没有物理开发板的情况下,可以使用 QEMU 等类似的虚拟机来模拟开发板。QEMU 是一个支持跨平台虚拟化的虚拟机,它可以虚拟很多开发板。为了方便大家在没有开发板的情况下体验 RT-Thread,RT-Thread 使用 QEMU 模拟了 ARM vexpress A9 开发板,并提供了相关的板级支持包(BSP)。本文主要介绍在 Linux 平台使用 RT-Thread 提供的 qemu-vexpress-a9 BSP。

准备工作

  • 安装编译器

    sudo apt install gcc-arm-none-eabi
    sudo apt install gdb-arm-none-eabi
    sudo apt install binutils-arm-none-eabi
    
  • 安装 QEMU

    sudo apt install qemu
    sudo apt install qemu-system-arm
    
  • 安装 scons

    sudo apt install scons
    
  • 安装 ncurses 库

    sudo apt install libncurses5-dev
    
  • 下载 RT-Thread 源码

    git clone https://github.com/RT-Thread/rt-thread.git
    

启动系统

这里我直接下载目前最新的 4.0.1 版本,解压缩并进入对于的 bsp 目录。

tar zxvf rt-thread-4.0.1.tar.gz
cd rt-thread-4.0.1/bsp/qemu-vexpress-a9/

配置编译器

如果您使用自己手动安装的编译器,需要修改 rtconfig.py 文件中的 EXEC_PATH 值。

在这里插入图片描述

配置工程

在 qemu-vexpress-a9 BSP 根目录执行如下命令,启动配置界面。

scons --menuconfig

在这里插入图片描述

首次执行该命令会安装及初始化 env 工具,并在用户家目录下面生成 .env 目录,其目录结构如下所示。

$ tree ~/.env/ -L 2
/home/rudy/.env/
├── env.sh        # 配置环境变量的脚本,配置后可使用 pkgs 命令
├── local_pkgs    #
├── packages      #
│   ├── Kconfig   #
│   └── packages  #
└── tools         #
    └── scripts   #

env.sh 文件是用于配置环境变量的脚本,执行如下命令使环境变量生效。

source ~/.env/env.sh

如果您已经选择了在线软件包,就可以使用如下命令将软件包下载到 BSP 目录下的 packages 目录。

pkgs --update

运行工程

在 qemu-vexpress-a9 BSP 目录下输入 scons 命令编译工程。

在这里插入图片描述

编译完成后,执行 qemu.sh 脚本启动虚拟机。

./qemu.sh

在这里插入图片描述

"多谢关注realboard,请访问慧至科技官方网站www.hugacy.com" 感谢大家关注realboard,再三感谢,尤其是众多发email过来询问的网友。 鉴于有网友怀疑realboad速度比qemu慢,事实胜于雄辩,提供测试方法如下: 测试方法: 分别运行两个batch程序,用秒表或PC时钟计时(大概1分钟左右结束) 计时方法: 程序启动开始计时; 出现UI画面结束计时. 测试代码(rt-thread 0.4.0 relese): 如果对测试代码有疑问,请联系rt-thread咨询 bsp/mini2440/sdcard.c rt_uint8_t sd_init(void) { //-- SD controller & card initialize int i; sd_delay(1000000); //此处增加一行对ARM仿真性能进行压力测试 /* Important notice for MMC test condition */ /* Cmd & Data lines must be enabled by pull up resister */ SDIPRE = PCLK/(INICLK)-1; SDICON = (0<<4) | 1; // Type A, clk enable SDIFSTA = SDIFSTA | (1<<16); SDIBSIZE = 0x200; /* 512byte per one block */ SDIDTIMER=0x7fffff; /* timeout count */ /* Wait 74SDCLK for MMC card */ for(i=0; i<0x1000; i++); sd_cmd0(); 参考配置: Pentium(R) Dual-Core CPU E5400 @ 2.70GHz 2.69GHz, 3.46GB of RAM 参考结果: qemu为47秒, realboard为28秒 realboard之所有没有达到23秒以内,是因为Timer处理和外设IO还有专门优化。 早期曾经对realboard核心指令集模拟器做过多媒体解码测试,综合性能是qemu的2倍。 详情请参考我的CSDN blog realboard -- 继续挑战ARM高性能软件仿真极限 <** 任何个人或团体学习者,教育培训机构,自由项目开发组织,在非商业赢利前提下,均可以无偿体验和使用realboard,商业使用请联系作者获得授权, email : lxzhg@hotmail.com **> 测试包中所含其它资源为自由软件开发组织所有,请参考各自许可协议。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿基米东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值