Updated GCC/ARM7 ISR functions so they only use static variables.

This commit is contained in:
Richard Barry 2007-10-26 10:14:19 +00:00
parent a3921adfe1
commit c54ec1c639
8 changed files with 52 additions and 21 deletions

View file

@ -59,7 +59,12 @@ void vEINT0_ISR( void )
portENTER_SWITCHING_ISR();
extern xQueueHandle xTCPISRQueue;
portBASE_TYPE xTaskWoken = pdFALSE;
/* Must be declared static. */
static portBASE_TYPE xTaskWoken;
/* As the variable is static it must be manually initialised. */
xTaskWoken = pdFALSE;
/* Just wake the TCP task so it knows an ISR has occurred. */
xQueueSendFromISR( xTCPISRQueue, ( void * ) &lDummyVariable, xTaskWoken );

View file

@ -124,11 +124,16 @@ void vI2C_ISR( void )
{
portENTER_SWITCHING_ISR();
/* Variables must be static. */
/* Holds the current transmission state. */
static I2C_STATE eCurrentState = eSentStart;
static portLONG lMessageIndex = -i2cBUFFER_ADDRESS_BYTES; /* There are two address bytes to send prior to the data. */
portBASE_TYPE xTaskWokenByTx = pdFALSE;
portLONG lBytesLeft;
static portBASE_TYPE xTaskWokenByTx;
static portLONG lBytesLeft;
xTaskWokenByTx = pdFALSE;
/* The action taken for this interrupt depends on our current state. */
switch( eCurrentState )