前言
Env 是 RT-Thread 推出的開發(fā)輔助工具,針對基于 RT-Thread 操作系統(tǒng)的項(xiàng)目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的 menuconfig 提供了簡單易用的配置剪裁工具,可對內(nèi)核、組件和軟件包進(jìn)行自由裁剪,使系統(tǒng)以搭積木的方式進(jìn)行構(gòu)建。
先楫 RT-Thread BSP v1.10.0不僅支持基于RT-Thread Studio的應(yīng)用開發(fā),也支持通過RT-Thread ENV來生成不同工具鏈和IDE進(jìn)行應(yīng)用開發(fā)。
本文介紹如何在Windows上基于RT-Thread ENV使用如下工具鏈來開發(fā)RT-Thread應(yīng)用。包括:
使用RT-Thread ENV生成gcc工具鏈編譯工程
使用RT-Thread ENV生成zcc工具鏈編譯工程
使用RT-Thread ENV生成Segger Embedded Studio工程
1.環(huán)境搭建
1.1 相關(guān)軟件安裝
在segger官方下載并安裝Segger Embedded Studio IDE。鏈接:https://www.segger.com/downloads/embedded-studio/,選擇Embedded Studio for Arm and RISC-V最新版本即可。建議安裝到無中文和空格的目錄下。
--按如下鏈接申請License(非商用可跳過這一步)https://license.segger.com/hpmicro.cgi
按照https://www.rt-thread.org/document/site/#/development-tools/env/env搭建安裝RT-Thread ENV,推薦閱讀Env 的使用方法中的在文件夾中通過右鍵菜單打開 Env 控制臺(tái)的部分。
--注意:先楫 RT-Thread BSP v1.10是基于RT-Thread v5.0.2開發(fā)的,必須使用RT-Thread Env v1.5.2來開發(fā)。下載RT-Thread官方env_release網(wǎng)盤時(shí)需要選擇env-windows-v1.5.2.7z
1.2 相關(guān)編譯工具鏈安裝
下載RISC-V gcc工具鏈
下載鏈接:
https://github.com/helloeagleyang/riscv32-gnu-toolchain-win/archive/2022.04.12.zip或
https://gitee.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.04.12/riscv32-gnu-toolchain-win-2022.04.12.7z
解壓到無中文和空格的目錄下,記住解壓后的路徑的bin目錄。
若不想使用gcc工具鏈只需要用Segger Embedded Studio可忽視此步驟
下載zcc工具鏈
從兆松科技的官網(wǎng)下載zcc工具鏈為4.0.0或者4.1.1及更高的版本
下載鏈接:https://www.terapines.com/download/zcc
解壓到無中文和空格的目錄下,記住解壓后的路徑的bin目錄。
若不想使用zcc工具鏈只需要用Segger Embedded Studio可忽視此步驟
segger工具鏈
從上述軟件安裝好Segger Embedded Studio IDE之后,記住Segger Embedded Studio的安裝路徑下的bin目錄。
ENV設(shè)置環(huán)境變量
右鍵打開Env控制臺(tái),點(diǎn)擊右上角的system menu,選擇settings

點(diǎn)擊Environment,在編輯框分別按需輸入RTT_RISCV_TOOLCHAIN和ZCC_TOOLCHAIN_PATH還有SEGGER_TOOLCHAIN_PATH變量,變量值為上述的工具鏈路徑。設(shè)置完畢點(diǎn)擊Save settings保存。

