I got it. It was noise configuration thanx
Thanks
Avinash Kumar Chaurasia
Department of Computer Science
IIT Kanpur, India


On Wed, Apr 7, 2010 at 8:59 PM, Philip Levis <[email protected]> wrote:

> Run it in gdb and figure out where the segfault is. Just because the
> segfault is on that application does not mean the application file is at
> fault. It could be how you configure the simulator, etc.
>
> Phil
>
> On Apr 7, 2010, at 6:13 AM, avinash chaurasia wrote:
>
> > this is code RadioCountToLedsC
> > module RadioCountToLedsC @safe() {
> >   uses {
> >     interface Leds;
> >     interface Boot;
> >     interface Receive;
> >     interface AMSend;
> >     interface Timer<TMilli> as MilliTimer;
> >     interface SplitControl as AMControl;
> >     interface Packet;
> >   }
> > }
> > implementation {
> >
> >   message_t packet;
> >
> >   bool locked;
> >   uint16_t counter = 0;
> >
> >   event void Boot.booted() {
> >     call Leds.led0On();
> >     dbg("Boot,RadioCountToLedsC", "Application booted.\n");
> >     dbg("RadioCountToLedsC", "Application booted again.\n");
> >     dbg("Boot", "Application booted a third time.\n");
> >     call AMControl.start();
> >   }
> >
> >   event void AMControl.startDone(error_t err) {
> >     if (err == SUCCESS) {
> >       call MilliTimer.startPeriodic(250);
> >     }
> >     else {
> >       call AMControl.start();
> >     }
> >   }
> >
> >   event void AMControl.stopDone(error_t err) {
> >     // do nothing
> >   }
> >
> >   event void MilliTimer.fired() {
> >     counter++;
> >     dbg("RadioCountToLedsC", "RadioCountToLedsC: timer fired, counter is
> %hu.\n", counter);
> >     if (locked) {
> >       return;
> >     }
> >     else {
> >       radio_count_msg_t* rcm = (radio_count_msg_t*)call
> Packet.getPayload(&packet, sizeof(radio_count_msg_t));
> >       if (rcm == NULL) {
> >     return;
> >       }
> >
> >       rcm->counter = counter;
> >       if (call AMSend.send(AM_BROADCAST_ADDR, &packet,
> sizeof(radio_count_msg_t)) == SUCCESS) {
> >     dbg("RadioCountToLedsC", "RadioCountToLedsC: packet sent. %hu\n",
> counter);
> >     locked = TRUE;
> >       }
> >     }
> >   }
> >
> >   event message_t* Receive.receive(message_t* bufPtr,
> >                    void* payload, uint8_t len) {
> >     dbg("RadioCountToLedsC", "Received packet of length %hhu.\n", len);
> >     if (len != sizeof(radio_count_msg_t)) {return bufPtr;}
> >     else {
> >       radio_count_msg_t* rcm = (radio_count_msg_t*)payload;
> >       if (rcm->counter & 0x1) {
> >     call Leds.led0On();
> >       }
> >       else {
> >     call Leds.led0Off();
> >       }
> >       if (rcm->counter & 0x2) {
> >     call Leds.led1On();
> >       }
> >       else {
> >     call Leds.led1Off();
> >       }
> >       if (rcm->counter & 0x4) {
> >     call Leds.led2On();
> >       }
> >       else {
> >     call Leds.led2Off();
> >       }
> >       return bufPtr;
> >     }
> >   }
> >
> >   event void AMSend.sendDone(message_t* bufPtr, error_t error) {
> >     dbg("RadioCountToLedsC", "SendDone called.\n");
> >     if (&packet == bufPtr) {
> >       locked = FALSE;
> >     }
> >   }
> >
> > }
> >
> >
> > on simulation it gives segmentation fault
> >  1   2   -54.0
> >   2   1   -55.0
> >   1   3   -60.0
> >   3   1   -60.0
> >   2   3   -64.0
> >   3   2   -64.0
> > Creating noise model for  0
> > Creating noise model for  1
> > Creating noise model for  2
> > Creating noise model for  3
> > DEBUG (0): Application booted.
> > DEBUG (0): Application booted again.
> > DEBUG (1): Application booted.
> > DEBUG (1): Application booted again.
> > DEBUG (2): Application booted.
> > DEBUG (2): Application booted again.
> > DEBUG (3): Application booted.
> > DEBUG (3): Application booted again.
> > DEBUG (1): RadioCountToLedsC: timer fired, counter is 1.
> > DEBUG (1): RadioCountToLedsC: packet sent.
> > DEBUG (0): RadioCountToLedsC: timer fired, counter is 1.
> > DEBUG (0): RadioCountToLedsC: packet sent.
> > DEBUG (2): RadioCountToLedsC: timer fired, counter is 1.
> > DEBUG (2): RadioCountToLedsC: packet sent.
> > DEBUG (3): RadioCountToLedsC: timer fired, counter is 1.
> > DEBUG (3): RadioCountToLedsC: packet sent.
> > Segmentation fault
> >
> >
> > Please help me.
> >
> >
> > Thanks
> > Avinash Kumar Chaurasia
> >
> > _______________________________________________
> > Tinyos-help mailing list
> > [email protected]
> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to