作者共发了12篇帖子。 内容转换:不转换▼
 
点击 回复
397 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-b...
其中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-b...
输入命令时,请注意-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)
 

本帖信息

点击数:397 回复数:11
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-8-4 19:50
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。