Replace FreeRTOS core/non-portable files with unmodified variants from vanilla 7.5.2

This commit is contained in:
Angus Gratton 2015-05-07 12:12:53 +10:00
parent b50ba19b1f
commit b7e0e232dd
5 changed files with 152 additions and 325 deletions

View file

@ -238,14 +238,12 @@ static void prvCheckPendingReadyList( void )
corCRCB *pxUnblockedCRCB;
/* The pending ready list can be accessed by an ISR. */
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) );
( void ) uxListRemove( &( pxUnblockedCRCB->xEventListItem ) );
}
// portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
( void ) uxListRemove( &( pxUnblockedCRCB->xGenericListItem ) );
prvAddCoRoutineToReadyQueue( pxUnblockedCRCB );
@ -286,8 +284,7 @@ corCRCB *pxCRCB;
break;
}
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
/* The event could have occurred just before this critical
section. If this is the case then the generic list item will
@ -302,8 +299,7 @@ PortDisableInt_NoNest();
( void ) uxListRemove( &( pxCRCB->xEventListItem ) );
}
}
// portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
prvAddCoRoutineToReadyQueue( pxCRCB );
}

View file

@ -71,8 +71,7 @@
* PUBLIC LIST API documented in list.h
*----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vListInitialise( xList * const pxList )
void vListInitialise( xList * const pxList )
{
/* The list structure contains a list item which is used to mark the
end of the list. To initialise the list the list end is inserted
@ -92,16 +91,14 @@ vListInitialise( xList * const pxList )
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vListInitialiseItem( xListItem * const pxItem )
void vListInitialiseItem( xListItem * const pxItem )
{
/* Make sure the list item is not recorded as being on a list. */
pxItem->pvContainer = NULL;
}
/*-----------------------------------------------------------*/
void
vListInsertEnd( xList * const pxList, xListItem * const pxNewListItem )
void vListInsertEnd( xList * const pxList, xListItem * const pxNewListItem )
{
xListItem * pxIndex;
@ -122,8 +119,7 @@ xListItem * pxIndex;
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vListInsert( xList * const pxList, xListItem * const pxNewListItem )
void vListInsert( xList * const pxList, xListItem * const pxNewListItem )
{
xListItem *pxIterator;
portTickType xValueOfInsertion;
@ -181,8 +177,7 @@ portTickType xValueOfInsertion;
}
/*-----------------------------------------------------------*/
unsigned portBASE_TYPE
uxListRemove( xListItem * const pxItemToRemove )
unsigned portBASE_TYPE uxListRemove( xListItem * const pxItemToRemove )
{
xList * pxList;

View file

@ -75,7 +75,7 @@ task.h is included from an application file. */
#include "queue.h"
#if ( configUSE_CO_ROUTINES == 1 )
#include "freertos/croutine.h"
#include "croutine.h"
#endif
/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
@ -234,9 +234,7 @@ static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvB
} \
taskEXIT_CRITICAL()
/*-----------------------------------------------------------*/
portBASE_TYPE ICACHE_FLASH_ATTR
xQueueGenericReset( xQueueHandle xQueue, portBASE_TYPE xNewQueue )
portBASE_TYPE xQueueGenericReset( xQueueHandle xQueue, portBASE_TYPE xNewQueue )
{
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -281,8 +279,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
}
/*-----------------------------------------------------------*/
xQueueHandle ICACHE_FLASH_ATTR
xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType )
xQueueHandle xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType )
{
xQUEUE *pxNewQueue;
size_t xQueueSizeInBytes;
@ -341,9 +338,7 @@ xQueueHandle xReturn = NULL;
/*-----------------------------------------------------------*/
#if ( configUSE_MUTEXES == 1 )
xQueueHandle ICACHE_FLASH_ATTR
xQueueCreateMutex( unsigned char ucQueueType )
xQueueHandle xQueueCreateMutex( unsigned char ucQueueType )
{
xQUEUE *pxNewQueue;
@ -407,9 +402,7 @@ xQueueHandle xReturn = NULL;
/*-----------------------------------------------------------*/
#if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
void* ICACHE_FLASH_ATTR
xQueueGetMutexHolder( xQueueHandle xSemaphore )
void* xQueueGetMutexHolder( xQueueHandle xSemaphore )
{
void *pxReturn;
@ -438,9 +431,7 @@ xQueueHandle xReturn = NULL;
/*-----------------------------------------------------------*/
#if ( configUSE_RECURSIVE_MUTEXES == 1 )
portBASE_TYPE ICACHE_FLASH_ATTR
xQueueGiveMutexRecursive( xQueueHandle xMutex )
portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex )
{
portBASE_TYPE xReturn;
xQUEUE * const pxMutex = ( xQUEUE * ) xMutex;
@ -489,9 +480,7 @@ xQueueHandle xReturn = NULL;
/*-----------------------------------------------------------*/
#if ( configUSE_RECURSIVE_MUTEXES == 1 )
portBASE_TYPE ICACHE_FLASH_ATTR
xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime )
portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime )
{
portBASE_TYPE xReturn;
xQUEUE * const pxMutex = ( xQUEUE * ) xMutex;
@ -531,9 +520,7 @@ xQueueHandle xReturn = NULL;
/*-----------------------------------------------------------*/
#if ( configUSE_COUNTING_SEMAPHORES == 1 )
xQueueHandle ICACHE_FLASH_ATTR
xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount )
xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount )
{
xQueueHandle xHandle;
@ -556,9 +543,7 @@ xQueueHandle xReturn = NULL;
#endif /* configUSE_COUNTING_SEMAPHORES */
/*-----------------------------------------------------------*/
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )
signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )
{
signed portBASE_TYPE xEntryTimeSet = pdFALSE;
xTimeOutType xTimeOut;
@ -719,9 +704,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
/*-----------------------------------------------------------*/
#if ( configUSE_ALTERNATIVE_API == 1 )
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueAltGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )
signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )
{
signed portBASE_TYPE xEntryTimeSet = pdFALSE;
xTimeOutType xTimeOut;
@ -798,9 +781,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
/*-----------------------------------------------------------*/
#if ( configUSE_ALTERNATIVE_API == 1 )
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueAltGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )
signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )
{
signed portBASE_TYPE xEntryTimeSet = pdFALSE;
xTimeOutType xTimeOut;
@ -929,9 +910,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
#endif /* configUSE_ALTERNATIVE_API */
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xQueueGenericSendFromISR( xQueueHandle xQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition )
signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle xQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition )
{
signed portBASE_TYPE xReturn;
unsigned portBASE_TYPE uxSavedInterruptStatus;
@ -962,9 +941,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
queue read, instead we return a flag to say whether a context switch is
required or not (i.e. has a task with a higher priority than us been woken
by this post). */
// uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
portSET_INTERRUPT_MASK_FROM_ISR();
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
{
if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
{
@ -1044,9 +1021,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
return xReturn;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueGenericReceive( xQueueHandle xQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )
signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )
{
signed portBASE_TYPE xEntryTimeSet = pdFALSE;
xTimeOutType xTimeOut;
@ -1200,9 +1175,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
}
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xQueueReceiveFromISR( xQueueHandle xQueue, const void * const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken )
signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle xQueue, const void * const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken )
{
signed portBASE_TYPE xReturn;
unsigned portBASE_TYPE uxSavedInterruptStatus;
@ -1227,9 +1200,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
// uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
portSET_INTERRUPT_MASK_FROM_ISR();
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
{
/* Cannot block in an ISR, so check there is data available. */
if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
@ -1278,9 +1249,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
return xReturn;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xQueuePeekFromISR( xQueueHandle xQueue, const void * const pvBuffer )
signed portBASE_TYPE xQueuePeekFromISR( xQueueHandle xQueue, const void * const pvBuffer )
{
signed portBASE_TYPE xReturn;
unsigned portBASE_TYPE uxSavedInterruptStatus;
@ -1306,9 +1275,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
// uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
portSET_INTERRUPT_MASK_FROM_ISR();
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
{
/* Cannot block in an ISR, so check there is data available. */
if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
@ -1335,8 +1302,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
}
/*-----------------------------------------------------------*/
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxQueueMessagesWaiting( const xQueueHandle xQueue )
unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue )
{
unsigned portBASE_TYPE uxReturn;
@ -1350,8 +1316,7 @@ unsigned portBASE_TYPE uxReturn;
} /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
/*-----------------------------------------------------------*/
unsigned portBASE_TYPE
uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue )
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue )
{
unsigned portBASE_TYPE uxReturn;
@ -1363,8 +1328,7 @@ unsigned portBASE_TYPE uxReturn;
} /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vQueueDelete( xQueueHandle xQueue )
void vQueueDelete( xQueueHandle xQueue )
{
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1383,8 +1347,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
#if ( configUSE_TRACE_FACILITY == 1 )
unsigned char ICACHE_FLASH_ATTR
ucQueueGetQueueNumber( xQueueHandle xQueue )
unsigned char ucQueueGetQueueNumber( xQueueHandle xQueue )
{
return ( ( xQUEUE * ) xQueue )->ucQueueNumber;
}
@ -1394,8 +1357,7 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
#if ( configUSE_TRACE_FACILITY == 1 )
void ICACHE_FLASH_ATTR
vQueueSetQueueNumber( xQueueHandle xQueue, unsigned char ucQueueNumber )
void vQueueSetQueueNumber( xQueueHandle xQueue, unsigned char ucQueueNumber )
{
( ( xQUEUE * ) xQueue )->ucQueueNumber = ucQueueNumber;
}
@ -1405,17 +1367,14 @@ xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
#if ( configUSE_TRACE_FACILITY == 1 )
unsigned char ICACHE_FLASH_ATTR
ucQueueGetQueueType( xQueueHandle xQueue )
unsigned char ucQueueGetQueueType( xQueueHandle xQueue )
{
return ( ( xQUEUE * ) xQueue )->ucQueueType;
}
#endif /* configUSE_TRACE_FACILITY */
/*-----------------------------------------------------------*/
static void
prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition )
static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition )
{
if( pxQueue->uxItemSize == ( unsigned portBASE_TYPE ) 0 )
{
@ -1464,9 +1423,7 @@ prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xP
++( pxQueue->uxMessagesWaiting );
}
/*-----------------------------------------------------------*/
static void
prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvBuffer )
static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvBuffer )
{
if( pxQueue->uxQueueType != queueQUEUE_IS_MUTEX )
{
@ -1479,9 +1436,7 @@ prvCopyDataFromQueue( xQUEUE * const pxQueue, const void * const pvBuffer )
}
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvUnlockQueue( xQUEUE *pxQueue )
static void prvUnlockQueue( xQUEUE *pxQueue )
{
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */
@ -1579,9 +1534,7 @@ prvUnlockQueue( xQUEUE *pxQueue )
taskEXIT_CRITICAL();
}
/*-----------------------------------------------------------*/
static signed portBASE_TYPE ICACHE_FLASH_ATTR
prvIsQueueEmpty( const xQUEUE *pxQueue )
static signed portBASE_TYPE prvIsQueueEmpty( const xQUEUE *pxQueue )
{
signed portBASE_TYPE xReturn;
@ -1601,9 +1554,7 @@ signed portBASE_TYPE xReturn;
return xReturn;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xQueueIsQueueEmptyFromISR( const xQueueHandle xQueue )
signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle xQueue )
{
signed portBASE_TYPE xReturn;
@ -1620,9 +1571,7 @@ signed portBASE_TYPE xReturn;
return xReturn;
} /*lint !e818 xQueue could not be pointer to const because it is a typedef. */
/*-----------------------------------------------------------*/
static signed portBASE_TYPE ICACHE_FLASH_ATTR
prvIsQueueFull( const xQUEUE *pxQueue )
static signed portBASE_TYPE prvIsQueueFull( const xQUEUE *pxQueue )
{
signed portBASE_TYPE xReturn;
@ -1642,9 +1591,7 @@ signed portBASE_TYPE xReturn;
return xReturn;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xQueueIsQueueFullFromISR( const xQueueHandle xQueue )
signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle xQueue )
{
signed portBASE_TYPE xReturn;
@ -1663,9 +1610,7 @@ signed portBASE_TYPE xReturn;
/*-----------------------------------------------------------*/
#if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueCRSend( xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait )
signed portBASE_TYPE xQueueCRSend( xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait )
{
signed portBASE_TYPE xReturn;
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1673,9 +1618,7 @@ signed portBASE_TYPE xReturn;
/* If the queue is already full we may have to block. A critical section
is required to prevent an interrupt removing something from the queue
between the check to see if the queue is full and blocking on the queue. */
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
if( prvIsQueueFull( pxQueue ) != pdFALSE )
{
@ -1686,23 +1629,19 @@ PortDisableInt_NoNest();
/* As this is called from a coroutine we cannot block directly, but
return indicating that we need to block. */
vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToSend ) );
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return errQUEUE_BLOCKED;
}
else
{
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return errQUEUE_FULL;
}
}
}
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )
{
@ -1730,8 +1669,8 @@ PortDisableInt_NoNest();
xReturn = errQUEUE_FULL;
}
}
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return xReturn;
}
@ -1739,9 +1678,7 @@ PortEnableInt_NoNest();
/*-----------------------------------------------------------*/
#if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueCRReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait )
signed portBASE_TYPE xQueueCRReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait )
{
signed portBASE_TYPE xReturn;
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1749,9 +1686,7 @@ PortEnableInt_NoNest();
/* If the queue is already empty we may have to block. A critical section
is required to prevent an interrupt adding something to the queue
between the check to see if the queue is empty and blocking on the queue. */
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 )
{
@ -1762,23 +1697,19 @@ PortDisableInt_NoNest();
/* As this is a co-routine we cannot block directly, but return
indicating that we need to block. */
vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToReceive ) );
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return errQUEUE_BLOCKED;
}
else
{
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return errQUEUE_FULL;
}
}
}
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
{
if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
{
@ -1811,8 +1742,7 @@ PortDisableInt_NoNest();
xReturn = pdFAIL;
}
}
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
return xReturn;
}
@ -1821,9 +1751,7 @@ PortEnableInt_NoNest();
/*-----------------------------------------------------------*/
#if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE
xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken )
signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken )
{
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1855,8 +1783,7 @@ PortEnableInt_NoNest();
#if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE
xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken )
signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken )
{
signed portBASE_TYPE xReturn;
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1900,8 +1827,7 @@ PortEnableInt_NoNest();
#if ( configQUEUE_REGISTRY_SIZE > 0 )
void ICACHE_FLASH_ATTR
vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName )
void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName )
{
unsigned portBASE_TYPE ux;
@ -1924,8 +1850,7 @@ PortEnableInt_NoNest();
#if ( configQUEUE_REGISTRY_SIZE > 0 )
void ICACHE_FLASH_ATTR
vQueueUnregisterQueue( xQueueHandle xQueue )
void vQueueUnregisterQueue( xQueueHandle xQueue )
{
unsigned portBASE_TYPE ux;
@ -1948,8 +1873,7 @@ PortEnableInt_NoNest();
#if ( configUSE_TIMERS == 1 )
void ICACHE_FLASH_ATTR
vQueueWaitForMessageRestricted( xQueueHandle xQueue, portTickType xTicksToWait )
void vQueueWaitForMessageRestricted( xQueueHandle xQueue, portTickType xTicksToWait )
{
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1981,8 +1905,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
xQueueSetHandle ICACHE_FLASH_ATTR
xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength )
xQueueSetHandle xQueueCreateSet( unsigned portBASE_TYPE uxEventQueueLength )
{
xQueueSetHandle pxQueue;
@ -1996,8 +1919,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
portBASE_TYPE ICACHE_FLASH_ATTR
xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )
portBASE_TYPE xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )
{
portBASE_TYPE xReturn;
@ -2030,8 +1952,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
portBASE_TYPE ICACHE_FLASH_ATTR
xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )
portBASE_TYPE xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet )
{
portBASE_TYPE xReturn;
xQUEUE * const pxQueueOrSemaphore = ( xQUEUE * ) xQueueOrSemaphore;
@ -2067,8 +1988,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
xQueueSetMemberHandle ICACHE_FLASH_ATTR
xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks )
xQueueSetMemberHandle xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks )
{
xQueueSetMemberHandle xReturn = NULL;
@ -2081,8 +2001,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
xQueueSetMemberHandle
xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet )
xQueueSetMemberHandle xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet )
{
xQueueSetMemberHandle xReturn = NULL;
@ -2095,8 +2014,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 )
static portBASE_TYPE ICACHE_FLASH_ATTR
prvNotifyQueueSetContainer( const xQUEUE * const pxQueue, portBASE_TYPE xCopyPosition )
static portBASE_TYPE prvNotifyQueueSetContainer( const xQUEUE * const pxQueue, portBASE_TYPE xCopyPosition )
{
xQUEUE *pxQueueSetContainer = pxQueue->pxQueueSetContainer;
portBASE_TYPE xReturn = pdFALSE;

View file

@ -101,7 +101,7 @@ privileged Vs unprivileged linkage and placement. */
/*
* Defines the size, in words, of the stack allocated to the idle task.
*/
#define tskIDLE_STACK_SIZE 176 //configMINIMAL_STACK_SIZE
#define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE
/*
* Task control block. A task control block (TCB) is allocated for each task,
@ -475,8 +475,7 @@ static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TY
#endif
signed portBASE_TYPE ICACHE_FLASH_ATTR
xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions )
signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions )
{
signed portBASE_TYPE xReturn;
tskTCB * pxNewTCB;
@ -632,8 +631,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskDelete == 1 )
void ICACHE_FLASH_ATTR
vTaskDelete( xTaskHandle xTaskToDelete )
void vTaskDelete( xTaskHandle xTaskToDelete )
{
tskTCB *pxTCB;
@ -687,8 +685,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskDelayUntil == 1 )
void ICACHE_FLASH_ATTR
vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement )
void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement )
{
portTickType xTimeToWake;
portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE;
@ -764,8 +761,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskDelay == 1 )
void ICACHE_FLASH_ATTR
vTaskDelay( portTickType xTicksToDelay )
void vTaskDelay( portTickType xTicksToDelay )
{
portTickType xTimeToWake;
signed portBASE_TYPE xAlreadyYielded = pdFALSE;
@ -817,8 +813,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_eTaskGetState == 1 )
eTaskState ICACHE_FLASH_ATTR
eTaskGetState( xTaskHandle xTask )
eTaskState eTaskGetState( xTaskHandle xTask )
{
eTaskState eReturn;
xList *pxStateList;
@ -878,8 +873,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_uxTaskPriorityGet == 1 )
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxTaskPriorityGet( xTaskHandle xTask )
unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle xTask )
{
tskTCB *pxTCB;
unsigned portBASE_TYPE uxReturn;
@ -901,8 +895,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskPrioritySet == 1 )
void ICACHE_FLASH_ATTR
vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority )
void vTaskPrioritySet( xTaskHandle xTask, unsigned portBASE_TYPE uxNewPriority )
{
tskTCB *pxTCB;
unsigned portBASE_TYPE uxCurrentBasePriority, uxPriorityUsedOnEntry;
@ -1033,8 +1026,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskSuspend == 1 )
void ICACHE_FLASH_ATTR
vTaskSuspend( xTaskHandle xTaskToSuspend )
void vTaskSuspend( xTaskHandle xTaskToSuspend )
{
tskTCB *pxTCB;
@ -1095,8 +1087,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskSuspend == 1 )
signed portBASE_TYPE ICACHE_FLASH_ATTR
xTaskIsTaskSuspended( xTaskHandle xTask )
signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask )
{
portBASE_TYPE xReturn = pdFALSE;
const tskTCB * const pxTCB = ( tskTCB * ) xTask;
@ -1130,8 +1121,7 @@ tskTCB * pxNewTCB;
#if ( INCLUDE_vTaskSuspend == 1 )
void ICACHE_FLASH_ATTR
vTaskResume( xTaskHandle xTaskToResume )
void vTaskResume( xTaskHandle xTaskToResume )
{
tskTCB * const pxTCB = ( tskTCB * ) xTaskToResume;
@ -1172,8 +1162,7 @@ tskTCB * pxNewTCB;
#if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )
portBASE_TYPE
xTaskResumeFromISR( xTaskHandle xTaskToResume )
portBASE_TYPE xTaskResumeFromISR( xTaskHandle xTaskToResume )
{
portBASE_TYPE xYieldRequired = pdFALSE;
tskTCB * const pxTCB = ( tskTCB * ) xTaskToResume;
@ -1199,9 +1188,7 @@ tskTCB * pxNewTCB;
http://www.freertos.org/RTOS-Cortex-M3-M4.html */
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
// uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
portSET_INTERRUPT_MASK_FROM_ISR();
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
{
if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE )
{
@ -1230,8 +1217,7 @@ tskTCB * pxNewTCB;
#endif /* ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) */
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskStartScheduler( void )
void vTaskStartScheduler( void )
{
portBASE_TYPE xReturn;
@ -1241,7 +1227,6 @@ portBASE_TYPE xReturn;
/* Create the idle task, storing its handle in xIdleTaskHandle so it can
be returned by the xTaskGetIdleTaskHandle() function. */
xReturn = xTaskCreate( prvIdleTask, ( signed char * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
printf("idle_task_hdl : %x\n", xIdleTaskHandle);
}
#else
{
@ -1269,8 +1254,7 @@ printf("idle_task_hdl : %x\n", xIdleTaskHandle);
STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE
DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
xSchedulerRunning = pdTRUE;
xTickCount = ( portTickType ) 0U;
@ -1302,22 +1286,18 @@ PortDisableInt_NoNest();
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskEndScheduler( void )
void vTaskEndScheduler( void )
{
/* Stop the scheduler interrupts and call the portable scheduler end
routine so the original ISRs can be restored if necessary. The port
layer must ensure interrupts enable bit is left in the correct state. */
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
xSchedulerRunning = pdFALSE;
vPortEndScheduler();
}
/*----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskSuspendAll( void )
void vTaskSuspendAll( void )
{
/* A critical section is not required as the variable is of type
portBASE_TYPE. */
@ -1327,8 +1307,7 @@ vTaskSuspendAll( void )
#if ( configUSE_TICKLESS_IDLE != 0 )
static portTickType ICACHE_FLASH_ATTR
prvGetExpectedIdleTime( void )
static portTickType prvGetExpectedIdleTime( void )
{
portTickType xReturn;
@ -1354,8 +1333,7 @@ vTaskSuspendAll( void )
#endif /* configUSE_TICKLESS_IDLE */
/*----------------------------------------------------------*/
signed portBASE_TYPE ICACHE_FLASH_ATTR
xTaskResumeAll( void )
signed portBASE_TYPE xTaskResumeAll( void )
{
tskTCB *pxTCB;
portBASE_TYPE xAlreadyYielded = pdFALSE;
@ -1425,8 +1403,7 @@ portBASE_TYPE xYieldRequired = pdFALSE;
}
/*-----------------------------------------------------------*/
portTickType ICACHE_FLASH_ATTR
xTaskGetTickCount( void )
portTickType xTaskGetTickCount( void )
{
portTickType xTicks;
@ -1441,8 +1418,7 @@ portTickType xTicks;
}
/*-----------------------------------------------------------*/
portTickType
xTaskGetTickCountFromISR( void )
portTickType xTaskGetTickCountFromISR( void )
{
portTickType xReturn;
unsigned portBASE_TYPE uxSavedInterruptStatus;
@ -1463,9 +1439,7 @@ unsigned portBASE_TYPE uxSavedInterruptStatus;
link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
// uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
portSET_INTERRUPT_MASK_FROM_ISR();
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
xReturn = xTickCount;
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
@ -1473,8 +1447,7 @@ unsigned portBASE_TYPE uxSavedInterruptStatus;
}
/*-----------------------------------------------------------*/
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxTaskGetNumberOfTasks( void )
unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void )
{
/* A critical section is not required because the variables are of type
portBASE_TYPE. */
@ -1484,8 +1457,7 @@ uxTaskGetNumberOfTasks( void )
#if ( INCLUDE_pcTaskGetTaskName == 1 )
signed char * ICACHE_FLASH_ATTR
pcTaskGetTaskName( xTaskHandle xTaskToQuery )
signed char *pcTaskGetTaskName( xTaskHandle xTaskToQuery )
{
tskTCB *pxTCB;
@ -1500,8 +1472,7 @@ uxTaskGetNumberOfTasks( void )
#if ( configUSE_TRACE_FACILITY == 1 )
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime )
unsigned portBASE_TYPE uxTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime )
{
unsigned portBASE_TYPE uxTask = 0, uxQueue = configMAX_PRIORITIES;
@ -1567,8 +1538,7 @@ uxTaskGetNumberOfTasks( void )
#if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
xTaskHandle ICACHE_FLASH_ATTR
xTaskGetIdleTaskHandle( void )
xTaskHandle xTaskGetIdleTaskHandle( void )
{
/* If xTaskGetIdleTaskHandle() is called before the scheduler has been
started, then xIdleTaskHandle will be NULL. */
@ -1585,8 +1555,7 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than
1. */
#if ( configUSE_TICKLESS_IDLE != 0 )
void ICACHE_FLASH_ATTR
vTaskStepTick( portTickType xTicksToJump )
void vTaskStepTick( portTickType xTicksToJump )
{
/* Correct the tick count value after a period during which the tick
was suppressed. Note this does *not* call the tick hook function for
@ -1599,8 +1568,7 @@ implementations require configUSE_TICKLESS_IDLE to be set to a value other than
#endif /* configUSE_TICKLESS_IDLE */
/*----------------------------------------------------------*/
portBASE_TYPE
xTaskIncrementTick( void )
portBASE_TYPE xTaskIncrementTick( void )
{
tskTCB * pxTCB;
portTickType xItemValue;
@ -1737,8 +1705,7 @@ portBASE_TYPE xSwitchRequired = pdFALSE;
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
void ICACHE_FLASH_ATTR
vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction )
void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction )
{
tskTCB *xTCB;
@ -1764,8 +1731,7 @@ portBASE_TYPE xSwitchRequired = pdFALSE;
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
pdTASK_HOOK_CODE ICACHE_FLASH_ATTR
xTaskGetApplicationTaskTag( xTaskHandle xTask )
pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask )
{
tskTCB *xTCB;
pdTASK_HOOK_CODE xReturn;
@ -1794,8 +1760,7 @@ portBASE_TYPE xSwitchRequired = pdFALSE;
#if ( configUSE_APPLICATION_TASK_TAG == 1 )
portBASE_TYPE ICACHE_FLASH_ATTR
xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter )
portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter )
{
tskTCB *xTCB;
portBASE_TYPE xReturn;
@ -1825,8 +1790,7 @@ portBASE_TYPE xSwitchRequired = pdFALSE;
#endif /* configUSE_APPLICATION_TASK_TAG */
/*-----------------------------------------------------------*/
void
vTaskSwitchContext( void )
void vTaskSwitchContext( void )
{
if( uxSchedulerSuspended != ( unsigned portBASE_TYPE ) pdFALSE )
{
@ -1879,8 +1843,7 @@ vTaskSwitchContext( void )
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskPlaceOnEventList( xList * const pxEventList, portTickType xTicksToWait )
void vTaskPlaceOnEventList( xList * const pxEventList, portTickType xTicksToWait )
{
portTickType xTimeToWake;
@ -1934,8 +1897,7 @@ portTickType xTimeToWake;
#if configUSE_TIMERS == 1
void ICACHE_FLASH_ATTR
vTaskPlaceOnEventListRestricted( xList * const pxEventList, portTickType xTicksToWait )
void vTaskPlaceOnEventListRestricted( xList * const pxEventList, portTickType xTicksToWait )
{
portTickType xTimeToWake;
@ -1974,8 +1936,7 @@ portTickType xTimeToWake;
#endif /* configUSE_TIMERS */
/*-----------------------------------------------------------*/
signed portBASE_TYPE
xTaskRemoveFromEventList( const xList * const pxEventList )
signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList )
{
tskTCB *pxUnblockedTCB;
portBASE_TYPE xReturn;
@ -2026,8 +1987,7 @@ portBASE_TYPE xReturn;
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskSetTimeOutState( xTimeOutType * const pxTimeOut )
void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut )
{
configASSERT( pxTimeOut );
pxTimeOut->xOverflowCount = xNumOfOverflows;
@ -2035,8 +1995,7 @@ vTaskSetTimeOutState( xTimeOutType * const pxTimeOut )
}
/*-----------------------------------------------------------*/
portBASE_TYPE ICACHE_FLASH_ATTR
xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait )
portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait )
{
portBASE_TYPE xReturn;
@ -2085,8 +2044,7 @@ portBASE_TYPE xReturn;
}
/*-----------------------------------------------------------*/
void ICACHE_FLASH_ATTR
vTaskMissedYield( void )
void vTaskMissedYield( void )
{
xYieldPending = pdTRUE;
}
@ -2094,8 +2052,7 @@ vTaskMissedYield( void )
#if ( configUSE_TRACE_FACILITY == 1 )
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxTaskGetTaskNumber( xTaskHandle xTask )
unsigned portBASE_TYPE uxTaskGetTaskNumber( xTaskHandle xTask )
{
unsigned portBASE_TYPE uxReturn;
tskTCB *pxTCB;
@ -2118,8 +2075,7 @@ vTaskMissedYield( void )
#if ( configUSE_TRACE_FACILITY == 1 )
void ICACHE_FLASH_ATTR
vTaskSetTaskNumber( xTaskHandle xTask, unsigned portBASE_TYPE uxHandle )
void vTaskSetTaskNumber( xTaskHandle xTask, unsigned portBASE_TYPE uxHandle )
{
tskTCB *pxTCB;
@ -2143,8 +2099,7 @@ vTaskMissedYield( void )
* void prvIdleTask( void *pvParameters );
*
*/
static ICACHE_FLASH_ATTR
portTASK_FUNCTION( prvIdleTask, pvParameters )
static portTASK_FUNCTION( prvIdleTask, pvParameters )
{
/* Stop warnings. */
( void ) pvParameters;
@ -2237,8 +2192,7 @@ portTASK_FUNCTION( prvIdleTask, pvParameters )
#if configUSE_TICKLESS_IDLE != 0
eSleepModeStatus ICACHE_FLASH_ATTR
eTaskConfirmSleepModeStatus( void )
eSleepModeStatus eTaskConfirmSleepModeStatus( void )
{
eSleepModeStatus eReturn = eStandardSleep;
@ -2276,8 +2230,7 @@ portTASK_FUNCTION( prvIdleTask, pvParameters )
#endif /* configUSE_TICKLESS_IDLE */
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth )
static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth )
{
unsigned portBASE_TYPE x;
@ -2364,8 +2317,7 @@ unsigned portBASE_TYPE x;
#if ( portUSING_MPU_WRAPPERS == 1 )
void ICACHE_FLASH_ATTR
vTaskAllocateMPURegions( xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions )
void vTaskAllocateMPURegions( xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions )
{
tskTCB *pxTCB;
@ -2378,8 +2330,7 @@ unsigned portBASE_TYPE x;
#endif /* portUSING_MPU_WRAPPERS */
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvInitialiseTaskLists( void )
static void prvInitialiseTaskLists( void )
{
unsigned portBASE_TYPE uxPriority;
@ -2411,8 +2362,7 @@ unsigned portBASE_TYPE uxPriority;
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvCheckTasksWaitingTermination( void )
static void prvCheckTasksWaitingTermination( void )
{
#if ( INCLUDE_vTaskDelete == 1 )
{
@ -2447,8 +2397,7 @@ prvCheckTasksWaitingTermination( void )
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvAddCurrentTaskToDelayedList( portTickType xTimeToWake )
static void prvAddCurrentTaskToDelayedList( portTickType xTimeToWake )
{
/* The list item will be inserted in wake time order. */
listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );
@ -2474,8 +2423,7 @@ prvAddCurrentTaskToDelayedList( portTickType xTimeToWake )
}
/*-----------------------------------------------------------*/
static tskTCB * ICACHE_FLASH_ATTR
prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer )
static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer )
{
tskTCB *pxNewTCB;
@ -2489,6 +2437,7 @@ tskTCB *pxNewTCB;
The base of the stack memory stored in the TCB so the task can
be deleted later if required. */
pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( portSTACK_TYPE ) ), puxStackBuffer ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */
if( pxNewTCB->pxStack == NULL )
{
/* Could not allocate the stack. Delete the allocated TCB. */
@ -2508,8 +2457,7 @@ tskTCB *pxNewTCB;
#if ( configUSE_TRACE_FACILITY == 1 )
static unsigned portBASE_TYPE ICACHE_FLASH_ATTR
prvListTaskWithinSingleList( xTaskStatusType *pxTaskStatusArray, xList *pxList, eTaskState eState )
static unsigned portBASE_TYPE prvListTaskWithinSingleList( xTaskStatusType *pxTaskStatusArray, xList *pxList, eTaskState eState )
{
volatile tskTCB *pxNextTCB, *pxFirstTCB;
unsigned portBASE_TYPE uxTask = 0;
@ -2575,8 +2523,7 @@ tskTCB *pxNewTCB;
#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) )
static unsigned short ICACHE_FLASH_ATTR
prvTaskCheckFreeStackSpace( const unsigned char * pucStackByte )
static unsigned short prvTaskCheckFreeStackSpace( const unsigned char * pucStackByte )
{
register unsigned short usCount = 0U;
@ -2596,8 +2543,7 @@ tskTCB *pxNewTCB;
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
unsigned portBASE_TYPE ICACHE_FLASH_ATTR
uxTaskGetStackHighWaterMark( xTaskHandle xTask )
unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask )
{
tskTCB *pxTCB;
unsigned char *pcEndOfStack;
@ -2625,8 +2571,7 @@ tskTCB *pxNewTCB;
#if ( INCLUDE_vTaskDelete == 1 )
static void ICACHE_FLASH_ATTR
prvDeleteTCB( tskTCB *pxTCB )
static void prvDeleteTCB( tskTCB *pxTCB )
{
/* This call is required specifically for the TriCore port. It must be
above the vPortFree() calls. The call is also used by ports/demos that
@ -2644,8 +2589,7 @@ tskTCB *pxNewTCB;
#if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
xTaskHandle ICACHE_FLASH_ATTR
xTaskGetCurrentTaskHandle( void )
xTaskHandle xTaskGetCurrentTaskHandle( void )
{
xTaskHandle xReturn;
@ -2662,8 +2606,7 @@ tskTCB *pxNewTCB;
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
portBASE_TYPE ICACHE_FLASH_ATTR
xTaskGetSchedulerState( void )
portBASE_TYPE xTaskGetSchedulerState( void )
{
portBASE_TYPE xReturn;
@ -2691,8 +2634,7 @@ tskTCB *pxNewTCB;
#if ( configUSE_MUTEXES == 1 )
void ICACHE_FLASH_ATTR
vTaskPriorityInherit( xTaskHandle const pxMutexHolder )
void vTaskPriorityInherit( xTaskHandle const pxMutexHolder )
{
tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder;
@ -2734,8 +2676,7 @@ tskTCB *pxNewTCB;
#if ( configUSE_MUTEXES == 1 )
void
vTaskPriorityDisinherit( xTaskHandle const pxMutexHolder )
void vTaskPriorityDisinherit( xTaskHandle const pxMutexHolder )
{
tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder;
@ -2765,11 +2706,10 @@ tskTCB *pxNewTCB;
#if ( portCRITICAL_NESTING_IN_TCB == 1 )
void ICACHE_FLASH_ATTR
vTaskEnterCritical( void )
void vTaskEnterCritical( void )
{
//portDISABLE_INTERRUPTS();
PortDisableInt_NoNest();
portDISABLE_INTERRUPTS();
if( xSchedulerRunning != pdFALSE )
{
( pxCurrentTCB->uxCriticalNesting )++;
@ -2781,8 +2721,7 @@ PortDisableInt_NoNest();
#if ( portCRITICAL_NESTING_IN_TCB == 1 )
void ICACHE_FLASH_ATTR
vTaskExitCritical( void )
void vTaskExitCritical( void )
{
if( xSchedulerRunning != pdFALSE )
{
@ -2792,8 +2731,7 @@ PortDisableInt_NoNest();
if( pxCurrentTCB->uxCriticalNesting == 0U )
{
//portENABLE_INTERRUPTS();
PortEnableInt_NoNest();
portENABLE_INTERRUPTS();
}
}
}
@ -2804,8 +2742,7 @@ PortDisableInt_NoNest();
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) )
void ICACHE_FLASH_ATTR
vTaskList( signed char *pcWriteBuffer )
void vTaskList( signed char *pcWriteBuffer )
{
xTaskStatusType *pxTaskStatusArray;
volatile unsigned portBASE_TYPE uxArraySize, x;
@ -2888,8 +2825,7 @@ PortDisableInt_NoNest();
#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) )
void ICACHE_FLASH_ATTR
vTaskGetRunTimeStats( signed char *pcWriteBuffer )
void vTaskGetRunTimeStats( signed char *pcWriteBuffer )
{
xTaskStatusType *pxTaskStatusArray;
volatile unsigned portBASE_TYPE uxArraySize, x;

View file

@ -194,8 +194,7 @@ static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_T
/*-----------------------------------------------------------*/
portBASE_TYPE ICACHE_FLASH_ATTR
xTimerCreateTimerTask( void )
portBASE_TYPE xTimerCreateTimerTask( void )
{
portBASE_TYPE xReturn = pdFAIL;
@ -212,7 +211,6 @@ portBASE_TYPE xReturn = pdFAIL;
/* Create the timer task, storing its handle in xTimerTaskHandle so
it can be returned by the xTimerGetTimerDaemonTaskHandle() function. */
xReturn = xTaskCreate( prvTimerTask, ( const signed char * ) "Tmr Svc", ( unsigned short ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, &xTimerTaskHandle );
printf("tim_task_hdl : %x\n", xTimerTaskHandle);
}
#else
{
@ -227,8 +225,7 @@ printf("tim_task_hdl : %x\n", xTimerTaskHandle);
}
/*-----------------------------------------------------------*/
xTimerHandle ICACHE_FLASH_ATTR
xTimerCreate( const signed char * const pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void *pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction )
xTimerHandle xTimerCreate( const signed char * const pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void *pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction )
{
xTIMER *pxNewTimer;
@ -267,8 +264,7 @@ xTIMER *pxNewTimer;
}
/*-----------------------------------------------------------*/
portBASE_TYPE ICACHE_FLASH_ATTR
xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime )
portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime )
{
portBASE_TYPE xReturn = pdFAIL;
xTIMER_MESSAGE xMessage;
@ -307,8 +303,7 @@ xTIMER_MESSAGE xMessage;
#if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 )
xTaskHandle ICACHE_FLASH_ATTR
xTimerGetTimerDaemonTaskHandle( void )
xTaskHandle xTimerGetTimerDaemonTaskHandle( void )
{
/* If xTimerGetTimerDaemonTaskHandle() is called before the scheduler has been
started, then xTimerTaskHandle will be NULL. */
@ -319,8 +314,7 @@ xTIMER_MESSAGE xMessage;
#endif
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow )
static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow )
{
xTIMER *pxTimer;
portBASE_TYPE xResult;
@ -352,14 +346,11 @@ portBASE_TYPE xResult;
}
/* Call the timer callback. */
//pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
pxTimer->pxCallbackFunction( ( void * ) (pxTimer->pvTimerID) );
pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvTimerTask( void *pvParameters )
static void prvTimerTask( void *pvParameters )
{
portTickType xNextExpireTime;
portBASE_TYPE xListWasEmpty;
@ -383,8 +374,7 @@ portBASE_TYPE xListWasEmpty;
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty )
static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty )
{
portTickType xTimeNow;
portBASE_TYPE xTimerListsWereSwitched;
@ -433,8 +423,7 @@ portBASE_TYPE xTimerListsWereSwitched;
}
/*-----------------------------------------------------------*/
static portTickType ICACHE_FLASH_ATTR
prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty )
static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty )
{
portTickType xNextExpireTime;
@ -460,8 +449,7 @@ portTickType xNextExpireTime;
}
/*-----------------------------------------------------------*/
static portTickType ICACHE_FLASH_ATTR
prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched )
static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched )
{
portTickType xTimeNow;
PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U; /*lint !e956 Variable is only accessible to one task. */
@ -484,8 +472,7 @@ PRIVILEGED_DATA static portTickType xLastTime = ( portTickType ) 0U; /*lint !e95
}
/*-----------------------------------------------------------*/
static portBASE_TYPE ICACHE_FLASH_ATTR
prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime )
static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime )
{
portBASE_TYPE xProcessTimerNow = pdFALSE;
@ -526,8 +513,7 @@ portBASE_TYPE xProcessTimerNow = pdFALSE;
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvProcessReceivedCommands( void )
static void prvProcessReceivedCommands( void )
{
xTIMER_MESSAGE xMessage;
xTIMER *pxTimer;
@ -562,8 +548,7 @@ portTickType xTimeNow;
{
/* The timer expired before it was added to the active timer
list. Process it now. */
//pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
pxTimer->pxCallbackFunction( ( void * ) (pxTimer->pvTimerID) );
pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE )
{
@ -599,8 +584,7 @@ portTickType xTimeNow;
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvSwitchTimerLists( portTickType xLastTime )
static void prvSwitchTimerLists( portTickType xLastTime )
{
portTickType xNextExpireTime, xReloadTime;
xList *pxTemp;
@ -625,8 +609,7 @@ portBASE_TYPE xResult;
/* Execute its callback, then send a command to restart the timer if
it is an auto-reload timer. It cannot be restarted here as the lists
have not yet been switched. */
//pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
pxTimer->pxCallbackFunction( ( void * ) (pxTimer->pvTimerID) );
pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );
if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE )
{
@ -658,8 +641,7 @@ portBASE_TYPE xResult;
}
/*-----------------------------------------------------------*/
static void ICACHE_FLASH_ATTR
prvCheckForValidListAndQueue( void )
static void prvCheckForValidListAndQueue( void )
{
/* Check that the list from which active timers are referenced, and the
queue used to communicate with the timer service, have been
@ -679,8 +661,7 @@ prvCheckForValidListAndQueue( void )
}
/*-----------------------------------------------------------*/
portBASE_TYPE ICACHE_FLASH_ATTR
xTimerIsTimerActive( xTimerHandle xTimer )
portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer )
{
portBASE_TYPE xTimerIsInActiveList;
xTIMER *pxTimer = ( xTIMER * ) xTimer;
@ -699,8 +680,7 @@ xTIMER *pxTimer = ( xTIMER * ) xTimer;
}
/*-----------------------------------------------------------*/
void * ICACHE_FLASH_ATTR
pvTimerGetTimerID( xTimerHandle xTimer )
void *pvTimerGetTimerID( xTimerHandle xTimer )
{
xTIMER *pxTimer = ( xTIMER * ) xTimer;
@ -711,5 +691,7 @@ xTIMER *pxTimer = ( xTIMER * ) xTimer;
/* This entire source file will be skipped if the application is not configured
to include software timer functionality. If you want to include software timer
functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */
#endif /* configUSE_TIMERS == 1 */