RTT_RISCV_TOOLCHAIN對應(yīng)上述的riscv32-gnu-toolchain-win-2022.04.12/bin目錄
ZCC_TOOLCHAIN_PATH對應(yīng)上述的zcc-4.0.0/bin目錄
SEGGER_TOOLCHAIN_PATH對應(yīng)上述的Segger Embedded Studio/bin目錄
重啟ENV,使環(huán)境變量生效。
注意:set =中的 = 前后不允許出現(xiàn)空格
2.基于RT-Thread ENV編譯開發(fā)應(yīng)用
2.1 下載安裝先楫BSP包
根據(jù)自己的開發(fā)板下載對應(yīng)的BSP包
開發(fā)板 | 倉庫鏈接 |
hpm6750evkmini | https://github.com/hpmicro/rtt-bsp-hpm6750evkmini/archive/v1.10.0.zip |
hpm6750evk2 | https://github.com/hpmicro/rtt-bsp-hpm6750evk2/archive/v1.10.0.zip |
hpm6300evk | https://github.com/hpmicro/rtt-bsp-hpm6300evk/archive/v1.10.0.zip |
hpm6200evk | https://github.com/hpmicro/rtt-bsp-hpm6200evk/archive/v1.10.0.zip |
hpm5300evk | https://github.com/hpmicro/rtt-bsp-hpm5300evk/archive/v1.10.0.zip |
hpm5301evklite | https://github.com/hpmicro/rtt-bsp-hpm5301evklite/archive/v1.10.0.zip |
hpm6800evk | https://github.com/hpmicro/rtt-bsp-hpm6800evk/archive/v1.10.0.zip |
hpm6e00evk | https://github.com/hpmicro/rtt-bsp-hpm6e00evk/archive/v1.10.0.zip |
hpm6p00evk | https://github.com/hpmicro/rtt-bsp-hpm6p00evk/archive/v1.10.0.zip |
hpm5e00evk | https://github.com/hpmicro/rtt-bsp-hpm5e00evk/archive/v1.10.0.zip |
2.2 導(dǎo)出BSP包的例程
需要安裝python,推薦版本為Python 3.10以上
解壓下載的BSP包,可以使用BSP包里的bsp_utils.py腳本導(dǎo)出例程
在BSP包的目錄下,使用PowerShell或者git bash運(yùn)行bsp_utils.py,當(dāng)前該腳本支持的命令如下:
-v/--version Show version獲取腳本版本
-l/--list Show supported examples in this BSP查看當(dāng)前BSP支持的所有例程
-e/--export_proj Export project from this BSP to specified destination directory導(dǎo)出生成工程到指定目錄
以blink_led例程為例,假定需要導(dǎo)出的路徑為D:\rtt_proj,可通過如下命令導(dǎo)出該例程。
python .\bsp_utils.py -e --project_name=blink_led --output=D:\rtt_proj
當(dāng)導(dǎo)出成功后,會(huì)提示以下,并且在D:\rtt_proj目錄下生成一個(gè)blink_led目錄,該目錄下就是導(dǎo)出的工程。
Successfully exported project 'blink_led' to 'D:\rtt_proj\blink_led'
注意:確保導(dǎo)出的路徑存在。
2.3 配置工程
根據(jù)上述教程新建的工程,以blink_led為例
在工程的主目錄下右鍵打開,選擇ComEmu here,會(huì)彈出env窗口

在env敲擊menuconfig打開板級的kconfig相關(guān)配置,完成以下操作:
RT-Thread KernelRT-Thread內(nèi)核配置
RT-Thread ComponentsRT-Thread組件配置
RT-Thread online packageRT-Thread軟件包配置
Hardware Drivers Config板級硬件配置
操作示例如下:

該操作和基于RT-Thread Studio中的圖形化操作很類似。
關(guān)于RT-Thread構(gòu)建與配置系統(tǒng),包含Kconfig和scons。請參考如下鏈接:
https://www.rt-thread.org/document/site/#/development-tools/build-config-system/summary
2.4 按需更改工具鏈參數(shù)
1、配置RV_ARCH和RV_ABI架構(gòu)指令集
用戶可在工程目錄下的env命令行執(zhí)行如下操作完成ABI的配置,若無該操作,默認(rèn)值為RV_ABI=ilp32。
set RV_ABI=
用戶可在工程目錄下的env命令行執(zhí)行如下操作完成ARCH的配置,若無該操作,默認(rèn)值為RV_ARCH=rv32imac。
set RV_ARCH=
支持的RV_ARCH和RV_ABI的組合有:
rv32imac + ilp32
rv32imafc + ilp32f
rv32gc + ilp32d
注意:
此變量只對gcc和zcc生效
2、配置 RTT_BUILD_TYPE編譯選項(xiàng)
用戶可在工程目錄下的env命令行執(zhí)行如下操作,若無該操作,默認(rèn)值為flash_debug。
set RTT_BUILD_TYPE=
通常支持的RTT_BUILD_TYPE選項(xiàng)為:
flash_debug
flash_release
ram_debug
ram_release
flash_hybrid_debug
flash_hybrid_release
詳細(xì)支持的選項(xiàng)可從rtconfig.py中查詢。
注意:
當(dāng)使用segger工具鏈時(shí),RTT_BUILD_TYPE選項(xiàng)可不設(shè)置,相關(guān)編譯選項(xiàng)可在Segger Embedded Studio IDE進(jìn)行切換
3、切換工具鏈
用戶可以工程目錄下使用如下操作完成工具鏈的切換,或無該操作,默認(rèn)工具鏈為gcc。
set RTT_TOOLCHAIN_PLATFORM=
其中,platform支持的選項(xiàng)為:
gcc
zcc
segger
2.5 生成、編譯、調(diào)試工程
1、生成cmake工程
當(dāng)使用gcc或zcc工具鏈時(shí),可通過如下命令生成cmake工程
scons --target=cmake
之后,可使用自己熟悉的支持cmake的IDE(如vscode, CLion) 來打開cmake工程完成后續(xù)的開發(fā)和調(diào)試。
注意:在該模式下,如果需要重新更改RT-Thread相關(guān)的配置,可能需要反復(fù)執(zhí)行如下操作:
menuconfig
scons --target=cmake
2、生成Segger Embedded Studio工程
當(dāng)使用segger工具鏈時(shí),可通過如下命令生成Segger Embedded Studio工程。
set RTT_TOOLCHAIN_PLATFORM=segger
scons --target=ses
注意:在該模式下,如果需要重新更改RT-Thread相關(guān)的配置,可能需要反復(fù)執(zhí)行如下操作:
menuconfig
scons --target=ses
在生成工程后,可以在工程目錄下打開project.emProject文件,即可使用Segger Embedded Studio進(jìn)行開發(fā)和調(diào)試。可在左上角不同的配置窗口選擇不同的編譯選項(xiàng)窗口

