Go to the documentation of this file.
   57 #ifndef INC_FREERTOS_H 
   58 #error FreeRTOS.h must be included before list.h 
   92 #ifndef configLIST_VOLATILE 
   93 #define configLIST_VOLATILE 
  105 #if( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 0 ) 
  107 #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE 
  108 #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE 
  109 #define listFIRST_LIST_INTEGRITY_CHECK_VALUE 
  110 #define listSECOND_LIST_INTEGRITY_CHECK_VALUE 
  111 #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) 
  112 #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ) 
  113 #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ) 
  114 #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ) 
  115 #define listTEST_LIST_ITEM_INTEGRITY( pxItem ) 
  116 #define listTEST_LIST_INTEGRITY( pxList ) 
  119 #define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE               TickType_t xListItemIntegrityValue1; 
  120 #define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE              TickType_t xListItemIntegrityValue2; 
  121 #define listFIRST_LIST_INTEGRITY_CHECK_VALUE                    TickType_t xListIntegrityValue1; 
  122 #define listSECOND_LIST_INTEGRITY_CHECK_VALUE                   TickType_t xListIntegrityValue2; 
  125 #define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )     ( pxItem )->xListItemIntegrityValue1 = pdINTEGRITY_CHECK_VALUE 
  126 #define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem )    ( pxItem )->xListItemIntegrityValue2 = pdINTEGRITY_CHECK_VALUE 
  127 #define listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList )      ( pxList )->xListIntegrityValue1 = pdINTEGRITY_CHECK_VALUE 
  128 #define listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList )      ( pxList )->xListIntegrityValue2 = pdINTEGRITY_CHECK_VALUE 
  132 #define listTEST_LIST_ITEM_INTEGRITY( pxItem )      configASSERT( ( ( pxItem )->xListItemIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxItem )->xListItemIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) ) 
  133 #define listTEST_LIST_INTEGRITY( pxList )           configASSERT( ( ( pxList )->xListIntegrityValue1 == pdINTEGRITY_CHECK_VALUE ) && ( ( pxList )->xListIntegrityValue2 == pdINTEGRITY_CHECK_VALUE ) ) 
  180 #define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner )      ( ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) ) 
  189 #define listGET_LIST_ITEM_OWNER( pxListItem )   ( ( pxListItem )->pvOwner ) 
  198 #define listSET_LIST_ITEM_VALUE( pxListItem, xValue )   ( ( pxListItem )->xItemValue = ( xValue ) ) 
  208 #define listGET_LIST_ITEM_VALUE( pxListItem )   ( ( pxListItem )->xItemValue ) 
  217 #define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList )  ( ( ( pxList )->xListEnd ).pxNext->xItemValue ) 
  225 #define listGET_HEAD_ENTRY( pxList )    ( ( ( pxList )->xListEnd ).pxNext ) 
  233 #define listGET_NEXT( pxListItem )  ( ( pxListItem )->pxNext ) 
  241 #define listGET_END_MARKER( pxList )    ( ( ListItem_t const * ) ( &( ( pxList )->xListEnd ) ) ) 
  250 #define listLIST_IS_EMPTY( pxList ) ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ) 
  255 #define listCURRENT_LIST_LENGTH( pxList )   ( ( pxList )->uxNumberOfItems ) 
  277 #define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList )                                        \ 
  279 List_t * const pxConstList = ( pxList );                                                    \ 
  282     ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;                            \ 
  283     if( ( void * ) ( pxConstList )->pxIndex == ( void * ) &( ( pxConstList )->xListEnd ) )  \ 
  285         ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext;                        \ 
  287     ( pxTCB ) = ( pxConstList )->pxIndex->pvOwner;                                          \ 
  307 #define listGET_OWNER_OF_HEAD_ENTRY( pxList )  ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner ) 
  318 #define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( BaseType_t ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) ) 
  326 #define listLIST_ITEM_CONTAINER( pxListItem ) ( ( pxListItem )->pvContainer ) 
  333 #define listLIST_IS_INITIALISED( pxList ) ( ( pxList )->xListEnd.xItemValue == portMAX_DELAY ) 
  
 
Thread_t * Thread_ready
Definition: HeiOS_Thread.c:22
 
#define listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
Definition: list.h:112
 
