前言
最近打算系統(tǒng)地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 進(jìn)行一些軟件功能的驗(yàn)證,qemu 支持很多的CPU 與 開(kāi)發(fā)板,所以想移植一個(gè)新的 qemu board 到 RT-Thread,掌握BSP 移植的方法
當(dāng)前主線 RT-Thread BSP Qemu 有三大系列:qemu-vexpress-a9 qemu-virt64-aarch64 qemu-virt64-riscv,所以打算搞個(gè)簡(jiǎn)單的 ARM Cortex-M3 的 qemu board:mps2-an385,驗(yàn)證下來(lái)類似于 STM32F103 系列的 MCU
開(kāi)發(fā)環(huán)境暫時(shí)為 :Linux 環(huán)境, ubuntu 20.04,后面嘗試適配到 Windows 上
ubuntu 20.04 中 默認(rèn)安裝的 qemu 版本 qemu-system-arm --version ,應(yīng)該是 4.2.1,支持這個(gè) 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
開(kāi)發(fā)環(huán)境
win10 64位 + VS Code,ssh 遠(yuǎn)程連接 ubuntu
VMware Workstation Pro 16 + Ubuntu 20.04
RT-Thread v5.0.1(備注:當(dāng)前 RT-Thread BSP 占用較大的空間)
qemu qemu-system-arm mps2-an385 開(kāi)發(fā)板,qemu 版本 QEMU emulator version 4.2.1 或更高
arm gcc 交叉編譯工具鏈:當(dāng)前使用 gcc 編譯環(huán)境, gcc-arm-11.2-2022.02-x86_64-arm-none-eabi, gcc version 11.2.1 20220111
搭建工程
由于當(dāng)前 RT-Thread 的代碼體積有點(diǎn)臃腫,RT-Thread v5.0.1 解壓后 整體接近 1.8GB, 而BSP 包占用 : 1.7GB 左右,所以打算建立獨(dú)立的工程,不包括其他的 BSP,降低工程管理的復(fù)雜度,也方便代碼閱讀
重新創(chuàng)建工程,然后移除 bsp,改為 rt-thread 目錄,新建 qemu-mps2-arm 目錄,作為 移植 qemu mps2 的 bsp
配置arm gcc 交叉編譯環(huán)境
下載 arm gcc 交叉編譯工具鏈
當(dāng)前驗(yàn)證 較新的版本,如 gcc-arm-11.2-2022.02-x86_64-arm-none-eabi,可以正常編譯并運(yùn)行
設(shè)置 ubuntu 環(huán)境變量, qemu-mps2-arm 目錄下 新建 setup.sh,內(nèi)容如下
#!/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}"
增加執(zhí)行 權(quán)限 chmod +x setup.sh
編譯前 運(yùn)行: source setup.sh 即可
自此,初步的開(kāi)發(fā)環(huán)境應(yīng)經(jīng)準(zhǔn)備就緒,但是 bsp qemu-mps2-arm 目錄下,只有一個(gè) setup.sh 設(shè)置交叉編譯工具鏈的腳本,bsp 還沒(méi)有正式開(kāi)始移植
mps2-an385 介紹
此 qemu 開(kāi)發(fā)板 mps2-an385,資料特別的少,之所以使用 mps2,可能源于之前 調(diào)試過(guò) FreeRTOS 中的 qemu,用到就是這個(gè) mps2-an385
當(dāng)前能獲取的資料,基本上是 ARM 官方的 mps2 相關(guān)的 sdk,下載后,有 Keil 版本的,可以獲取一些啟動(dòng)文件、部分寄存器的使用:如定時(shí)器、uart 串口
由于 mps2 基于 ARM Cortex-M3,所以打算連接腳本、啟動(dòng)文件等,都基于 STM32F103系列 進(jìn)行修改適配,
小結(jié)
本篇注意梳理 RT-Thread BSP 移植前的環(huán)境搭建,選擇 windows 開(kāi)發(fā)還是 Linux 環(huán)境(如 ubuntu)中開(kāi)發(fā),這里使用 Linux 環(huán)境開(kāi)發(fā),使用 arm gcc 交叉編譯工具鏈,代碼閱讀、編輯、gdb 調(diào)試,使用 Win10 下 VS Code ssh 遠(yuǎn)程連接 ubuntu
由于 RT-Thread 整體 BSP 代碼占用較大的體積,不利于功能的管理,所以新建最小 RT-Thread 工程,用于代碼的管理,當(dāng)前使用 RT-Thread 發(fā)布版本: RT-Thread v5.0.1。
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
604瀏覽量
28385 -
ARM處理器
+關(guān)注
關(guān)注
6文章
361瀏覽量
42488 -
STM32F103
+關(guān)注
關(guān)注
33文章
482瀏覽量
65192 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1375瀏覽量
41601 -
MCU芯片
+關(guān)注
關(guān)注
3文章
256瀏覽量
12006
發(fā)布評(píng)論請(qǐng)先 登錄
如何在windows和linux平臺(tái)使用RT-Thread QEMU BSP,并運(yùn)行RT-ThreadGUI示例

RT-Thread qemu mps2-an385 bsp移植制作 :系統(tǒng)運(yùn)行篇

RT-Thread的STM32BSP制作教程
在Ubuntu平臺(tái)開(kāi)發(fā)RT-Thread文檔中步驟搭建QEMU環(huán)境
基于RT-Thread操作系統(tǒng)的Env開(kāi)發(fā)環(huán)境搭建
如何在Window及Ubuntu平臺(tái)使用QEMU運(yùn)行 RT-Thread qemu-vexpress-a9 BSP工程
在Windows平臺(tái)使用Eclipse調(diào)試RT-Thread qemu-vexpress-a9 BSP工程
RT-Thread BSP qemu-virt64-aarch64的編譯環(huán)境搭建步驟
RT-Thread BSP qemu-virt64-aarch64文件系統(tǒng)
RT-Thread BSP qemu-virt64-riscv的編譯環(huán)境搭建
RT-Thread qemu mps2-an385 bsp移植制作 :BSP制作篇

RT-Thread BSP qemu-virt64-aarch64文件系統(tǒng)

評(píng)論