目前共有12篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:港澳繁體▼
 
點擊 回復
686 11
【慶祝】我終於成功燒寫了第一個TinyOS程序!
一派掌門 二十級
1樓 發表于:2016-8-2 17:45
一派掌門 二十級
2樓 發表于:2016-8-2 17:48
臨時開啟串口/dev/ttyUSB0的權限,重啟虛擬機後失效:sudo chown oct1158 /dev/ttyUSB0
編譯命令:make telosb
燒寫命令:tos-bsl --telosb -c /dev/ttyUSB0 -r -e -I -p build/telosb/main.ihex.out

燒寫前,一定要把串口插入到虛擬機裏面:

勾選FTDI FT232R USB UART [0600]
 
一派掌門 二十級
3樓 發表于:2016-8-2 17:49
程序文件列表:
【BlinkAppC.nc】
configuration BlinkAppC
{
}
implementation
{
    components MainC, BlinkC, LedsC;
    components new TimerMilliC() as Timer0;
    components new TimerMilliC() as Timer1;
    components new TimerMilliC() as Timer2;

    BlinkC -> MainC.Boot;
    BlinkC.Timer0 -> Timer0;
    BlinkC.Timer1 -> Timer1;
    BlinkC.Timer2 -> Timer2;
    BlinkC.Leds -> LedsC;
}
【BlinkC.nc】
module BlinkC @safe()
{
    uses interface Timer<TMilli> as Timer0;
    uses interface Timer<TMilli> as Timer1;
    uses interface Timer<TMilli> as Timer2;
    uses interface Leds;
    uses interface Boot;
}
implementation
{
    event void Boot.booted()
    {
        call Timer0.startPeriodic(250);
        call Timer1.startPeriodic(500);
        call Timer2.startPeriodic(1000);
    }

    event void Timer0.fired()
    {
        dbg("BlinkC", "Timer 0 fired @ %s.\n", sim_time_string());
        call Leds.led0Toggle();
    }

    event void Timer1.fired()
    {
        dbg("BlinkC", "Timer 1 fired @ %s.\n", sim_time_string());
        call Leds.led1Toggle();
    }

    event void Timer2.fired()
    {
        dbg("BlinkC", "Timer 2 fired @ %s.\n", sim_time_string());
        call Leds.led2Toggle();
    }
}
【Makefile】
COMPONENT = BlinkAppC
include $(MAKERULES)
 
一派掌門 二十級
4樓 發表于:2016-8-2 17:50
所用虛擬機軟件:

以及Linux系統:

 
一派掌門 二十級
7樓 發表于:2016-8-2 18:10
【總的步驟】
1.給串口添加臨時權限(重啟系統或拔出USB線後失效)
sudo chown oct1158 /dev/ttyUSB0
其中oct1158為用戶名
2.編譯和燒寫
make telosb install bsl,/dev/ttyUSB0
(切記逗號那裏絕不能有任何空格,否則生成的tos-bsl命令的-c後面會因缺少/dev/ttyUSB0而出錯!)
 
一派掌門 二十級
8樓 發表于:2016-8-2 18:15
回復2樓 @巨大八爪鱼 的內容:
臨時開啟串口/dev/ttyUSB0的權限,重啟虛擬機後失效:sudo chown oct1158 /dev/ttyUSB0
編譯命令:make telosb
燒寫命令:tos-bsl -...
其中main.ihex.out是main.ihex的複製品。
 
一派掌門 二十級
9樓 發表于:2016-8-2 18:17


其實這兩個文件是完全相同的。
 
一派掌門 二十級
10樓 發表于:2016-8-3 17:32
回復2樓 @巨大八爪鱼 的內容:
臨時開啟串口/dev/ttyUSB0的權限,重啟虛擬機後失效:sudo chown oct1158 /dev/ttyUSB0
編譯命令:make telosb
燒寫命令:tos-bsl -...
輸入命令時,請注意-I是大寫的i,不是小寫的L!
 
一派掌門 二十級
11樓 發表于:2016-8-4 15:10
如果電腦只接了一個節點的話,那麼只需要輸入make telosb install就行了
 
一派掌門 二十級
12樓 發表于:2016-8-4 19:23
如果想要每次開機或插入串口線時都自動設置權限為當前用戶,不再執行繁瑣的chmod或chown命令,請參考:
https://zh.arslanbar.net/post.php?t=24301
 
一派掌門 二十級
13樓 發表于:2016-8-4 19:50
【常用命令】
查看設備名:motelist
燒寫但不編譯:make telosb reinstall
編譯並燒寫:make telosb install
編譯並燒寫,指定節點ID為2,程序中可通過TOS_NODE_ID宏獲得:make telosb install,2
編譯並燒寫,指定節點路徑:make telosb install bsl,/dev/ttyUSB0
 
一派掌門 二十級
14樓 發表于:2016-8-4 19:50
只編譯不燒寫:make telosb
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:686 回複數:11
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-8-4 19:50
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。