FreeRTOS learning message queue
Message queue
FreeRTOS learning warehouse address: https://gitee.com/killerp/free-rtos_-study
Message queue is the basic data structure of RTOS, which is used for data transmission between tasks and between tasks and interrupts.
When message queuing is not used, if you want to transfer data between two tasks, you must transfer it throug ...
Posted by liamjw on Sat, 22 Jan 2022 20:49:29 +0100
FreeRTOS Series Part 2 - task creation and deletion
1. Task create and delete API functions
functiondescribexTaskCreateCreate a task using a dynamic methodxTaskCreateStaticCreate a task using a static methodxTaskDelete()Delete a task
xTaskCreate This function is used to create a task. The task requires RAM to save the status information related to the task (task control block) The task also ...
Posted by Chezshire on Mon, 17 Jan 2022 10:38:35 +0100
FreeRTOS learning record 05 -- task scheduler startup and switching
0 Preface
@ Author : Dargon
@ Record Date : 2021/07/13
@ Reference Book : `FreeRTOS Detailed source code and application development`,`ARM Cortex-M3 And Cortex-M4 Authoritative guide`,`B Standing point atom FreeRTOS Explanation video`
@ Purpose : Learning about punctual atoms miniFly,The flight control is based on Free ...
Posted by MrTL on Mon, 17 Jan 2022 04:16:28 +0100
[getting started with FreeRTOS] FreeRTOS list
FreeRTOS list
List NOUN
List List_t
typedef struct xLIST
{
listFIRST_LIST_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */
configLIST_VOLATILE UBaseType_t uxNumberOfItems;
ListItem_t * configLIST_VOLATILE pxIndex; /*< Used to walk through the list. Points to the last it ...
Posted by BMorganVA on Mon, 10 Jan 2022 08:22:18 +0100
[getting started with FreeRTOS] FreeRTOS kernel control
FreeRTOS kernel control
FreeRTOS has some functions only for the kernel, which are generally not allowed by applications. These are the system kernel functions.
Kernel control function API
taskYIELD(): task switching
taskENTER_CRITICAL(): enter the critical area, which is used in the task
taskEXIT_CRITICAL(): exit the critical area, which is ...
Posted by scott_ttocs46 on Mon, 10 Jan 2022 07:58:19 +0100
[getting started with FreeRTOS] FreeRTOS task management
FreeRTOS task creation and suspension
1 task related concepts
Task status
Running state
When a task is running, it can be said that the task is running. If it is a single core processor, there is always only one task in progress at any time.
Ready
Tasks in the ready state are those that are ready (these tasks are not blocked or suspended) ...
Posted by nikifi on Mon, 10 Jan 2022 07:52:58 +0100
FreeRTOS interrupt management
embedded real-time systems need to respond to events generated by the whole system environment. These events have different requirements for processing time and response time. Events are usually detected by interrupt, and the processing capacity in interrupt service routine (ISR) should be as short as possible. note: only "Fr ...
Posted by YourNameHere on Sat, 08 Jan 2022 10:00:19 +0100
FreeRTOS learning -- "semaphores"
In the "message queue" article, we once buried a foreshadowing, that is, the message delivery and synchronization of tasks in FreeRTOS are all through message queue. Can't it be through global variables? The answer is yes, but this will cause delayed response. If you use global variables, you can only poll, which will inevitably lose ...
Posted by bad_goose on Tue, 04 Jan 2022 16:26:03 +0100
FreeRTOS series - event flag group
preface
Using semaphores can complete the synchronization between tasks, but using semaphores to synchronize tasks can only synchronize with a single event or task. Sometimes a task may need to be synchronized with multiple events or tasks, and the semaphore is powerless. FreeRTOS provides an optional solution for this, which is the event ...
Posted by tnylsej on Thu, 16 Dec 2021 23:26:55 +0100
FreeRTOS communication mode
1, Message queue
Message queue is a data structure commonly used for inter task communication. Queue can transfer information between tasks, interrupts and tasks. Both read and write queues support timeout mechanism.
1. Create queue
QueueHandle_t xQueueCreate( UBaseType_t uxQueueLength,//queue length
UBaseType_t uxItemSize );//Th ...
Posted by Sandip on Tue, 14 Dec 2021 01:13:47 +0100