前言
最近打算系統地研究一下 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文章
595瀏覽量
27510 -
ARM處理器
+關注
關注
6文章
361瀏覽量
41934 -
STM32F103
+關注
關注
33文章
479瀏覽量
63874 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40383 -
MCU芯片
+關注
關注
3文章
253瀏覽量
11627
發布評論請先 登錄
相關推薦
評論