#define listTEST_LIST_ITEM_INTEGRITY(pxItem)
Definition: list.h:115
 
void thread_resume(Thread_t *Thread)
Diese Funktion fügt den übergebenen Thread zur Ready-Liste hinzu.
Definition: HeiOS_Thread.c:282
 
ListItem_t *configLIST_VOLATILE pxIndex
Definition: list.h:168
 
void * pvOwner
Definition: list.h:146
 
#define portMAX_DELAY
Definition: portmacro.h:65
 
Thread_t * Thread_run
Definition: HeiOS_Thread.c:26
 
void thread_suspend(Thread_t *Thread)
Diese Funktion entfernt einen Thread von der Ready-Liste und löst gegebenenfalls einen Kontextwechsel au...
Definition: HeiOS_Thread.c:264
 
#define configTOTAL_HEAP_SIZE
Definition: FreeRTOSConfig.h:33
 
void vPortFree(void *pv)
Definition: heap_1.c:123
 
#define portBYTE_ALIGNMENT_MASK
Definition: portable.h:65
 
void vListInitialise(List_t *const pxList)
Definition: list.c:38
 
global header file for project
 
__asm void SVC_Handler(void)
Diese Funktion ermittelt mithile von embedded Assembler den verwendeten Stackpointer.
Definition: HeiOS_Thread.c:317
 
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
Definition: list.h:157
 
void IdleThread(void)
Diese Funktion durchläuft eine Endlosschleife und sorgt für einen definierten Zustand,  falls kein Thread für die...
Definition: HeiOS_Thread.c:562
 
QueueHandle_t xQueueDisplay
Definition: Globals.c:15
 
QueueHandle_t xQueueTape
Definition: Globals.c:14
 
UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove)
Definition: list.c:171
 
QueueHandle_t xQueueVCR
Definition: Globals.c:13
 
#define traceMALLOC(pvAddress, uiSize)
Definition: FreeRTOS.h:549
 
void(* fpoutputidle)(void)
Definition: HeiOS_Thread.c:14
 
void SVC_Handler_service(uint32_t *svc_args)
Diese Funktion dient als API, um Funktionen im priviligierten Modus ausführen zu können.   Diese Funktion bes...
Definition: HeiOS_Thread.c:337
 
void vTaskSuspendAll(void) PRIVILEGED_FUNCTION
Definition: tasks.c:2031
 
void PendSV_Handler(void)
Diese Funktion führt den Kontextwechsel aus.
Definition: HeiOS_Thread.c:411
 
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:156
 
listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
Definition: list.h:155
 
#define PRIVILEGED_FUNCTION
Definition: mpu_wrappers.h:174
 
uint32_t TickType_t
Definition: portmacro.h:64
 
void *configLIST_VOLATILE pvContainer
Definition: list.h:147
 
void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
Definition: list.c:104
 
#define portBYTE_ALIGNMENT
Definition: portmacro.h:76
 
void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:75
 
__asm void load_R4toR11(void)
Diese Funktion ladet die Register R4-R8 mit Inline-Assembler.
Definition: HeiOS_Thread.c:491
 
unsigned long UBaseType_t
Definition: portmacro.h:58
 
void setfpoutoutidle(void(*fp)(void))
Definition: HeiOS_Thread.c:29
 
UBaseType_t uxListRemove(ListItem_t *const pxItemToRemove) PRIVILEGED_FUNCTION
Definition: list.c:171
 
void vPortInitialiseBlocks(void)
Definition: heap_1.c:135
 
Thread_IDLE_t IDLE_Thread
Definition: HeiOS_Thread.c:19
 
#define listSECOND_LIST_INTEGRITY_CHECK_VALUE
Definition: list.h:110
 
void Thread_init(Thread_t *Thread, void *stack, uint32_t stack_size, char name[], void(*pfunc)(), uint32_t executiontime, uint8_t priority)
Diese Funktion initialisert einen Thread und fügt ihn der Ready-Liste hinzu.
Definition: HeiOS_Thread.c:51
 
static uint8_t ucHeap[configTOTAL_HEAP_SIZE]
Definition: heap_1.c:63
 
void thread_delay(uint32_t tick)
Diese Funktion entfernt den übergebenen Thread von der Ready-Liste und fügt ihn der Sleep-Liste hinzu....
Definition: HeiOS_Thread.c:300
 
