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