Re: Fw: Re: for Tinyos 2.x bugs...
kiseop Lee <acorrd <at> gmail.com>
2009-02-02 07:34:32 GMT
I'm sorry, our school email server has some problem. this is using gmail.....
Hi,
In the last of this mail , temporary fixed code exist. It should be
located
in
c:\cygwin\opt\tinyos-2.x\tos\chips\msp430\timer\Msp430ClockP.nc
But if you
understand problem exactly , you can apply it to any file which is proper
location.
If you want to reproduce it,
1. provide a BaseStation mote
and Laboratary Power supply.
connect power supply and the basestation.
increase voltage level from zero to 3.3V very slowly.
2. Then , probe RS-232
bit rate of the Basestation by Oscillosope. you can see the bit rate is
incorrect. thus gateway can not read these datas.
in the msp430 user
guide(SLAU049xxx.pdf), the ch4 Basic clock module has
fault oscillator
problem. but I think oscillator fault problem is different with this.
this is
wrong oscillation of PLL which has problem in slow transition power
supply.
if there is reset-IC, it can help this problem. But in the telosb
clone board does not have
reset-IC. thus I use internal voltage detector
function of msp430.
//tinyos latest version. FEB 2,
2009.
//======c:\cygwin\opt\tinyos-2.x\tos\chips\msp430\timer\Msp430ClockP.nc====
module
Msp430ClockP <at> safe()
{
provides interface Init;
provides interface
Msp430ClockInit;
}
implementation
{
uint8_t
gSVSvalue;
MSP430REG_NORACE(IE1);
MSP430REG_NORACE(TACTL);
MSP430REG_NORACE(TAIV);
MSP430REG_NORACE(TBCTL);
MSP430REG_NORACE(TBIV);
enum
{
ACLK_CALIB_PERIOD = 8,
TARGET_DCO_DELTA =
(TARGET_DCO_KHZ / ACLK_KHZ) * ACLK_CALIB_PERIOD,
};
void MeasureAVCC();
void MyWait(uint16_t arg1);
command void Msp430ClockInit.defaultSetupDcoCalibrate()
{
// --- setup ---
TACTL = TASSEL1 | MC1; // source SMCLK, continuous mode, everything else
0
TBCTL = TBSSEL0 | MC1;
BCSCTL1 = XT2OFF | RSEL2;
BCSCTL2
= 0;
TBCCTL0 = CM0;
}
command void
Msp430ClockInit.defaultInitClocks()
{
// BCSCTL1
// .XT2OFF =
1; disable the external oscillator for SCLK and MCLK
// .XTS = 0; set low
frequency mode for LXFT1
// .DIVA = 0; set the divisor on ACLK to
1
// .RSEL, do not modify
BCSCTL1 = XT2OFF | (BCSCTL1 &
(RSEL2|RSEL1|RSEL0));
// BCSCTL2
// .SELM = 0; select DCOCLK as source for MCLK
// .DIVM = 0; set the divisor of MCLK to 1
// .SELS = 0; select DCOCLK as
source for SCLK
// .DIVS = 2; set the divisor of SCLK to 4
//
.DCOR = 0; select internal resistor for DCO
BCSCTL2 = DIVS1;
// IE1.OFIE = 0; no interrupt for oscillator fault
CLR_FLAG( IE1,
OFIE );
}
command void Msp430ClockInit.defaultInitTimerA()
{
TAR = 0;
// TACTL
// .TACLGRP = 0; each TACL group latched
independently
// .CNTL = 0; 16-bit counter
// .TASSEL = 2; source
SMCLK = DCO/4
// .ID = 0; input divisor of 1
// .MC = 0; initially
disabled
// .TACLR = 0; reset timer A
// .TAIE = 1; enable timer A
interrupts
TACTL = TASSEL1 | TAIE;
}
command void Msp430ClockInit.defaultInitTimerB()
{
TBR = 0;
// TBCTL
// .TBCLGRP = 0; each TBCL group latched
independently
// .CNTL = 0; 16-bit counter
// .TBSSEL = 1; source
ACLK
// .ID = 0; input divisor of 1
// .MC = 0; initially
disabled
// .TBCLR = 0; reset timer B
// .TBIE = 1; enable timer B
interrupts
TBCTL = TBSSEL0 | TBIE;
}
default event void Msp430ClockInit.setupDcoCalibrate()
{
call
Msp430ClockInit.defaultSetupDcoCalibrate();
}
default event void
Msp430ClockInit.initClocks()
{
call
Msp430ClockInit.defaultInitClocks();
}
default event void Msp430ClockInit.initTimerA()
{
call
Msp430ClockInit.defaultInitTimerA();
}
default event void Msp430ClockInit.initTimerB()
{
call
Msp430ClockInit.defaultInitTimerB();
}
void startTimerA()
{
// TACTL.MC = 2; continuous
mode
TACTL = MC1 | (TACTL & ~(MC1|MC0));
}
void stopTimerA()
{
//TACTL.MC = 0; stop timer B
TACTL =
TACTL & ~(MC1|MC0);
}
void startTimerB()
{
// TBCTL.MC = 2; continuous mode
TBCTL = MC1 | (TBCTL & ~(MC1|MC0));
}
void stopTimerB()
{
//TBCTL.MC = 0; stop timer B
TBCTL =
TBCTL & ~(MC1|MC0);
}
void set_dco_calib( int calib )
{
BCSCTL1 = (BCSCTL1 &
~0x07) | ((calib >> 8) & 0x07);
DCOCTL = calib & 0xff;
}
uint16_t test_calib_busywait_delta( int calib )
{
int8_t
aclk_count = 2;
uint16_t dco_prev = 0;
uint16_t dco_curr = 0;
set_dco_calib( calib );
while( aclk_count-- > 0 )
{
TBCCR0 = TBR +
ACLK_CALIB_PERIOD; // set next interrupt
TBCCTL0 &= ~CCIFG; //
clear pending interrupt
while( (TBCCTL0 & CCIFG) == 0 ); // busy
wait
dco_prev = dco_curr;
dco_curr = TAR;
}
return dco_curr - dco_prev;
}
// busyCalibrateDCO
// Should take about 9ms if
ACLK_CALIB_PERIOD=8.
// DCOCTL and BCSCTL1 are calibrated when done.
void busyCalibrateDco()
{
// --- variables ---
int
calib;
int step;
// --- calibrate ---
// Binary search for RSEL,DCO,DCOMOD.
// It's okay that RSEL isn't
monotonic.
for( calib=0,step=0x800; step!=0; step>>=1 )
{
//
if the step is not past the target, commit it
if(
test_calib_busywait_delta(calib|step) <= TARGET_DCO_DELTA )
calib
|= step;
}
// if DCOx is 7 (0x0e0 in calib), then the 5-bit MODx is not useable, set
it to 0
if( (calib & 0x0e0) == 0x0e0 )
calib &=
~0x01f;
set_dco_calib( calib );
}
command error_t Init.init()
{
// Reset timers and clear
interrupt vectors
TACTL = TACLR;
TAIV = 0;
TBCTL =
TBCLR;
TBIV = 0;
//Wait until which the VACC will 3.0V and then DCO should
oscillation correctly.
//If the power supply for the sink mote is
unstable,
//the DCO will be setted wrong and UART asynchronous data
timing will be corrupted.
//from MSP430 datasheet.
#if 1
do{
MeasureAVCC();
if((gSVSvalue >= 0xB)&&(gSVSvalue
<0xF)){//if it larger then 3.05V and smaller then 3.7V
break;//OK....
}
if(gSVSvalue==0xF)break; //it has
error , but it must run the others job....!!!!
}while(1);
#endif
atomic
{
signal
Msp430ClockInit.setupDcoCalibrate();
busyCalibrateDco();
signal Msp430ClockInit.initClocks();
signal
Msp430ClockInit.initTimerA();
signal
Msp430ClockInit.initTimerB();
startTimerA();
startTimerB();
}
return SUCCESS;
}
//=========================
//These
are temporary functions.
#define SVSCTL_REG ((unsigned char
*)(0x55))
#define SVSOP 0x02
void MyWait(uint16_t
arg1)
{
uint16_t i,k;
for(i=0; i<arg1; i++){
nop(); //nop in telosb.
}
}
void
MeasureAVCC(){
uint8_t i;
*SVSCTL_REG =( 1<<4); //init with
1.9V comparation.
MyWait(1200); //off to on delay is 150
us.
for(i=1;i<14;i++){
*SVSCTL_REG=(i<<4);
MyWait(96); //each
steps delay is 12us.
if((*SVSCTL_REG) &
SVSOP){
gSVSvalue=i;
*SVSCTL_REG =0; //off SVS to conserve
power
return;
}
}
*SVSCTL_REG =0; //off SVS
to conserve power
gSVSvalue=15; //indicate error.
}
}
-----
Original Message -----
From: Vlado Handziski
<handzisk <at> tkn.tu-berlin.de>
To: 이기섭
<gslee <at> hallym.ac.kr>
Cc:
tinyos-help <at> millennium.berkeley.edu
Sent: 2009/02/02
13:15
Subject: Re: [Tinyos-help] Fw: Re: for Tinyos 2.x
bugs...
Hi,
please post here more details about the problem and
your patch.
Vlado
2009/1/31 이기섭
<gslee <at> hallym.ac.kr> Dear tinyos-help
Could you receive the fixed
file for the problem which is described below
and update it into the tinyos
project?
K.S.Lee
-----
Original Message -----
From: Philip Levis <pal <at> cs.stanford.edu>
To: 이기섭 <gslee <at> hallym.ac.kr>
Cc: cssharp <at> eecs.berkeley.edu, Vlado Handziski <handzisk <at> tkn.tu-berlin.de>, Joe Polastre <polastre <at> cs.berkeley.edu>
Sent: 2009/01/31
13:49
Subject: Re: for Tinyos 2.x bugs...
On Jan 30, 2009,
at 8:05 PM, Joe Polastre wrote:
> please contact Phil Levis, pal <at> cs.stanford.edu
>
> Best,
>
-Joe
>
> On Fri, Jan 30, 2009 at 7:39 PM, 이기섭 <gslee <at> hallym.ac.kr>
wrote:
>>
>> Dear Joe Polastre , Cory Sharp and Vlado
Handziski,
>>
>> I had developed our system with tinyos-2.x on
last year.
>> I found the bug in tinyos-2.0 source code for MSP430 PLL
problem
>> at power
>> up.
>>
>> I think
the recent version does not fix this problem. If sink mote
>> will
be
>> used
>> with unstable DC power supply, it can be
operated incorrectly on
>> RS232 bit
>> rate...
>>
Thus the gateway which is located upper layer of sink mote can not
>>
receive
>> uploading packet.
>> Now, "the unstable DC power
supply" is only meaning which rising
>> slop on
>>
power-on
>> is low.
>>
>> Could I send a file which
was fixed for this problem?
>> in the Tinyos.net site, the bug report
menu is not operating now.
>> And the e-mail accounts which is cssharp
and handzisk are not
>> response .
>>
>> Yours
sincerely,
>> K.S.Lee
K.S.,
Better yet, please email
tinyos-help!
Phil
_______________________________________________
Tinyos-help
mailing list
Tinyos-help <at> millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
<div>
<p>I'm sorry, our school email server has some problem. this is using gmail.....</p>
<p><br></p>
<p>Hi,<br>In the last of this mail , temporary fixed code exist. It should be
located <br>in
c:\cygwin\opt\tinyos-2.x\tos\chips\msp430\timer\Msp430ClockP.nc<br>But if you
understand problem exactly , you can apply it to any file which is proper
location.<br><br>If you want to reproduce it, <br>1. provide a BaseStation mote
and Laboratary Power supply.<br> connect power supply and the basestation.
increase voltage level from zero to 3.3V very slowly.<br>2. Then , probe RS-232
bit rate of the Basestation by Oscillosope. you can see the bit rate is <br>
incorrect. thus gateway can not read these datas. <br><br> in the msp430 user
guide(SLAU049xxx.pdf), the ch4 Basic clock module has <br>fault oscillator
problem. but I think oscillator fault problem is different with this.<br>this is
wrong oscillation of PLL which has problem in slow transition power
supply.<br><br>if there is reset-IC, it can help this problem. But in the telosb
clone board does not have<br>reset-IC. thus I use internal voltage detector
function of msp430.<br><br>//tinyos latest version. FEB 2,
2009.<br>//======c:\cygwin\opt\tinyos-2.x\tos\chips\msp430\timer\Msp430ClockP.nc====<br><br>module
Msp430ClockP <at> safe()<br>{<br> provides interface Init;<br> provides interface
Msp430ClockInit;<br>}<br>implementation<br>{<br> uint8_t
gSVSvalue;<br> <br> <br> MSP430REG_NORACE(IE1);<br>
MSP430REG_NORACE(TACTL);<br> MSP430REG_NORACE(TAIV);<br>
MSP430REG_NORACE(TBCTL);<br> MSP430REG_NORACE(TBIV);</p>
<p> enum<br> {<br> ACLK_CALIB_PERIOD = 8,<br> TARGET_DCO_DELTA =
(TARGET_DCO_KHZ / ACLK_KHZ) * ACLK_CALIB_PERIOD,<br> };</p>
<p>void MeasureAVCC();<br> void MyWait(uint16_t arg1);<br> </p>
<p> command void Msp430ClockInit.defaultSetupDcoCalibrate()<br> {<br> <br>
// --- setup ---</p>
<p> TACTL = TASSEL1 | MC1; // source SMCLK, continuous mode, everything else
0<br> TBCTL = TBSSEL0 | MC1;<br> BCSCTL1 = XT2OFF | RSEL2;<br> BCSCTL2
= 0;<br> TBCCTL0 = CM0;<br> }<br> <br> command void
Msp430ClockInit.defaultInitClocks()<br> {<br> // BCSCTL1<br> // .XT2OFF =
1; disable the external oscillator for SCLK and MCLK<br> // .XTS = 0; set low
frequency mode for LXFT1<br> // .DIVA = 0; set the divisor on ACLK to
1<br> // .RSEL, do not modify<br> BCSCTL1 = XT2OFF | (BCSCTL1 &
(RSEL2|RSEL1|RSEL0));</p>
<p> // BCSCTL2<br> // .SELM = 0; select DCOCLK as source for MCLK<br>
// .DIVM = 0; set the divisor of MCLK to 1<br> // .SELS = 0; select DCOCLK as
source for SCLK<br> // .DIVS = 2; set the divisor of SCLK to 4<br> //
.DCOR = 0; select internal resistor for DCO<br> BCSCTL2 = DIVS1;</p>
<p> // IE1.OFIE = 0; no interrupt for oscillator fault<br> CLR_FLAG( IE1,
OFIE );<br> }</p>
<p> command void Msp430ClockInit.defaultInitTimerA()<br> {<br> TAR = 0;</p>
<p> // TACTL<br> // .TACLGRP = 0; each TACL group latched
independently<br> // .CNTL = 0; 16-bit counter<br> // .TASSEL = 2; source
SMCLK = DCO/4<br> // .ID = 0; input divisor of 1<br> // .MC = 0; initially
disabled<br> // .TACLR = 0; reset timer A<br> // .TAIE = 1; enable timer A
interrupts<br> TACTL = TASSEL1 | TAIE;<br> }</p>
<p> command void Msp430ClockInit.defaultInitTimerB()<br> {<br> TBR = 0;</p>
<p> // TBCTL<br> // .TBCLGRP = 0; each TBCL group latched
independently<br> // .CNTL = 0; 16-bit counter<br> // .TBSSEL = 1; source
ACLK<br> // .ID = 0; input divisor of 1<br> // .MC = 0; initially
disabled<br> // .TBCLR = 0; reset timer B<br> // .TBIE = 1; enable timer B
interrupts<br> TBCTL = TBSSEL0 | TBIE;<br> }</p>
<p> default event void Msp430ClockInit.setupDcoCalibrate()<br> {<br> call
Msp430ClockInit.defaultSetupDcoCalibrate();<br> }<br> <br> default event void
Msp430ClockInit.initClocks()<br> {<br> call
Msp430ClockInit.defaultInitClocks();<br> }</p>
<p> default event void Msp430ClockInit.initTimerA()<br> {<br> call
Msp430ClockInit.defaultInitTimerA();<br> }</p>
<p> default event void Msp430ClockInit.initTimerB()<br> {<br> call
Msp430ClockInit.defaultInitTimerB();<br> }</p>
<p><br> void startTimerA()<br> {<br> // <a href="http://TACTL.MC">TACTL.MC</a> = 2; continuous
mode<br> TACTL = MC1 | (TACTL & ~(MC1|MC0));<br> }</p>
<p> void stopTimerA()<br> {<br> //<a href="http://TACTL.MC">TACTL.MC</a> = 0; stop timer B<br> TACTL =
TACTL & ~(MC1|MC0);<br> }</p>
<p> void startTimerB()<br> {<br> // <a href="http://TBCTL.MC">TBCTL.MC</a> = 2; continuous mode<br>
TBCTL = MC1 | (TBCTL & ~(MC1|MC0));<br> }</p>
<p> void stopTimerB()<br> {<br> //<a href="http://TBCTL.MC">TBCTL.MC</a> = 0; stop timer B<br> TBCTL =
TBCTL & ~(MC1|MC0);<br> }</p>
<p> void set_dco_calib( int calib )<br> {<br> BCSCTL1 = (BCSCTL1 &
~0x07) | ((calib >> 8) & 0x07);<br> DCOCTL = calib & 0xff;<br>
}</p>
<p> uint16_t test_calib_busywait_delta( int calib )<br> {<br> int8_t
aclk_count = 2;<br> uint16_t dco_prev = 0;<br> uint16_t dco_curr = 0;</p>
<p> set_dco_calib( calib );</p>
<p> while( aclk_count-- > 0 )<br> {<br> TBCCR0 = TBR +
ACLK_CALIB_PERIOD; // set next interrupt<br> TBCCTL0 &= ~CCIFG; //
clear pending interrupt<br> while( (TBCCTL0 & CCIFG) == 0 ); // busy
wait<br> dco_prev = dco_curr;<br> dco_curr = TAR;<br> }</p>
<p> return dco_curr - dco_prev;<br> }</p>
<p> // busyCalibrateDCO<br> // Should take about 9ms if
ACLK_CALIB_PERIOD=8.<br> // DCOCTL and BCSCTL1 are calibrated when done.<br>
void busyCalibrateDco()<br> {<br> // --- variables ---<br> int
calib;<br> int step;</p>
<p> // --- calibrate ---</p>
<p> // Binary search for RSEL,DCO,DCOMOD.<br> // It's okay that RSEL isn't
monotonic.</p>
<p> for( calib=0,step=0x800; step!=0; step>>=1 )<br> {<br> //
if the step is not past the target, commit it<br> if(
test_calib_busywait_delta(calib|step) <= TARGET_DCO_DELTA )<br> calib
|= step;<br> }</p>
<p> // if DCOx is 7 (0x0e0 in calib), then the 5-bit MODx is not useable, set
it to 0<br> if( (calib & 0x0e0) == 0x0e0 )<br> calib &=
~0x01f;</p>
<p> set_dco_calib( calib );<br> }</p>
<p> command error_t Init.init()<br> {<br> // Reset timers and clear
interrupt vectors<br> TACTL = TACLR;<br> TAIV = 0;<br> TBCTL =
TBCLR;<br> TBIV = 0;</p>
<p> <br> //Wait until which the VACC will 3.0V and then DCO should
oscillation correctly.<br> //If the power supply for the sink mote is
unstable, <br> //the DCO will be setted wrong and UART asynchronous data
timing will be corrupted. <br> //from MSP430 datasheet.<br> #if 1 <br>
do{<br> MeasureAVCC();<br> if((gSVSvalue >= 0xB)&&(gSVSvalue
<0xF)){//if it larger then 3.05V and smaller then 3.7V<br>
break;//OK....<br> }<br> <br> if(gSVSvalue==0xF)break; //it has
error , but it must run the others job....!!!!<br>
<br> }while(1);<br>#endif<br> <br> atomic<br> {<br> signal
Msp430ClockInit.setupDcoCalibrate();<br> busyCalibrateDco();<br>
signal Msp430ClockInit.initClocks();<br> signal
Msp430ClockInit.initTimerA();<br> signal
Msp430ClockInit.initTimerB();<br> startTimerA();<br>
startTimerB();<br> }</p>
<p> return SUCCESS;<br> }<br> <br>//=========================<br>//These
are temporary functions.<br>#define SVSCTL_REG ((unsigned char
*)(0x55))<br>#define SVSOP 0x02<br>void MyWait(uint16_t
arg1)<br>{<br> uint16_t i,k;<br> <br> for(i=0; i<arg1; i++){</p>
<p> nop(); //nop in telosb.<br> <br> }<br> <br>}<br><br>void
MeasureAVCC(){<br> uint8_t i;<br> <br> *SVSCTL_REG =( 1<<4); //init with
1.9V comparation.<br> MyWait(1200); //off to on delay is 150
us.<br> <br> for(i=1;i<14;i++){<br> *SVSCTL_REG=(i<<4);<br> MyWait(96); //each
steps delay is 12us.<br> <br> if((*SVSCTL_REG) &
SVSOP){<br> gSVSvalue=i;<br> *SVSCTL_REG =0; //off SVS to conserve
power<br> return;<br> }<br> <br> <br> }<br> <br> *SVSCTL_REG =0; //off SVS
to conserve power</p>
<p> gSVSvalue=15; //indicate error.<br> <br>}<br> <br>}<br> <br><br></p>
<blockquote>-----
Original Message -----<br>From: Vlado Handziski
<<a href="mailto:handzisk <at> tkn.tu-berlin.de">handzisk <at> tkn.tu-berlin.de</a>><br>To: 이기섭
<<a href="mailto:gslee <at> hallym.ac.kr">gslee <at> hallym.ac.kr</a>><br>Cc:
<a href="mailto:tinyos-help <at> millennium.berkeley.edu">tinyos-help <at> millennium.berkeley.edu</a><br>Sent: 2009/02/02
13:15<br>Subject: Re: [Tinyos-help] Fw: Re: for Tinyos 2.x
bugs...<br><br>Hi,<br><br>please post here more details about the problem and
your patch.<br><br>Vlado<br><br><div class="gmail_quote">2009/1/31 이기섭 <span dir="ltr"><<a href="mailto:gslee <at> hallym.ac.kr">gslee <at> hallym.ac.kr</a>></span><br><blockquote class="gmail_quote"> Dear tinyos-help<br><br>Could you receive the fixed
file for the problem which is described below <br>and update it into the tinyos
project?<br><br>K.S.Lee
<div>
<div></div>
<div class="Wj3C7c">
<br><br><blockquote>-----
Original Message -----<br>From: Philip Levis <<a href="mailto:pal <at> cs.stanford.edu" target="_blank">pal <at> cs.stanford.edu</a>><br>To: 이기섭 <<a href="mailto:gslee <at> hallym.ac.kr" target="_blank">gslee <at> hallym.ac.kr</a>><br>Cc: <a href="mailto:cssharp <at> eecs.berkeley.edu" target="_blank">cssharp <at> eecs.berkeley.edu</a>, Vlado Handziski <<a href="mailto:handzisk <at> tkn.tu-berlin.de" target="_blank">handzisk <at> tkn.tu-berlin.de</a>>, Joe Polastre <<a href="mailto:polastre <at> cs.berkeley.edu" target="_blank">polastre <at> cs.berkeley.edu</a>><br>Sent: 2009/01/31
13:49<br>Subject: Re: for Tinyos 2.x bugs...<br><br><br>On Jan 30, 2009,
at 8:05 PM, Joe Polastre wrote:<br><br>> please contact Phil Levis, <a href="mailto:pal <at> cs.stanford.edu" target="_blank">pal <at> cs.stanford.edu</a><br>><br>> Best,<br>>
-Joe<br>><br>> On Fri, Jan 30, 2009 at 7:39 PM, 이기섭 <<a href="mailto:gslee <at> hallym.ac.kr" target="_blank">gslee <at> hallym.ac.kr</a>>
wrote:<br>>><br>>> Dear Joe Polastre , Cory Sharp and Vlado
Handziski,<br>>><br>>> I had developed our system with tinyos-2.x on
last year.<br>>> I found the bug in tinyos-2.0 source code for MSP430 PLL
problem <br>>> at power<br>>> up.<br>>><br>>> I think
the recent version does not fix this problem. If sink mote <br>>> will
be<br>>> used<br>>> with unstable DC power supply, it can be
operated incorrectly on <br>>> RS232 bit<br>>> rate...<br>>>
Thus the gateway which is located upper layer of sink mote can not <br>>>
receive<br>>> uploading packet.<br>>> Now, "the unstable DC power
supply" is only meaning which rising <br>>> slop on<br>>>
power-on<br>>> is low.<br>>><br>>> Could I send a file which
was fixed for this problem?<br>>> in the Tinyos.net site, the bug report
menu is not operating now.<br>>> And the e-mail accounts which is cssharp
and handzisk are not <br>>> response .<br>>><br>>> Yours
sincerely,<br>>> K.S.Lee<br><br><br>K.S.,<br><br>Better yet, please email
tinyos-help!<br><br>Phil</blockquote>
</div>
</div>
<br>_______________________________________________<br>Tinyos-help
mailing list<br><a href="mailto:Tinyos-help <at> millennium.berkeley.edu">Tinyos-help <at> millennium.berkeley.edu</a><br><a href="https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help" target="_blank">https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help</a><br>
</blockquote>
</div>
</blockquote>
</div>