一 先安裝工具git:在CMD命令行中運行git命令檢驗git環境變量安裝成功
二 下載env工具:然后解壓,打開對應的exe然后右擊-setting-intergration-registor這樣后就可以在對應的目錄下用右鍵直接打開env
三env的功能和命令:
3.1 配置自動生成mdk4/5/IAR相應的工程:eg:scons --target=mdk5

3.2自動編譯:scons,注意默認是使用ARM GCC編譯器,如果要使用keil mdk的ARM CC編譯器則需要在ENV命令行中這樣指定:
set RTT_CC=keil set RTT_EXEC_PATH=C:/Keilv5
3.3項目配置menuconfig(可以用tag鍵的自動補全功能):上下左右鍵移動,空格鍵使能禁能某個功能,shift+?進行查找,/進行
四軟件包pkgs:可重用的軟件包,從V3.0開始,使用方法:先利用menuconfig進行查找和配置相應的組件,然后使用命令:pkgs --update
五 config:在RTT源碼下的任意一個BSP上進行:
menuconfig -s :設置每次退出menuconfig后自動生成軟件包(pkgs --update)和自動重新生成相應mdk/iar工程(scons --target=mdk5)。
menuconfig的使用條件:1 RTT版本要V3.0以上 ;2自己的根目錄下要有Kconfig文件(從)
六添加模塊文件到scons:
6.1 在文件夾下有三個文件:xxx.c xxx.h還有SConscript(通過自定義宏 RT_USING_HELLO是否添加使能該模塊),其中SConscript內容如下:
from building import *
cwd = GetCurrentDir()
include_path = [cwd] src = []
if GetDepend(['RT_USING_HELLO']):
src += ['hello.c']
group = DefineGroup('hello', src, depend = [''], CPPPATH = include_path)
Return('group')
6.2 menuconfig 命令通過讀取工程的各個 Kconfig 文件(如下),生成配置界面供用戶配置內核,最后所有配置相關的宏定義都會自動保存到 BSP 目錄里的 rtconfig.h 文件中,每一個 BSP 都有一個 rtconfig.h 文件

保存配置后退出配置界面,打開 stm32f10x-HAL BSP 目錄下的 rtconfig.h 文件可以看到 hello 模塊的配置信息已經有了。

注意:每次 menuconfig 配置完成后都要使用 scons --target=XXX 命令生成新工程。
因為 rtconfig.h 中已經定義了 RT_USING_HELLO 宏,所以新生成工程時就會把 hello.c 的源文件添加到新工程中。
rtconfig.py 是一個 RT-Thread 標准的編譯器配置文件
import os # toolchains options ARCH='arm' CPU='cortex-m3' CROSS_TOOL='gcc' if os.getenv('RTT_CC'): CROSS_TOOL = os.getenv('RTT_CC') # cross_tool provides the cross compiler # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = '/usr/local/gcc-arm-none-eabi-5_4-2016q3/bin/' elif CROSS_TOOL == 'keil': PLATFORM = 'armcc' EXEC_PATH = 'C:/Keilv5' elif CROSS_TOOL == 'iar': PLATFORM = 'iar' EXEC_PATH = 'C:/Program Files/IAR Systems/Embedded Workbench 6.0 Evaluation' if os.getenv('RTT_EXEC_PATH'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') BUILD = 'debug' if PLATFORM == 'gcc': # toolchains PREFIX = 'arm-none-eabi-' CC = PREFIX + 'gcc' AS = PREFIX + 'gcc' AR = PREFIX + 'ar' LINK = PREFIX + 'gcc' TARGET_EXT = 'elf' SIZE = PREFIX + 'size' OBJDUMP = PREFIX + 'objdump' OBJCPY = PREFIX + 'objcopy' DEVICE = '-mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections' CFLAGS = DEVICE AFLAGS = '-c' + DEVICE + '-x assembler-with-cpp' LFLAGS = DEVICE + '-Wl,--gc-sections,-Map=rtthread-stm32.map,-cref,-u,Reset_Handler -T stm32_rom.ld'
