From: travisutk Date: Sun, 12 Feb 2012 16:50:48 +0000 (+0000) Subject: Patched the CCSPI reflexive jamming code to flush the RX buffer when required. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=5c9f0bab9a953ecae957f8ac1c376c228a55026f;hp=6373a97ac3426c9d9966cf6a08286ecd13cc2ced Patched the CCSPI reflexive jamming code to flush the RX buffer when required. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1087 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/firmware/apps/radios/ccspi.c b/firmware/apps/radios/ccspi.c index d08da28..4ab98fd 100644 --- a/firmware/apps/radios/ccspi.c +++ b/firmware/apps/radios/ccspi.c @@ -191,42 +191,50 @@ void ccspi_handle_fn( uint8_t const app, case CCSPI_REFLEX: #if defined(FIFOP) && defined(SFD) && defined(FIFO) && defined(PLED2DIR) && defined(PLED2PIN) && defined(PLED2OUT) - txdata(app,verb,1); //Just sending some response back to client + //txdata(app,verb,1); //Let the client continue its business. while(1) { - //Wait until a packet is received - while(!SFD); - //Turn on LED 2 (green) as signal - PLED2DIR |= PLED2PIN; - PLED2OUT &= ~PLED2PIN; + //Wait until a packet is received + while(!SFD){ + //Has there been an overflow in the RX buffer? + if((!FIFO)&&FIFOP){ + debugstr("Clearing RX overflow"); + CLRSS; + ccspitrans8(0x08); //SFLUSHRX + SETSS; + } + } + //Turn on LED 2 (green) as signal + PLED2DIR |= PLED2PIN; + PLED2OUT &= ~PLED2PIN; - //Put radio in TX mode - CLRSS; - ccspitrans8(0x04); - SETSS; + //Put radio in TX mode + CLRSS; + ccspitrans8(0x04); + SETSS; - //Load the jamming packet. - //Note: attempts to preload this actually slowed the jam time down from 7 to 9 bytes. - CLRSS; - ccspitrans8(CCSPI_TXFIFO); - char pkt[15] = {0x0f, 0x01, 0x08, 0x82, 0xff, 0xff, 0xff, 0xff, 0xde, 0xad, 0xbe, 0xef, 0xba, 0xbe, 0xc0}; - //char pkt[12] = {0x0c, 0x01, 0x08, 0x82, 0xff, 0xff, 0xff, 0xff, 0xde, 0xad, 0xbe, 0xef}; - for(i=0;i