前言
最近打算系统地研究一下 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-eabi, gcc 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 交叉编译工具链
当前验证 较新的版本,如 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。
-
Linux系统
+关注
关注
4文章
590浏览量
27344 -
ARM处理器
+关注
关注
6文章
360浏览量
41657 -
STM32F103
+关注
关注
33文章
476浏览量
63458 -
RT-Thread
+关注
关注
31文章
1271浏览量
39902 -
MCU芯片
+关注
关注
3文章
246浏览量
11381
发布评论请先 登录
相关推荐
评论