Difference between revisions of "FreeRTOS"

From Wiki at Neela Nurseries
Jump to: navigation, search
(2017-12-08 - Friday, Ted starting notes page on FreeRTOS.)
 
m (^ FreeRTOS Architecture: - FreeRTOS AVR context switch example, systick based ISR.)
 
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
FreeRTOS notes
+
<center>
operating system used and recommended by Neil M.
+
[[Main_Page|Wiki Main Page]] | [[User:Ted#.5E_Linux_Packages|User Page of Ted]] | [https://www.google.com Google search engine]
 +
 
 +
 
 +
 
 +
 
 +
<font size="4">
 +
FreeRTOS notes<br />
 +
</font>
 +
operating system used and recommended by Neil M.<br />
 
2017-12-08
 
2017-12-08
 +
</center>
 +
 +
  
  
 +
 +
== 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
 +
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] First Topics Explored ==
 +
 +
RTOS fundamentals covered in pages of FreeRTOS site:
 +
 +
*  https://www.freertos.org/implementation/a00002.html
 +
 +
 +
These initial links will likely be moved or removed, they're just first places Ted checked out at FreeRTOS site:
  
 
*  https://www.freertos.org/rtos-trace-macros.html
 
*  https://www.freertos.org/rtos-trace-macros.html
 +
*  https://freertos.org/a00110.html#configASSERT
 +
 +
 +
- 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,
 +
 +
- 2018-05-11 FRI -
 +
Quick-start page and configAssert():
 +
 +
*  https://www.freertos.org/a00110.html#configASSERT
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] FreeRTOS Ported To Microcontroller Families ==
 +
 +
 +
- 2017-12-15 FRI -
 +
 +
FreeRTOS ports to various microcontroller families:
 +
 +
*  https://www.freertos.org/a00090.html
 +
*  https://www.freertos.org/FreeRTOS-for-Cortex-M0-LPC1114-LPCXpresso.html NXP LPC1114 ARM Cortex-M0 Demo
 +
*  https://www.freertos.org/FreeRTOS-for-STM32F4xx-Cortex-M4F-IAR.html
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] 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:
 +
 +
*  http://socialledge.com/sjsu/index.php/SJ_One_Board
 +
**  http://socialledge.com/sjsu/index.php/Main_Page
 +
**  http://socialledge.com/sjsu/images/d/de/2012SJOneBoardSchematic.pdf
 +
 +
*  https://www.freertos.org/FreeRTOS-Plus/BSP_Solutions/ST/index.html
 +
**  https://www.freertos.org/FreeRTOS-Plus/BSP_Solutions/ST/STM32Cube.html#examples
 +
 +
*  https://www.freertos.org/FreeRTOS_Support_Forum_Archive/April_2010/freertos_STM32F10X-128k-Eval_freeRTOS_V6.0.4_OK_3669009.html
 +
*  https://github.com/atgreen/FreeRTOS/tree/master/Demo/CORTEX_STM32F100_Atollic
 +
 +
 +
<!-- # # # Trouble-shooting Related Notes Follow # # #
 +
&num; # # Trouble-shooting Related Notes Follow # # # -->
 +
&#35; # # Trouble-shooting Related Notes Follow # # #
 +
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] FreeRTOS Architecture ==
 +
 +
Context switchting, how context switched between tasks in FreeRTOS . . .
 +
 +
*  https://www.freertos.org/implementation/a00003.html
 +
*  https://www.freertos.org/implementation/a00011.html
 +
 +
Task Control Block (TCB) memory allocation . . .
 +
 +
*  https://www.freertos.org/FreeRTOS_Support_Forum_Archive/January_2018/freertos_Task_control_block_memory_allocation_55c3c1a5j.html
 +
 +
Task priorities assignable defined in tasks.h:
 +
 +
<pre>
 +
~/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;
 +
</pre>
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] 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:
 +
 +
*  https://www.freertos.org/FreeRTOS_Support_Forum_Archive/December_2012/freertos_pxCurrentTCB_corrupted_6477695.html
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Memory Management and Heap ==
 +
 +
https://stackoverflow.com/questions/58746081/how-do-i-select-a-memory-allocation-implementation-heap-c-file-in-freertos
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Software Timers ==
 +
 +
<ul>
 +
*  https://www.freertos.org/RTOS-software-timer.html
 +
*  https://mcuoneclipse.com/2018/05/27/tutorial-understanding-and-using-freertos-software-timers/
 +
</ul>
 +
 +
Useful forum post regarding xTaskGetTickCount():
 +
2020-07-20
 +
*  https://www.freertos.org/FreeRTOS_Support_Forum_Archive/September_2018/freertos_Measure_Time_within_a_Task_with_xTaskGetTickCount_6d2307a0j.html
 +
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] 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
 +
 +
2018-06-08 - Friday
 +
*  http://www.aosabook.org/en/freertos.html
 +
 +
 +
<!-- comment -->
 +
 +
<center>
 +
[[#top|- - - top of page - - -]]
 +
</center>
 +
 +
 +
<!-- EOF -->

Latest revision as of 18:14, 19 September 2022

Wiki Main Page | User Page of Ted | Google search engine



FreeRTOS notes
operating system used and recommended by Neil M.
2017-12-08



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.

- 2018-05-11 FRI - Quick-start page and configAssert():


^ 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

Context switchting, how context switched between tasks in FreeRTOS . . .

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:


^ Memory Management and Heap

https://stackoverflow.com/questions/58746081/how-do-i-select-a-memory-allocation-implementation-heap-c-file-in-freertos


^ Software Timers

Useful forum post regarding xTaskGetTickCount(): 2020-07-20


^ References

2018-06-08 - Friday


- - - top of page - - -