FreeRTOS
Wiki Main Page | User Page of Ted | Google search engine
FreeRTOS notes
operating system used and recommended by Neil M.
2017-12-08
Contents
Overview
Ted starting a wiki page to hold notes and findings from working through demos and tutorials on FreeRTOS operating system. First goals include:
- Learning what target CPUs, dev boards and systems run FreeRTOS
- Learning what emulators run and support testing of FreeRTOS instances
^ First Topics Explored
RTOS fundamentals covered in pages of FreeRTOS site:
These initial links will likely be moved or removed, they're just first places Ted checked out at FreeRTOS site:
- 2017-12-27 WED -
FreeRTOS demo applications described in overview fashion at https://www.freertos.org/a00102.html.
- https://www.freertos.org/a00017.html . . . source code organization,
- https://www.freertos.org/a00090.html . . . FreeRTOS ports, each its own web page,
^ FreeRTOS Ported To Microcontroller Families
- 2017-12-15 FRI -
FreeRTOS ports to various microcontroller families:
^ Specific Boards Usable with FreeRTOS
2018-04-10
Singleton Pattern mentioned in section named "Basics" in the following wiki document about San Jose State University LPC1758 dev board:
# # # Trouble-shooting Related Notes Follow # # #
^ FreeRTOS Architecture
Task Control Block (TCB) memory allocation . . .
Task priorities assignable defined in tasks.h:
~/Downloads/freertos/FreeRTOSv10.0.1/FreeRTOS/Source$ grep -nr tskIDLE_PRIORITY ./* ./include/task.h:154:#define tskIDLE_PRIORITY ( ( UBaseType_t ) 0U ) ./include/task.h:307: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:423: tskIDLE_PRIORITY,// Priority at which the task is created. ./include/task.h:688: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:856: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:861: // It was created with tskIDLE_PRIORITY, but may have changed ./include/task.h:863: if( uxTaskPriorityGet( xHandle ) != tskIDLE_PRIORITY ) ./include/task.h:988: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:993: vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 ); ./include/task.h:998: vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 ); ./include/task.h:1030: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:1079: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); ./include/task.h:1154: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); ./include/task.h:1208: xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); ./queue.c:2031: uxHighestPriorityOfWaitingTasks = tskIDLE_PRIORITY;
^ Task Control Block - TCB
Exploring the Task Control Block and stack implementations of FreeRTOS. Following forum post mentions stack checking as a feature of FreeRTOS 7.1 which can be enabled. This post also mentions interrupt priorities which range from 1 to 15:
^ References
- https://www.freertos.org/History.txt . . . change history in text format gives a list of FreeRTOS stable releases
- https://www.freertos.org/a00104.html . . . source code download instructions