注:默認(rèn)生成的proj.emProject中的RISC-V ISA和RISC-V ABI的組合為rv32imac及ilp32,如下圖所示。用戶可根據(jù)需要自己調(diào)整為相應(yīng)的配置。

之后,可通過Segger Embedded Studio實(shí)現(xiàn)開發(fā)和調(diào)試。調(diào)試的體驗(yàn)和使用hpm_sdk一致。
3、基于env環(huán)境編譯工程
Env 中攜帶了 Python & scons 環(huán)境,用戶可在工程目錄下的env命令行執(zhí)行如下操作完成工程的編譯。
使用scons 直接編譯, 其中:N代表線程數(shù)。
scons -jN
編譯完成后,會(huì)在工程目錄下生成一個(gè)rtthread.elf文件,該文件就是可執(zhí)行文件。
調(diào)試上,可以使用openocd + riscv32-unknown-elf-gdb 實(shí)現(xiàn)基于命令行的調(diào)試或者使用vscode的相關(guān)調(diào)試插件。也可使用jlink調(diào)試器配合Ozone來調(diào)試。
2.6 典型示例
使用rv32imac+ilp32+gcc基于scons完成代碼的編譯,編譯選項(xiàng)為flash_release
按如下示例腳本所示:
set RTT_BUILD_TYPE=flash_release
set RTT_TOOLCHAIN_PLATFORM=gcc
set RV_ARCH=rv32imac set RV_ABI=ilp32
scons -j16
使用rv32gc+ilp32d+gcc基于scons完成cmake工程的生成
按如下示例腳本所示:
set RTT_TOOLCHAIN_PLATFORM=gcc
set RV_ARCH=rv32gc
set RV_ABI=ilp32d
scons --target=cmake
使用rv32imac+ilp32+zcc基于scons完成代碼的編譯,編譯選項(xiàng)為ram_debug
按如下示例腳本所示:
set RTT_BUILD_TYPE=ram_debug
set RTT_TOOLCHAIN_PLATFORM=zcc
set RV_ARCH=rv32imac
set RV_ABI=ilp32
scons -j16
使用rv32gc+ilp32d+zcc基于scons完成cmake工程的生成
按如下示例腳本所示:
set RTT_TOOLCHAIN_PLATFORM=zcc
set RV_ARCH=rv32gc
set RV_ABI=ilp32d
scons --target=cmake
使用segger基于scons完成segger embedded studio工程的生成
按如下示例腳本所示:
set RTT_TOOLCHAIN_PLATFORM=segger
scons --target=ses
3.小結(jié)
本文提供了在Windows上使用ENV工具開發(fā)基于先楫MCU的RT-Thread應(yīng)用的簡要流程,實(shí)際體驗(yàn)下來,整個(gè)過程和體驗(yàn)還是簡單和直觀的。大家如果在使用過程中有任何疑問和建議,歡迎在公眾號下留言,或者在相應(yīng)的github倉庫提issue。
-
mcu
+關(guān)注
關(guān)注
147文章
18669瀏覽量
388931 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3697瀏覽量
93317 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1551瀏覽量
44349
發(fā)布評論請先 登錄
先楫RT-Thread BSP v1.2.0的主要功能
RT-Thread驅(qū)動(dòng)開發(fā)指南進(jìn)階篇-動(dòng)手驅(qū)動(dòng)先楫未適配的外設(shè)LCD
開發(fā)者分享 | 基于先楫RT-Thread BSP,使用CLion開發(fā)應(yīng)用
基于RT-Thread操作系統(tǒng)的Env開發(fā)輔助工具使用手冊
基于RT-Thread操作系統(tǒng)env開發(fā)工具的使用方法
如何使用RT-Thread操作系統(tǒng)中的ENV工具呢
基于RT-Thread操作系統(tǒng)的Env開發(fā)環(huán)境搭建
RT-Thread env工具安裝
在Linux中使用RT-Thread Env工具的簡明指南
上海線下培訓(xùn):RT-Thread×先楫 HPM5300 for RT-Thread ,高性能 RISC-V 平臺(tái)開發(fā)快速上手
線下活動(dòng)|先楫HPM5300 for RT-Thread ,高性能 RISC-V 平臺(tái)開發(fā)快速上手
先楫半導(dǎo)體亮相2023 RDC RT-Thread開發(fā)者大會(huì)
先楫 RT-Thread BSP v1.4.0 正式發(fā)布
在Ubuntu上開發(fā)基于先楫MCU的RT-Thread應(yīng)用指南

Windows上使用ENV工具開發(fā)基于先楫MCU的RT-Thread應(yīng)用
評論