Hi!

On Wed, 20 Jan 2010, Wenjie Zeng wrote:

> Hi Razvan,
>
> Thank you for your reply. Yes, I originally thought that CC2420TransmitP
> would make a hard copy of the message_t structure into its local variable
> and issue the strobe later on. However, the only local variable in
> CC2420TransmitP is a message_t* pointer. I actually trace all the way down
> to CC2420Fifo -> CC2420SpiC -> HplCC2420SpiC -> Msp430NoDmaSpiC, which
> actually implements SpiPacket.send(message_t* ...), it's all passing
> pointers. Am I following the wrong data path or the hard copy actually takes
> place elsewhere? Thank you.
>

... -> HplCC2420SpiC -> Msp430Spi0C -> Msp430SpiNoDma0P -> Msp430SpiNoDmaP

In continueOp from Msp430SpiNoDmaP you will see that there is a while loop 
in which each byte of the packet is sent:

    133       while ( ++m_pos < end ) {
    134         while( !call Usart.isRxIntrPending() );
    135         tmp = call Usart.rx();
    136         if ( m_rx_buf )
    137           m_rx_buf[ m_pos - 1 ] = tmp;
    138         call Usart.tx( m_tx_buf ? m_tx_buf[ m_pos ] : 0 );
    139       }

--
Razvan ME

> On Wed, Jan 20, 2010 at 10:20 PM, Razvan Musaloiu-E. 
> <[email protected]>wrote:
>
>> Hi!
>>
>>
>> On Wed, 20 Jan 2010, Wenjie Zeng wrote:
>>
>>  Hi,
>>>
>>> I read in the RI-MAC paper that by preloading the message into the TXFIFO
>>> buffer, we can accelerate the Send.send process. I am assuming that
>>> somewhere down the radio stack, we need to copy a message_t structure, which
>>> is somewhat time-consuming,  rather than simply copying copying message_t*
>>> pointer along. Is this true?
>>>
>>
>> No. :-) To send a packet using CC2420 the packet first needs to be loaded
>> in the TXFIFO, and then a STXON or STXONCCA strobe command needs to be
>> issued. The send strobe can be issued much later than the actual loading.
>>
>>
>>  I asked because, through tracing into the CC2420 radio stack, I see nothing
>>> beyond pointer copies. I am trying to push the limit of the efficiency of my
>>> protocol, so if such preloading can be done, could someone please tell me
>>> which file I should look at? Thank you.
>>>
>>>
>> I think the place you need to look is CC2420TransmitP.nc from
>> tos/chips/cc2420/transmit.
>>
>> I highly recommend the CC2420 datasheet:
>>        http://focus.ti.com/lit/ds/symlink/cc2420.pdf
>>
>> --
>> Razvan ME
>>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to