X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fcc2420%2Freceive%2FCC2420ReceiveP.nc;h=b50ad035a36a93e54086eb8bdaee2f68e1489988;hb=979965da13886883fe7399d60ff4d025f53bfd4c;hp=d21f76fd61c830ee0992ba4cbe2f359cc5afa486;hpb=3ecb3b5210e3967ef0b2ea1eb8ba9c9e9d9906e1;p=tinyos-2.x.git diff --git a/tos/chips/cc2420/receive/CC2420ReceiveP.nc b/tos/chips/cc2420/receive/CC2420ReceiveP.nc index d21f76fd..b50ad035 100644 --- a/tos/chips/cc2420/receive/CC2420ReceiveP.nc +++ b/tos/chips/cc2420/receive/CC2420ReceiveP.nc @@ -126,6 +126,10 @@ implementation { reset_state(); m_state = S_STARTED; atomic receivingPacket = FALSE; + /* Note: + We use the falling edge because the FIFOP polarity is reversed. + This is done in CC2420Power.startOscillator from CC2420ControlP.nc. + */ call InterruptFIFOP.enableFallingEdge(); } return SUCCESS; @@ -334,7 +338,7 @@ implementation { metadata->lqi = buf[ length ] & 0x7f; metadata->rssi = buf[ length - 1 ]; - if(passesAddressCheck(m_p_rx_buf)) { + if (passesAddressCheck(m_p_rx_buf) && length >= CC2420_SIZE) { m_p_rx_buf = signal Receive.receive( m_p_rx_buf, m_p_rx_buf->data, length - CC2420_SIZE); }