TinyOS下的makefile(持續更新)

背景知識:

節點 主要由 微處理芯片  和 無線射頻芯片 組成
Mica2:        Atmega128L        CC1000
Micaz:        Atmega128L        CC2420
telos:          MSP430               CC2420

芯片代碼存於tos/chips目錄或平臺子目錄裏。一個平臺通常有一個.platform文件,其中包含有nesC語言的編譯選項。例如,Mica2平臺的.platform文件會告訴ncc編譯器在chips/cc1000和chips/atm128目錄裏尋找所需文件。


之前節點一直無法接收消息的原因是:未定義預處理器符號CC1K_DEFAULT_FREQ ,即沒有定義CC1000無線射頻芯片的默認頻率。

該符號在文件/opt/tinyos-2.1.2/tos/chips/cc1000/CC1000Const.h中

具體解決方法如下:

方法1:每次make的時候,加上編譯選項-DCC1K_DEFAULT_FREQ,即在某一app目錄(如BlinkToRadio)下輸入以下命令:

CFLAGS=-DCC1K_DEFAULT_FREQ make mica2 install.1 mib520,/dev/ttyUSB0

方法2:由於每次烤程序都需要輸入一長串命令,故可在/opt/tinyos-2.1.2/support/make/Makedefaults 文件中添加如下語句:

MIB520 ?= /dev/ttyUSB0
PFLAGS = -DCC1K_DEFAULT_FREQ

PFLAGS選項定義了C語言預處理符號CC1K_DEFAULT_FREQ,並會在程序編譯時傳遞給nesC編譯器;選項MIB520設定了編程器MIB520燒錄程序時的相關參數值,即

make mica2 install mib520

相當於

make mica2 install mib520,/dev/ttyUSB0

以上忽略了節點的ID,實際燒錄時要在install後加上節點ID。

缺點是,如果編程板的端口改變了,需要改動文件內容,將ttyUSB0改爲ttyUSBn


因此,現在每次燒錄程序時只要輸入以下命令即可:

make mica2 install.n mib520

(n代表節點編號,在實際輸入時用數字1,2,3...代替)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章