@@ -98,14 +98,12 @@ typedef struct {
9898 unsigned char * pTxPacket ;
9999 unsigned char * pRxPacket ;
100100} tSpiInformation ;
101- tSpiInformation sSpiInformation ;
101+ STATIC tSpiInformation sSpiInformation ;
102102
103- char spi_buffer [CC3000_RX_BUFFER_SIZE ];
103+ STATIC char spi_buffer [CC3000_RX_BUFFER_SIZE ];
104104unsigned char wlan_tx_buffer [CC3000_TX_BUFFER_SIZE ];
105105
106106STATIC const mp_obj_fun_builtin_t irq_callback_obj ;
107- void SpiWriteDataSynchronous (unsigned char * data , unsigned short size );
108- void SpiReadDataSynchronous (unsigned char * data , unsigned short size );
109107
110108// set the pins to use to communicate with the CC3000
111109// the arguments must be of type pin_obj_t* and SPI_HandleTypeDef*
@@ -185,35 +183,45 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
185183 DEBUG_printf ("SpiOpen finished; IRQ.pin=%d IRQ_LINE=%d\n" , PIN_IRQ -> pin , PIN_IRQ -> pin );
186184}
187185
188-
189- void SpiPauseSpi (void )
186+ long ReadWlanInterruptPin (void )
190187{
191- extint_disable (PIN_IRQ -> pin );
188+ return HAL_GPIO_ReadPin (PIN_IRQ -> gpio , PIN_IRQ -> pin_mask );
192189}
193190
194- void SpiResumeSpi ( void )
191+ void WriteWlanPin ( unsigned char val )
195192{
196- extint_enable (PIN_IRQ -> pin );
193+ HAL_GPIO_WritePin (PIN_EN -> gpio , PIN_EN -> pin_mask ,
194+ (WLAN_ENABLE )? GPIO_PIN_SET :GPIO_PIN_RESET );
197195}
198196
199- long ReadWlanInterruptPin ( void )
197+ STATIC void SpiWriteDataSynchronous ( unsigned char * data , unsigned short size )
200198{
201- return HAL_GPIO_ReadPin (PIN_IRQ -> gpio , PIN_IRQ -> pin_mask );
199+ DEBUG_printf ("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n" , data , data [0 ], data [1 ], data [2 ], data [3 ], size );
200+ __disable_irq ();
201+ if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
202+ //BREAK();
203+ }
204+ __enable_irq ();
205+ DEBUG_printf (" - rx data = [%x %x %x %x]\n" , data [0 ], data [1 ], data [2 ], data [3 ]);
202206}
203207
204- void WriteWlanPin (unsigned char val )
208+ STATIC void SpiReadDataSynchronous (unsigned char * data , unsigned short size )
205209{
206- HAL_GPIO_WritePin (PIN_EN -> gpio , PIN_EN -> pin_mask ,
207- (WLAN_ENABLE )? GPIO_PIN_SET :GPIO_PIN_RESET );
210+ memset (data , READ , size );
211+ __disable_irq ();
212+ if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
213+ //BREAK();
214+ }
215+ __enable_irq ();
208216}
209217
210- void __delay_cycles (volatile int x )
218+ STATIC void __delay_cycles (volatile int x )
211219{
212220 x *= 6 ; // for 168 MHz CPU
213221 while (x -- );
214222}
215223
216- long SpiFirstWrite (unsigned char * ucBuf , unsigned short usLength )
224+ STATIC long SpiFirstWrite (unsigned char * ucBuf , unsigned short usLength )
217225{
218226 DEBUG_printf ("SpiFirstWrite %lu\n" , sSpiInformation .ulSpiState );
219227
@@ -308,28 +316,9 @@ long SpiWrite(unsigned char *pUserBuffer, unsigned short usLength)
308316 return (0 );
309317}
310318
311- void SpiWriteDataSynchronous (unsigned char * data , unsigned short size )
312- {
313- DEBUG_printf ("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n" , data , data [0 ], data [1 ], data [2 ], data [3 ], size );
314- __disable_irq ();
315- if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
316- //BREAK();
317- }
318- __enable_irq ();
319- DEBUG_printf (" - rx data = [%x %x %x %x]\n" , data [0 ], data [1 ], data [2 ], data [3 ]);
320- }
321-
322- void SpiReadDataSynchronous (unsigned char * data , unsigned short size )
323- {
324- memset (data , READ , size );
325- __disable_irq ();
326- if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
327- //BREAK();
328- }
329- __enable_irq ();
330- }
331-
332- void SpiReadPacket (void )
319+ #if 0
320+ unused
321+ STATIC void SpiReadPacket (void )
333322{
334323 int length ;
335324
@@ -344,13 +333,14 @@ void SpiReadPacket(void)
344333
345334 sSpiInformation .ulSpiState = eSPI_STATE_READ_EOT ;
346335}
336+ #endif
347337
348- void SpiReadHeader (void )
338+ STATIC void SpiReadHeader (void )
349339{
350340 SpiReadDataSynchronous (sSpiInformation .pRxPacket , 10 );
351341}
352342
353- void SpiTriggerRxProcessing (void )
343+ STATIC void SpiTriggerRxProcessing (void )
354344{
355345 SpiPauseSpi ();
356346 CS_HIGH ();
@@ -367,7 +357,7 @@ void SpiTriggerRxProcessing(void)
367357}
368358
369359
370- long SpiReadDataCont (void )
360+ STATIC long SpiReadDataCont (void )
371361{
372362 long data_to_recv = 0 ;
373363 unsigned char * evnt_buff , type ;
@@ -413,7 +403,7 @@ long SpiReadDataCont(void)
413403 return 0 ;
414404}
415405
416- void SSIContReadOperation (void )
406+ STATIC void SSIContReadOperation (void )
417407{
418408 // The header was read - continue with the payload read
419409 if (!SpiReadDataCont ()) {
@@ -423,8 +413,7 @@ void SSIContReadOperation(void)
423413 }
424414}
425415
426- STATIC mp_obj_t irq_callback (mp_obj_t line )
427- {
416+ STATIC mp_obj_t irq_callback (mp_obj_t line ) {
428417 DEBUG_printf ("<< IRQ; state=%lu >>\n" , sSpiInformation .ulSpiState );
429418 switch (sSpiInformation .ulSpiState ) {
430419 case eSPI_STATE_POWERUP :
@@ -459,3 +448,13 @@ STATIC mp_obj_t irq_callback(mp_obj_t line)
459448}
460449
461450STATIC MP_DEFINE_CONST_FUN_OBJ_1 (irq_callback_obj , irq_callback );
451+
452+ void SpiPauseSpi (void ) {
453+ DEBUG_printf ("SpiPauseSpi\n" );
454+ extint_disable (PIN_IRQ -> pin );
455+ }
456+
457+ void SpiResumeSpi (void ) {
458+ DEBUG_printf ("SpiResumeSpi\n" );
459+ extint_enable (PIN_IRQ -> pin );
460+ }
0 commit comments