#define portPOINTER_SIZE_TYPE
Definition: FreeRTOS.h:289
 
void vListInsert(List_t *const pxList, ListItem_t *const pxNewListItem)
Definition: list.c:104
 
#define configLIST_VOLATILE
Definition: list.h:93
 
static size_t xNextFreeByte
Definition: heap_1.c:67
 
void vListInitialise(List_t *const pxList) PRIVILEGED_FUNCTION
Definition: list.c:38
 
void vListInitialiseItem(ListItem_t *const pxItem) PRIVILEGED_FUNCTION
Definition: list.c:63
 
#define listTEST_LIST_INTEGRITY(pxList)
Definition: list.h:116
 
void update_Thread_slp(void)
Diese Funktion aktualisiert die Verzögerungszeit der Threads.
Definition: HeiOS_Thread.c:578
 
listFIRST_LIST_INTEGRITY_CHECK_VALUE volatile UBaseType_t uxNumberOfItems
Definition: list.h:167
 
uint32_t SystemCoreClock
Definition: system_LPC17xx.c:431
 
void * QueueHandle_t
Definition: queue.h:47
 
Thread_t * Thread_slp
Definition: HeiOS_Thread.c:24
 
uint8_t priv_thread_remove(Thread_t **root, Thread_t *Thread)
Diese Funktion entfernt das Threadobjekt aus der Liste.
Definition: HeiOS_Thread.c:230
 
size_t xPortGetFreeHeapSize(void)
Definition: heap_1.c:142
 
MiniListItem_t xListEnd
Definition: list.h:169
 
#define listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE(pxItem)
Definition: list.h:111
 
void TIMER0_IRQHandler(void)
ISR of timer0, called every 20 millisecond.
Definition: Interrupt.c:21
 
void vListInsertEnd(List_t *const pxList, ListItem_t *const pxNewListItem) PRIVILEGED_FUNCTION
Definition: list.c:75
 
#define listSET_LIST_INTEGRITY_CHECK_1_VALUE(pxList)
Definition: list.h:113
 
__asm void save_R4toR11(void)
Diese Funktion sichert die Register R4-R8 mit Inline-Assembler.
Definition: HeiOS_Thread.c:473
 
#define listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE
Definition: list.h:107
 
#define mtCOVERAGE_TEST_DELAY()
Definition: FreeRTOS.h:791
 
#define listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE
Definition: list.h:108
 
listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE configLIST_VOLATILE TickType_t xItemValue
Definition: list.h:143
 
BaseType_t xTaskResumeAll(void) PRIVILEGED_FUNCTION
Definition: tasks.c:2104
 
#define configASSERT(x)
Definition: FreeRTOS.h:235
 
#define configADJUSTED_HEAP_SIZE
Definition: heap_1.c:54
 
struct xLIST_ITEM *configLIST_VOLATILE pxPrevious
Definition: list.h:145
 
void OS_Start_Scheduler(void)
Diese Funktion initialisiert das OS und sorgt anschließend für den Wechsel in den Idlethread.
Definition: HeiOS_Thread.c:513
 
void update_executiontime(void)
Diese Funktion aktualisiert die Ausführungszeit der Threads.
Definition: HeiOS_Thread.c:613
 
struct xLIST_ITEM *configLIST_VOLATILE pxNext
Definition: list.h:144
 
uint8_t priv_thread_sort_add(Thread_t **root, Thread_t *Thread)
Mithilfe der Funktion werden die Thread-Objekte in einer einfach verketteten Liste angeordnet....
Definition: HeiOS_Thread.c:180
 
void SysTick_Handler(void)
Diese Funktion wird in regelmäßigen Abständen ausgeführt.
Definition: HeiOS_Thread.c:380
 
#define listFIRST_LIST_INTEGRITY_CHECK_VALUE
Definition: list.h:109
 
#define listSET_LIST_INTEGRITY_CHECK_2_VALUE(pxList)
Definition: list.h:114
 
void vListInitialiseItem(ListItem_t *const pxItem)
Definition: list.c:63
 
#define mtCOVERAGE_TEST_MARKER()
Definition: FreeRTOS.h:787
 
void * pvPortMalloc(size_t xWantedSize)
Definition: heap_1.c:71