0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread qemu mps2-an385 bsp移植制作 :環(huán)境搭建篇

冬至子 ? 來源:張世爭 ? 作者:張世爭 ? 2023-08-02 14:45 ? 次閱讀

前言

最近打算系統(tǒng)地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 進行一些軟件功能的驗證,qemu 支持很多的CPU 與 開發(fā)板,所以想移植一個新的 qemu board 到 RT-Thread,掌握BSP 移植的方法

當(dāng)前主線 RT-Thread BSP Qemu 有三大系列:qemu-vexpress-a9 qemu-virt64-aarch64 qemu-virt64-riscv,所以打算搞個簡單的 ARM Cortex-M3 的 qemu board:mps2-an385,驗證下來類似于 STM32F103 系列的 MCU

開發(fā)環(huán)境暫時為 :Linux 環(huán)境, ubuntu 20.04,后面嘗試適配到 Windows 上

1.jpg

ubuntu 20.04 中 默認(rèn)安裝的 qemu 版本 qemu-system-arm --version ,應(yīng)該是 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

開發(fā)環(huán)境

win10 64位 + VS Code,ssh 遠程連接 ubuntu

VMware Workstation Pro 16 + Ubuntu 20.04

RT-Thread v5.0.1(備注:當(dāng)前 RT-Thread BSP 占用較大的空間)

