Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP
QEMU
RT-Thread qemu mps2-an385 bsp 移植制作 :环境搭建篇
发布于 2023-07-23 10:20:50 浏览:427
订阅该版
[tocm] [RT-Thread qemu mps2-an385 bsp 移植制作 :环境搭建篇](https://club.rt-thread.org/ask/article/c0be3f8a4b751b10.html) [RT-Thread qemu mps2-an385 bsp 移植制作 :BSP 制作篇](https://club.rt-thread.org/ask/article/c4d2aacf5ab2a160.html) [RT-Thread qemu mps2-an385 bsp 移植制作 :系统启动篇](https://club.rt-thread.org/ask/article/d9c2825cc94b8b39.html) [RT-Thread qemu mps2-an385 bsp 移植制作 :系统运行篇](https://club.rt-thread.org/ask/article/499d407fa948c318.html) # 前言 - 最近打算系统地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 进行一些软件功能的验证,qemu 支持很多的CPU 与 开发板,所以想移植一个新的 qemu board 到 RT-Thread,掌握BSP 移植的方法 - 当前主线 RT-Thread BSP Qemu 有三大系列:`qemu-vexpress-a9` `qemu-virt64-aarch64` `qemu-virt64-riscv`,所以打算搞个简单的 `ARM Cortex-M3` 的 qemu board:`mps2-an385`,验证下来类似于 STM32F103 系列的 MCU - 开发环境暂时为 :Linux 环境, ubuntu 20.04,后面尝试适配到 Windows 上 ![2023-07-22_191605.png](https://oss-club.rt-thread.org/uploads/20230723/30740fb390f822e87dc7a4d0c7b88320.png) - ubuntu 20.04 中 默认安装的 qemu 版本 `qemu-system-arm --version` ,应该是 `4.2.1`,支持这个 ARM Cortex-M3 的 MCU :`mps2-an385` ```c $ qemu-system-arm --version QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.27) Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers ``` # 开发环境 - win10 64位 + VS Code,ssh 远程连接 ubuntu - VMware Workstation Pro 16 + Ubuntu 20.04 - RT-Thread v5.0.1(备注:当前 RT-Thread BSP 占用较大的空间) - qemu `qemu-system-arm` `mps2-an385` 开发板,qemu 版本 `QEMU emulator version 4.2.1` 或更高 - arm gcc 交叉编译工具链:当前使用 gcc 编译环境, `gcc-arm-11.2-2022.02-x86_64-arm-none-eabi`, `gcc version 11.2.1 20220111` # 搭建工程 - 由于当前 RT-Thread 的代码体积有点臃肿,RT-Thread v5.0.1 解压后 整体接近 1.8GB, 而BSP 包占用 : 1.7GB 左右,所以打算建立独立的工程,不包括其他的 BSP,降低工程管理的复杂度,也方便代码阅读 ![2023-07-23_095029.png](https://oss-club.rt-thread.org/uploads/20230723/b71dd2a4b000f07f466f4c63ce46e938.png) ![2023-07-23_095107.png](https://oss-club.rt-thread.org/uploads/20230723/102ddc48bd3265b7e293111b3978ffdf.png) - 重新创建工程,然后移除 bsp,改为 rt-thread 目录,新建 qemu-mps2-arm 目录,作为 移植 qemu mps2 的 bsp ![2023-07-23_095941.png](https://oss-club.rt-thread.org/uploads/20230723/a34f5df2c9af1ca130618381894cd010.png.webp) ## 配置arm gcc 交叉编译环境 - 下载 arm gcc 交叉编译工具链:ARM 官方提供 各个版本的下载地址 [https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) - 当前验证 较新的版本,如 `gcc-arm-11.2-2022.02-x86_64-arm-none-eabi`,可以正常编译并运行 - 设置 ubuntu 环境变量, `qemu-mps2-arm` 目录下 新建 `setup.sh`,内容如下 ```c #!/bin/bash export RTT_CC=gcc export RTT_EXEC_PATH=/home/zhangsz/linux/tools/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin export RTT_CC_PREFIX=arm-none-eabi- export PATH=$PATH:$RTT_EXEC_PATH echo "CC => ${RTT_CC}" echo "PREFIX => ${RTT_CC_PREFIX}" echo "EXEC_PATH => ${RTT_EXEC_PATH}" ``` - 增加执行 权限 `chmod +x setup.sh` - 编译前 运行: `source setup.sh` 即可 - 自此,初步的开发环境应经准备就绪,但是 bsp `qemu-mps2-arm` 目录下,只有一个 `setup.sh` 设置交叉编译工具链的脚本,bsp 还没有正式开始移植 ## mps2-an385 介绍 - 此 qemu 开发板 mps2-an385,资料特别的少,之所以使用 mps2,可能源于之前 调试过 FreeRTOS 中的 qemu,用到就是这个 `mps2-an385` - 当前能获取的资料,基本上是 ARM 官方的 mps2 相关的 sdk,下载后,有 Keil 版本的,可以获取一些启动文件、部分寄存器的使用:如定时器、uart 串口 - 由于 mps2 基于 ARM Cortex-M3,所以打算连接脚本、启动文件等,都基于 STM32F103系列 进行修改适配,这部分内容放在下一篇进行讲解 # 小结 - 本篇注意梳理 RT-Thread BSP 移植前的环境搭建,选择 windows 开发还是 Linux 环境(如 ubuntu)中开发,这里使用 Linux 环境开发,使用 arm gcc 交叉编译工具链,代码阅读、编辑、gdb 调试,使用 Win10 下 VS Code ssh 远程连接 ubuntu - 由于 RT-Thread 整体 BSP 代码占用较大的体积,不利于功能的管理,所以新建最小 RT-Thread 工程,用于代码的管理,当前使用 RT-Thread 发布版本: `RT-Thread v5.0.1`,可以在 [https://github.com/RT-Thread/rt-thread/releases/tag/v5.0.1](https://github.com/RT-Thread/rt-thread/releases/tag/v5.0.1) 上下载
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
804
被采纳
174
关注TA
发私信
相关文章
1
Linux下的Qemu mini2440虚拟机(32位和64位)
2
有qemu Linux的rt-thread开发环境建立吗?
3
qemu+mini2440+bootloader问题
4
QEMU gdbstub 在Win7下的bug
5
请教如何在windows下使用qemu测试rrt0.31中的例子
6
QEMU运行os问题
7
QEMU-mini2440 模拟环境上运行RT-thread这篇
8
在Ubuntu上执行qemu的configure命令checkzlib失败
9
求大舅:telnet-连接QEMU时,QEMU segmentation fault 结束
10
RealTouch打算出QEMU模拟器吗
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部