嵌入式软件工程师、物联网设备开发人员、需要掌握实时操作系统开发方法的软硬件工程师。
理解实时操作系统的核心概念(任务、调度、同步、通信)。
掌握FreeRTOS/RT-Thread的内核对象与API的使用方法。
能够独立完成基于RTOS的嵌入式多任务应用程序开发与调试。
RTOS概述:实时操作系统的定义与特点;前后台系统(裸机)与RTOS的对比;实时性指标(硬实时、软实时);主流嵌入式RTOS(FreeRTOS、RT-Thread、uC/OS、RTX、Zephyr)的对比与选型。
FreeRTOS简介:FreeRTOS的发展历程与特点;FreeRTOS的源码结构;FreeRTOS的配置(FreeRTOSConfig.h);FreeRTOS在STM32平台上的移植(CubeMX配置、手动移植)。
任务管理:任务的概念与任务控制块(TCB);任务的创建(xTaskCreate、xTaskCreateStatic);任务的删除、挂起与恢复;任务优先级与调度算法(抢占式调度、时间片轮转);任务状态与状态转换。
任务调度:调度器的启动(vTaskStartScheduler);空闲任务(Idle Task)的作用;调度策略(固定优先级抢占、时间片);调度延迟与上下文切换。
队列(Queue):队列的作用(任务间通信);队列的创建(xQueueCreate、xQueueCreateStatic);队列的发送(xQueueSend、xQueueSendFromISR);队列的接收(xQueueReceive、xQueuePeek);队列在中断服务程序中的使用。
信号量:信号量的类型(二进制信号量、计数型信号量、互斥信号量、递归互斥信号量);信号量的创建与使用;信号量用于任务同步;互斥信号量与优先级继承(防止优先级反转);递归互斥信号量的应用。
事件标志组:事件标志组的作用(多事件同步);事件标志组的创建(xEventGroupCreate);事件位的设置(xEventGroupSetBits);事件位的等待(xEventGroupWaitBits);事件标志组在复杂同步场景中的应用。
软件定时器:软件定时器的作用(周期性任务);软件定时器的创建与启动;定时器回调函数的编写;定时器的重置与停止;软件定时器与硬件定时器的对比。
内存管理:FreeRTOS的内存管理方案(heap_1到heap_5的特点与适用场景);动态内存分配与静态内存分配的选择;内存碎片问题与处理;RTOS对象的静态创建。
RT-Thread基础:RT-Thread的特点(组件丰富、POSIX兼容、国产开源);RT-Thread的架构(内核、组件、包管理);RT-Thread的开发环境(RT-Thread Studio、Env工具);RT-Thread的启动流程。
RT-Thread内核对象:RT-Thread中的对象模型;线程(thread)的创建与管理;信号量(semaphore)与互斥量(mutex);邮箱(mailbox)与消息队列(message queue);事件集(event);定时器(timer)。
综合实战项目:基于FreeRTOS/RT-Thread的多任务应用开发(如智能传感器节点、小型控制系统),包含任务划分、任务间通信与同步、中断处理、软件定时器使用与系统调试。