qemu qemu-system-arm mps2-an385 開發(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 的代碼體積有點臃腫,RT-Thread v5.0.1 解壓后 整體接近 1.8GB, 而BSP 包占用 : 1.7GB 左右,所以打算建立獨立的工程,不包括其他的 BSP,降低工程管理的復(fù)雜度,也方便代碼閱讀

1.jpg

1.jpg

重新創(chuàng)建工程,然后移除 bsp,改為 rt-thread 目錄,新建 qemu-mps2-arm 目錄,作為 移植 qemu mps2 的 bsp

1.jpg

配置arm gcc 交叉編譯環(huán)境

下載 arm gcc 交叉編譯工具鏈

當(dāng)前驗證 較新的版本,如 gcc-arm-11.2-2022.02-x86_64-arm-none-eabi,可以正常編譯并運行

設(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

編譯前 運行: source setup.sh 即可

自此,初步的開發(fā)環(huán)境應(yīng)經(jīng)準(zhǔn)備就緒,但是 bsp qemu-mps2-arm 目錄下,只有一個 setup.sh 設(shè)置交叉編譯工具鏈的腳本,bsp 還沒有正式開始移植

mps2-an385 介紹

此 qemu 開發(fā)板 mps2-an385,資料特別的少,之所以使用 mps2,可能源于之前 調(diào)試過 FreeRTOS 中的 qemu,用到就是這個 mps2-an385

當(dāng)前能獲取的資料,基本上是 ARM 官方的 mps2 相關(guān)的 sdk,下載后,有 Keil 版本的,可以獲取一些啟動文件、部分寄存器的使用:如定時器、uart 串口

由于 mps2 基于 ARM Cortex-M3,所以打算連接腳本、啟動文件等,都基于 STM32F103系列 進行修改適配,

小結(jié)

本篇注意梳理 RT-Thread BSP 移植前的環(huán)境搭建,選擇 windows 開發(fā)還是 Linux 環(huán)境(如 ubuntu)中開發(fā),這里使用 Linux 環(huán)境開發(fā),使用 arm gcc 交叉編譯工具鏈,代碼閱讀、編輯、gdb 調(diào)試,使用 Win10 下 VS Code ssh 遠程連接 ubuntu

由于 RT-Thread 整體 BSP 代碼占用較大的體積,不利于功能的管理,所以新建最小 RT-Thread 工程,用于代碼的管理,當(dāng)前使用 RT-Thread 發(fā)布版本: RT-Thread v5.0.1。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    599

    瀏覽量

    27759
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    361

    瀏覽量

    42079
  • STM32F103
    +關(guān)注

    關(guān)注

    33

    文章

    480

    瀏覽量

    64274
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1321

    瀏覽量

    40844
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    255

    瀏覽量

    11731
收藏 人收藏

    評論

    相關(guān)推薦

    如何在windows和linux平臺使用RT-Thread QEMU BSP,并運行RT-ThreadGUI示例

    開發(fā)板的情況下體驗RT-Thread,RT-Thread使用QEMU模擬了ARM vexpress A9開發(fā)板,并提供了相關(guān)的板級支持包(BSP)。本文主要介紹在windows平臺和l
    的頭像 發(fā)表于 02-08 08:50 ?1.4w次閱讀
    如何在windows和linux平臺使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>QEMU</b> <b class='flag-5'>BSP</b>,并運行<b class='flag-5'>RT</b>-ThreadGUI示例

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

    前面已經(jīng)讓 RT-Thread 進入了 entry 入口函數(shù),并且 調(diào)整 鏈接腳本,自動初始化與 MSH shell 的符號已經(jīng)預(yù)留, 進入了 RT-Thread 的初始化流
    的頭像 發(fā)表于 11-14 12:27 ?946次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> <b class='flag-5'>mps2-an385</b> <b class='flag-5'>bsp</b><b class='flag-5'>移植</b><b class='flag-5'>制作</b> :系統(tǒng)運行<b class='flag-5'>篇</b>

    RT-Thread的STM32BSP制作教程

    一、概念BSP是板級支持包(Board Support Package)的意思,概念詳見BSP百科。二、參考資料1、官方版本文字制作教程:RT-Thread的STM32
    發(fā)表于 08-03 08:04

    在Ubuntu平臺開發(fā)RT-Thread文檔中步驟搭建QEMU環(huán)境

    NimBLE 可在 QEMU 環(huán)境下搭配藍牙 Control 芯片運行,目前在 Ubuntu 18.04 下運行成功。QEMU 環(huán)境搭建主要
    發(fā)表于 07-27 11:19

    基于RT-Thread操作系統(tǒng)的Env開發(fā)環(huán)境搭建

    圖測試開發(fā)環(huán)境進入到源碼目錄 rt-thread\\bsp\\qemu-vexpress-a9,鼠標(biāo)右擊打開 env 工具。輸入指令 menuconfig,如果出現(xiàn)配置界面,說明開發(fā)
    發(fā)表于 09-30 10:38

    如何在Window及Ubuntu平臺使用QEMU運行 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本應(yīng)用筆記描述了如何在 Window 及 Ubuntu 平臺使用 QEMU 運行 RT-Thread qemu-vexpress-a9 BSP 工程。本文的目的和結(jié)構(gòu)本文的目的和背
    發(fā)表于 10-26 15:19

    在Windows平臺使用Eclipse調(diào)試RT-Thread qemu-vexpress-a9 BSP工程

    使用 Eclipse 調(diào)試 RT-Thread qemu-vexpress-a9 BSP 工程。本文的結(jié)構(gòu)本文主要介紹了 Eclipse 調(diào)試選項的配置以及如何調(diào)試工程。準(zhǔn)備工作下載 RT-T
    發(fā)表于 10-26 15:31

    RT-Thread BSP qemu-virt64-aarch64的編譯環(huán)境搭建步驟

      最近需要使用RT-Thread smart 開發(fā)調(diào)試一些軟件功能,由于軟件功能平臺無關(guān),使用外部硬件操作,會耗費更多的時間在后臺?! 〈蛩闶褂?b class='flag-5'>BSP qemu-virt64-aarch64
    發(fā)表于 04-04 17:04

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

      前言   前面大體上搭建RT-Thread BSP qemu-virt64-aarch64 的交叉編譯環(huán)境,運行后發(fā)現(xiàn),文件系統(tǒng)沒有
    發(fā)表于 05-16 10:29

    RT-Thread BSP qemu-virt64-riscv的編譯環(huán)境搭建

    qemu-virt64-aarch64 搭建一個 RT-Thread smart 的開發(fā)調(diào)試環(huán)境,可以開發(fā)驗證一些平臺無關(guān)的軟件功能,但是當(dāng)前的
    發(fā)表于 05-16 10:37

    RT-Thread文檔_Nordic BSP 上手指南

    RT-Thread文檔_Nordic BSP 上手指南
    發(fā)表于 02-22 18:26 ?7次下載
    <b class='flag-5'>RT-Thread</b>文檔_Nordic <b class='flag-5'>BSP</b> 上手指南

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與<b class='flag-5'>移植</b>

    RT-Thread qemu mps2-an385 bsp移植制作BSP制作

    安裝 Keil.V2M-MPS2_CMx_BSP.1.8.0.pack 后, 在 V2M-MPS2_CMx_BSP\1.8.0\Device\CMSDK_CM3\Source\GCC 路徑下,有 mps2-an385 的啟動文件
    的頭像 發(fā)表于 08-02 14:49 ?1192次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>qemu</b> <b class='flag-5'>mps2-an385</b> <b class='flag-5'>bsp</b><b class='flag-5'>移植</b><b class='flag-5'>制作</b> :<b class='flag-5'>BSP</b><b class='flag-5'>制作</b><b class='flag-5'>篇</b>

    瑞薩Cortex-M內(nèi)核RA MCU的RT-Thread BSP制作教程發(fā)布

    瑞薩Cortex-M內(nèi)核RA MCU的RT-Thread BSP制作教程發(fā)布
    的頭像 發(fā)表于 09-18 10:58 ?809次閱讀
    瑞薩Cortex-M內(nèi)核RA MCU的<b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b><b class='flag-5'>制作</b>教程發(fā)布

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

    前面大體上搭建RT-Thread BSP qemu-virt64-aarch64 的交叉編譯環(huán)境,運行后發(fā)現(xiàn),文件系統(tǒng)沒有掛載上,感覺是
    的頭像 發(fā)表于 10-08 16:34 ?1111次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b> <b class='flag-5'>qemu</b>-virt64-aarch64文件系統(tǒng)