thread公益培訓(xùn)每節(jié)課rtt第一講_第1頁
thread公益培訓(xùn)每節(jié)課rtt第一講_第2頁
thread公益培訓(xùn)每節(jié)課rtt第一講_第3頁
thread公益培訓(xùn)每節(jié)課rtt第一講_第4頁
thread公益培訓(xùn)每節(jié)課rtt第一講_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論