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

前言

  • 最近打算系统地研究一下 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 上

在这里插入图片描述

  • ubuntu 20.04 中 默认安装的 qemu 版本 qemu-system-arm --version ,应该是 4.2.1,支持这个 ARM Cortex-M3 的 MCU :mps2-an385
$ 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-eabigcc version 11.2.1 20220111

搭建工程

  • 由于当前 RT-Thread 的代码体积有点臃肿,RT-Thread v5.0.1 解压后 整体接近 1.8GB, 而BSP 包占用 : 1.7GB 左右,所以打算建立独立的工程,不包括其他的 BSP,降低工程管理的复杂度,也方便代码阅读

在这里插入图片描述

在这里插入图片描述

  • 重新创建工程,然后移除 bsp,改为 rt-thread 目录,新建 qemu-mps2-arm 目录,作为 移植 qemu mps2 的 bsp

在这里插入图片描述

配置arm gcc 交叉编译环境

  • 下载 arm gcc 交叉编译工具链:ARM 官方提供 各个版本的下载地址 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,内容如下

#!/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 上下载

猜你喜欢

转载自blog.csdn.net/tcjy1000/article/details/131871586