STMicroelectronics (STM32G4x, STM32F4x, STM32F7x, STM32H7x)
| STM32 | |
|---|---|
| Coding & Debugging | STM32CubeIDE |
| PinMux Setting | STM32CubeMX |
| Programmer | STM32CubeProg |
| Real-time Diagnose | STM32CubeMonitor |
| Library | LL, CMSIS, HAL |
| RTOS | FreeRTOS |
| Debugger | ST-LINK/V2, V3 |
| Sensing & Control | PWM, Camera Interface |
| Peripheral (Communication) | USB, CAN, CAN-FD, LIN, SAI, SPI, USART/UART, I2C, Ethernet |
- 1. Introduction to FreeRTOS: System Architecture and Execution Model
- 2. FreeRTOS Scheduler: Preemption, Time Slicing, and Deterministic Scheduling
-
3. Task Management: Task Creation, States, Priorities, and Context Switching
- xTaskCreate()
- xTaskCreateStatic()
- vTaskDelete()
- xTaskGetHandle()
- xTaskGetIdleTaskHandle()
- xTaskGetCurrentTaskHandle()
- vTaskPrioritySet()
- uxTaskPriorityGet()
- vTaskSuspend()
- vTaskResume()
- xTaskResumeFromISR()
- vTaskDelayUntil()
- xTaskGetTickCount()
- xTaskGetTickCountFromISR()
- vTaskSetApplicationTaskTag()
- xTaskGetApplicationTaskTag()
- SetThreadLocalStoragePointer()
- GetThreadLocalStoragePointer()
- pcTaskGetName()
- uxTaskGetNumberOfTasks()
- vTaskGetInfo()
- uxTaskGetSystemState()
- eTaskGetState()
- xTaskGetSchedulerState()
- vTaskGetRunTimeStats()
- vTaskList()
- uxTaskGetStackHighWaterMark()
- vApplicationIdleHook()
-
4. Lists and List Items: The Core Data Structures Behind Task Scheduling
- vListInitialise()
- vListInitialiseItem()
- vListInsert()
- vListInsertEnd()
- uxListRemove()
- Example: vListTask()
-
5. Queues and Queue Sets: Deterministic Inter-Task Communication
- xQueueCreate()
- xQueueCreateStatic()
- xQueueSend()
- xQueueSendToBack()
- xQueueSendToFront()
- xQueueOverwrite()
- xQueueSendFromISR()
- xQueueSendToBackFromISR()
- xQueueSendToFrontFromISR()
- xQueueOverwriteFromISR()
- xQueueReceive()
- xQueuePeek()
- xQueueReceiveFromISR()
- xQueuePeekFromISR()
- uxQueueSpacesAvailable()
- uxQueueMessagesWaiting()
- xQueueCreateSet()
- xQueueAddToSet()
- xQueueSelectFromSet()
-
6. Semaphores and Mutexes: Synchronization and Priority Inheritance
- xSemaphoreCreateBinary()
- xSemaphoreCreateBinaryStatic()
- xSemaphoreCreateCounting()
- xSemaphoreCreateCountingStatic()
- xSemaphoreCreateMutex()
- xSemaphoreCreateMutexStatic()
- xSemaphoreGive()
- xSemaphoreGiveFromISR()
- xSemaphoreTake()
- xSemaphoreTakeFromISR()
- xSemaphoreCreateRecursiveMutex()
- xSemaphoreCreateRecursiveMutexStatic()
- xSemaphoreTakeRecursive()
- xSemaphoreGiveRecursive()
-
7. Software Timers: Time-Based Events and Deferred Execution Mechanisms
- xTimerCreate()
- xTimerCreateStatic()
- xTimerStart()
- xTimerStartFromISR()
- xTimerStop()
- xTimerStopFromISR()
- xTimerReset()
- xTimerResetFromISR()
-
8. Event Groups: Multi-Condition Synchronization and Event Flags
- xEventGroupCreate()
- xEventGroupCreateStatic()
- xEventGroupClearBits()
- xEventGroupClearBitsFromISR()
- xEventGroupSetBits()
- xEventGroupSetBitsFromISR()
- xEventGroupGetBits()
- xEventGroupGetBitsFromISR()
- xEventGroupWaitBits()
- xEventGroupSync()
-
9. Task Notifications: Lightweight Direct-to-Task Signaling and Data Transfer
- xTaskNotify()
- xTaskNotifyFromISR()
- xTaskNotifyGive()
- vTaskNotifyGiveFromISR()
- xTaskNotifyAndQuery()
- xTaskNotifyAndQueryFromISR()
- ulTaskNotifyTake()
- xTaskNotifyWait()
- 10. Hook Functions and Tickless Idle: Runtime Callbacks, Error Detection, and Low-Power Integration
- Heap Management: Memory Allocation Models and Trade-Off Analysis
- Interrupt Integration: ISRs, Deferred Interrupt Processing, and Latency Control
Back to top of the page