之前一直使用MDK查看和編譯RTT的源碼,這幾天無聊想起RTT官方提供使用scons工具編譯RTT,因此想試試這種方法,做下此筆記,以供入門者參考.
注
1 下載安裝Python2.7
論壇中很多人說RTT只支援Python2.7因此下載此版本.
開啟網址:http://www.python.org/getit/
下載並安裝2.7.5版本,安裝目錄不能包含空格,所以,最好預設安裝或D:\Python27目錄下,這裡安裝到D:\Python27目錄下.
2 下載並安裝scons
:http://www.scons.org/download.php
從該網頁下載Windows Installer scons 2.2.0-setup.exe版本的.
因為SCons是Python的外掛程式,所以安裝一路點“Next”到完成就好,它會自己識別Python的安
裝目錄。
3 配置環境變數
在案頭上右擊我的電腦,然後屬性,選擇進階,環境變數,在系統變數下找到path變數,然後添加兩個路徑進去:
D:\Python27;D:\Python27\Scripts,然後確定,關閉對話方塊.
最後開啟cmd輸入path再次仔細檢查路徑中是否已經包含這兩個路徑了.
4 下載和解壓RTT源碼
這裡以下載RTT V1.1.1為例,:https://rt-thread.googlecode.com/files/RT-Thread_1.1.1.7z
解壓.
5 修改編譯設定檔
開啟任意一個BSP,這裡以STM32F10x的BSP為例,用MDK的編譯工具來編譯.
首先在STM32F10x目錄用文本編輯工具如記事本或UE開啟的rtconfig.py,修改如下:
ARCH='arm'CPU='cortex-m3'CROSS_TOOL='keil'if os.getenv('RTT_CC'):CROSS_TOOL = os.getenv('RTT_CC')#device options# STM32_TYPE = # 'STM32F10X_LD','STM32F10X_LD_VL',# 'STM32F10X_MD','STM32F10X_MD_VL',# 'STM32F10X_HD','STM32F10X_HD_VL',# 'STM32F10X_XL','STM32F10X_CL'STM32_TYPE = 'STM32F10X_HD'# lcd panel options# 'FMT0371','ILI932X', 'SSD1289'RT_USING_LCD_TYPE = 'SSD1289'# cross_tool provides the cross compiler# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IARif CROSS_TOOL == 'gcc':PLATFORM = 'gcc'EXEC_PATH = 'D:/SourceryGCC/bin'elif CROSS_TOOL == 'keil':PLATFORM = 'armcc'EXEC_PATH = r'D:/Keil'elif CROSS_TOOL == 'iar':PLATFORM = 'iar'IAR_PATH = 'C:/Program Files/IAR Systems/Embedded Workbench 6.0 Evaluation'
上面第3行和第28行為要修改的內容。
第3行:CROSS_TOOL='keil'表示使用MDK來編譯,
第28行:EXEC_PATH = r'D:/Keil' 這裡表示MDK的安裝路徑.
接下來還需要修改SConstruct檔案.
在目前的目錄找到SConstruct檔案,用記事本或UE開啟,找到如下文字:
if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT')else: RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
將其修改為:
RTT_ROOT = r'E:\projects\other\RT-Thread_1.1.1'
即你的RTT源碼目錄.
這裡的路徑網上其實用:
RTT_ROOT = 'E:\projects\other\RT-Thread_1.1.1'
RTT_ROOT = 'E:/projects/other/RT-Thread_1.1.1'
RTT_ROOT = r'E:\projects\other\RT-Thread_1.1.1'
RTT_ROOT = r'E:/projects/other/RT-Thread_1.1.1'
這四種方式都可以,四種我都試過.
這裡的意思是要設定RTT_ROOT這個變數的值為RTT源碼根目錄.
這裡環境就配置完了,下面就可以使用scons來編譯了.
6 使用scons編譯RTT
開啟CMD,cd到當前BSP目錄:
cd /d E:\projects\other\RT-Thread_1.1.1\bsp\stm32f10x
然後輸入scons就可以編譯了.
scons -j4
-j4表示同時使用4個線程來編譯,這樣在編譯比較大的工程時可以加快速度,當然RTT並不是很大的工程,可以不必要輸入-j4.
如果要產生MDK工程,則使用“scons --target=mdk4 -s”(注意target前面是兩個“-”號)命令產生MDK工程,產生成功以後,在工程目錄中會產生“project.uvproj”,點擊用MDK開啟即可進行編譯、下載、模擬等.
scons --target=mdk4 -s
OK,搞定!