版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
大家晚上好!RTT第一講基礎(chǔ)知識主講人:Yafei時(shí)間:2013/08/01內(nèi)容提要<1>安裝scons<2>SConstruct
SConscript<3>RTT源碼目錄結(jié)構(gòu)<4>scons使用gcc/mdk編譯一個(gè)示例<5>scons生成IAR/MDK工程<6>頭文件的查找一、安裝scons官網(wǎng)最新版本SCons
2.3.0scons目前只支持python2.7或者更早的版本,暫時(shí)不支持python3Scons
2.3.0
下載網(wǎng)址個(gè)人百度云網(wǎng)盤下載安裝步驟依賴于python2.7Scons用python語言編寫,因此我們在安裝scons之前,需要搭建python環(huán)境。下載地址使用簡單安裝,MSI,EXE添加環(huán)境變量:D:\Python27;D:\Python27\Scripts;python動(dòng)態(tài)類型語言:在程序運(yùn)行時(shí)檢查數(shù)據(jù)的類型的語言。在寫代碼時(shí)不會(huì)給變量指定類型,而是在賦值時(shí)確定數(shù)據(jù)類型。例如:二、scons詳解Scons官方文檔?SConstruct文件是用來控制整個(gè)項(xiàng)目的實(shí)際編譯。例如:(1)#prepare
building
environmentobjs=PrepareBuilding(env,RTT_ROOT,has_libcpu=False)準(zhǔn)備好編譯的環(huán)境,編譯環(huán)境:編譯器,分析rtconfig.h,執(zhí)行
sconscript添加RTT
kernel
src/和libcpu/,添加RTT組件目錄(2)#build
program
env.Program(TARGET,objs)開始編譯(3)TARGET='rtthread-stm32f4xx.'+
rtconfig.TARGET_EXT
指定編譯后的程序名SConscript文件是用來指定哪些文件會(huì)加入編譯。scons添加組件DefineGroup用于定義一個(gè)組件。組件可以是一個(gè)目錄(下的文件或子目錄),也是后續(xù)一些IDE工程文件中的一個(gè)Group或文件夾。函數(shù)原型為:DefineGroup(name,src,depend,**parameters),包括四個(gè)參數(shù):'name'來定義這個(gè)group的名字src用于定義這個(gè)Group中包含的文件,一般指的是
C/C++源文件。方便起見,也能夠通過Glob函數(shù)采用通配符的方式列出SConscript文件所在目錄中匹配的文件。depend
用于定義這個(gè)Group編譯時(shí)所依賴的選項(xiàng)(例如finsh組件依賴于RT_USING_FINSH宏定義)。編譯選項(xiàng)一般指rtconfig.h中定義的RT_USING_xxx宏。當(dāng)在rtconfig.h配置文件中定義了相應(yīng)宏時(shí),那么這個(gè)Group
才會(huì)被加入到編譯環(huán)境中進(jìn)行編譯。如果依賴的宏并沒在rtconfig.h中被定義,那么這個(gè)Group將不會(huì)被加入編譯。相類似的,在使用scons生成為IDE工程文件時(shí),如果依賴的宏未被定義,相應(yīng)的Group也不會(huì)在工程文件中出現(xiàn)。parameters則可以輸入一組字符串,后面還可以加入的參數(shù)包括:CCFLAGS–C源文件編譯的參數(shù);CPPPATH–應(yīng)該額外包含的頭文件路徑;CPPDEFINES–C源文件編譯時(shí)額外的宏定義;LINKFLAGS–連接時(shí)應(yīng)該添加的參數(shù)。LIBRARY–包含此參數(shù),則會(huì)將組生成的目標(biāo)文件打包成庫文件。Scons拓展查看scons支持的選項(xiàng):scons--helpRTTWiki之scons:
scons使用armcc編譯時(shí)出現(xiàn)命令行太長,編譯報(bào)錯(cuò):
Fatal
error:
L3904U:Could
not
open
via
file'@c:\users\admini~1\appdata\local\temp\tmp8cy7vx.lnk'.三、RTT目錄結(jié)構(gòu)目錄詳解bsp/:board
support
package,對應(yīng)于開發(fā)板libcpu/:芯片架構(gòu),CPU資源(PMC電源控制器,AIC先進(jìn)中斷控制器,系統(tǒng)時(shí)鐘)驅(qū)動(dòng)src/:RTT內(nèi)核源碼(rt_object,
ipc,調(diào)度)components/:RTT組件,包含協(xié)議棧(lwip)、總線驅(qū)動(dòng)(SPI
I2C
SDIOUSB等)、Finsh、DFS、libc庫tools/:RT-Thread官方提供的用于所有BSP的共同腳本控制文件,提供一些強(qiáng)大的功能函數(shù),方便我們編寫
SConscript.include/:RTT頭文件四、scons編譯示例CodeSourcery平臺選擇GNU/Linux代表硬件上面運(yùn)行Linux系統(tǒng),編譯的程序在
linux上運(yùn)行EABIGCCCodeSourcery?需要注冊scons——armcc編譯前提:安裝MDKRtconfig.py配置五、scons生成MDK工程命令:scons
–target=mdk4
–s工程模板文件:template.uvproj六、編譯時(shí)頭文件查找頭文件查找由編譯器來決定在編譯時(shí)加選項(xiàng)–I
來包含查找頭文件的目錄GCC編譯器#include
“file1”首先在源文件當(dāng)前目錄下查找頭文件,如果找不到,再去編譯命令指定、系統(tǒng)預(yù)設(shè)的目錄去找。這些"指定的"、"預(yù)設(shè)的"目錄在什么地方呢?"指定的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 20957-1:2024 EN Stationary training equipment - Part 1: General safety requirements and test methods
- 快餐攤位租賃合同
- 2024【辦公大樓的物業(yè)管理委托合同】對付物業(yè)最有效的辦法
- 技術(shù)轉(zhuǎn)讓合同注意事項(xiàng)
- 2024日用品采購合同范本
- 2024年戶外廣告牌設(shè)置與發(fā)布合同
- 交通事故私了協(xié)議書模板
- 期刊廣告投放區(qū)域協(xié)議
- 農(nóng)村調(diào)解協(xié)議書樣本
- 房產(chǎn)貸款合同匯編
- 微景觀制作課件
- 業(yè)務(wù)招待費(fèi)審批單
- 建筑工程項(xiàng)目管理咨詢招標(biāo)(范本)
- 三位數(shù)除兩位數(shù)的除法練習(xí)題
- 慢性胃炎的中醫(yī)治療培訓(xùn)課件
- Python程序設(shè)計(jì)課件第7章面向?qū)ο蟪绦蛟O(shè)計(jì)
- 主題班會(huì)課防盜
- 幼兒園課件《撓撓小怪物》
- 教師教案檢查八大評分標(biāo)準(zhǔn)教案的評分標(biāo)準(zhǔn)
- 政府會(huì)計(jì)基礎(chǔ)知識講義
- 幼兒園整合式主題活動(dòng)設(shè)計(jì)案例《溫馨家園》
評論
0/150
提交評論