RT-Thread環(huán)境搭建與工程編譯

一、搭建開發(fā)環(huán)境

參考開發(fā)環(huán)境搭建

1.基于windows

  • 下載 RT-Thread 源碼,推薦下載3.1.0及以上版本。

  • 安裝 python 以及 SCons 工具

    • 將路徑加入到系統(tǒng) PATH 變量中
  • 安裝 GCC 編譯工具鏈 【動態(tài)模塊只支持gcc編譯】

  • 下載 RT-Thread Env 工具,推薦下載1.0.0及以上版本。

    • QEMU 模擬的 ARM vexpress A9 開發(fā)板的板級支持包 (BSP) 位于 RT-Thread 源碼 BSP 目錄下的 qemu-vexpress-a9 文件夾,此 BSP 實(shí)現(xiàn)了 LCD、鍵盤、鼠標(biāo)、SD 卡、以太網(wǎng)卡、串口等相關(guān)驅(qū)動。
  • Env 中攜帶了 Python & scons 環(huán)境

2.基于ubuntu環(huán)境

  • 下載 RT-Thread 源碼,使用命令:git clone https://github.com/RT-Thread/rt-thread.git
  • 安裝 QEMU,使用命令:sudo apt-get install qemu
  • 安裝 Scons,使用命令:sudo apt-get install scons
  • 安裝編譯器,使用 apt-get 命令安裝的編譯器版本太舊會導(dǎo)致編譯報(bào)錯(cuò),可依次使用如下命令下載安裝新版本,下載鏈接和解壓文件夾名因下載版本而異:
  • wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/6-2016q4/gcc-arm-none-eabi-6_2-2016q4-20161216-linux.tar.bz2
  • cd /opt
  • sudo tar xf ~/Downloads/ gcc-arm-none-eabi-6_2-2016q4-20161216-linux.tar.bz2
  • 安裝 ncurses 庫,使用命令:sudo apt-get install libncurses5-dev

二、開發(fā)編譯

1.RT-Threand 源碼目錄

RT-Thread
├─bsp 各個(gè)平臺的工程目錄
├─components 組件源碼目錄
├─documentation 文檔目錄
├─examples 測試用例目錄
├─include 頭文件目錄
├─libcpu 存放各個(gè)平臺的啟動程序以及線程切換程序
├─tools SCons 腳本目錄
└─src RT-Thread 內(nèi)核源碼目錄

推薦使用 SCons編譯或者使用 MDK 編譯

  • BSP 為 bsp\stm32f40x 目錄內(nèi)容
    • applications 目錄下存放一些頂層應(yīng)用程序
    • drivers 目錄下存放 RT-Thread 設(shè)備驅(qū)動程序
    • Libraries 目錄下存放 stm32 官方固件庫代碼
    • rtconfig.h 為當(dāng)前工程的頭文件,用于控制 RT-Thread 組件裁剪
    • Project.uvproj 為 MDK 工程文件
    • Template.uvproj 為生成 MDK 工程文件模板文件,由 SCons 使用。
    • Stm32_rom.ld 為 GCC 鏈接文件,用于 GCC 編譯
    • Stm32_rom.sct 為 MDK 分散加載文件,當(dāng)使用 SCons 調(diào)用 armcc 編譯時(shí)需要使用
    • rtconfig.py 為 python 腳本,主要用于配置 SCons 的底層編譯器。
    • SConscript 為 python 腳本,由 SCons 使用
    • SConsctruct 為 python 腳本,由 SCons 使用
image

2.BSP工程配置

  • 進(jìn)入相應(yīng)bsp工程目錄,執(zhí)行:menuconfig
    • menuconfig的內(nèi)容與rtconfig.h文件對應(yīng),其修改的內(nèi)容也會在rtconfig.h文件中修改。
  • 下載更新軟件包:pkgs --update

3.編譯

RT-Thread 的通過 SCons 支持三種編譯器,編譯器的選擇在 rtconfig.py 中指定

  • 使用GCC編譯

    CROSS_TOOL='gcc'
    ...
    if CROSS_TOOL == 'gcc':
      EXEC_PATH ='D:/Program Files/CodeSourcery/Sourcery G++ Lite/bin'
    
  • 使用keil編譯

    CROSS_TOOL='keil'
    ...
    elif CROSS_TOOL == 'keil':
      PLATFORM = 'armcc'
      EXEC_PATH = 'D:/Keil'
    
  • 使用MDK IDE編譯

    • SCons 自動生成 MDK 工程 ,然后用IDE打開工程編譯

      scons --target=mdk4 -s
      #或
      scons --target=mdk5 -s
      

執(zhí)行編譯

scons [-j4]

#清除編譯目標(biāo)
scons -c

編譯完成后,會在 BSP 當(dāng)前目錄下生成rtthread.bin和rtthread-stm32f4xx.axf

編譯注意:由于windows端的路徑表示方式與linux不同,該工程是基于linux編寫的,所以有些文件路徑需要使用轉(zhuǎn)義符r來做轉(zhuǎn)義處理。

三、使用QEMU運(yùn)行RT-Thread

QEMU讓你無需開發(fā)板即可玩溜RT-Thread

在bsp下運(yùn)行qemu

qemu.bat
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容