From c9501f6f95e00a85e09ff3b342e79cd680f3b88b Mon Sep 17 00:00:00 2001 From: Natsume1710 <162396185+Natsume1710@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:31:17 +0800 Subject: [PATCH] =?UTF-8?q?Delete=2004-=E5=AE=9E=E6=97=B6=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=B3=BB=E7=BB=9F/=E7=AC=AC=E5=9B=9B=E5=B1=82?= =?UTF-8?q?=EF=BC=9A=E5=AE=9E=E6=97=B6=E6=93=8D=E4=BD=9C=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 04-实时操作系统/第四层:实时操作系统.md | 116 ------------------------ 1 file changed, 116 deletions(-) delete mode 100644 04-实时操作系统/第四层:实时操作系统.md diff --git a/04-实时操作系统/第四层:实时操作系统.md b/04-实时操作系统/第四层:实时操作系统.md deleted file mode 100644 index 32ca076..0000000 --- a/04-实时操作系统/第四层:实时操作系统.md +++ /dev/null @@ -1,116 +0,0 @@ -# 🟣 第四层:实时操作系统(RTOS) - -本模块介绍嵌入式 RTOS(如 FreeRTOS)的基础知识、任务调度机制、资源管理方式以及在实际项目中的使用模式。 - ---- - -## 🔹 RTOS 基础概念 - -### 什么是 RTOS? -- RTOS(Real-Time Operating System)是用于嵌入式设备中的轻量级操作系统,能提供任务调度、时间管理、资源管理等功能。 -- 特点:确定性、实时性、多任务调度、资源隔离 - -### 常见 RTOS -- FreeRTOS(开源、广泛使用) -- RT-Thread(国产开源,图形化支持强) -- CMSIS-RTOS(ARM 标准接口) -- Zephyr(Linux 基金会支持,适合物联网) - ---- - -## 🔹 任务管理 - -### 创建任务 -```c -xTaskCreate(TaskFunction_t pxTaskCode, - const char * const pcName, - configSTACK_DEPTH_TYPE usStackDepth, - void *pvParameters, - UBaseType_t uxPriority, - TaskHandle_t *pxCreatedTask); -``` - -### 任务状态 -- Ready:就绪状态 -- Running:运行中 -- Blocked:等待事件/超时 -- Suspended:挂起 -- Deleted:已删除 - -### 任务优先级与调度算法 -- 抢占式优先调度(Preemptive) -- 时间片轮转调度(Time Slicing) - ---- - -## 🔹 时间管理 - -### 延时与定时 -```c -vTaskDelay(pdMS_TO_TICKS(1000)); // 延时 1 秒 -``` - -### 软件定时器 -```c -xTimerCreate(); -xTimerStart(); -``` - ---- - -## 🔹 线程间通信 - -### 队列(Queue) -- 用于任务间数据传递(FIFO 结构) -```c -xQueueCreate(); -xQueueSend(); -xQueueReceive(); -``` - -### 信号量(Semaphore) -- 二值信号量(同步) -- 计数信号量(共享资源数量) -- 互斥信号量(用于资源保护) - -### 消息队列(Message Queue) -- 用于传递结构化数据或消息结构体 - -### 事件组(Event Group) -- 类似标志位,可用于多任务同步 - ---- - -## 🔹 资源管理 - -### 内存管理方式 -- 静态分配(推荐) -- 动态分配(需要注意碎片与失败处理) - -### 临界区保护 -```c -taskENTER_CRITICAL(); -taskEXIT_CRITICAL(); -``` - ---- - -## 🔹 FreeRTOS 配置与移植 - -### 配置项(FreeRTOSConfig.h) -- `configUSE_PREEMPTION`:是否使用抢占式调度 -- `configMAX_PRIORITIES`:最大任务优先级数 -- `configMINIMAL_STACK_SIZE`:最小栈空间大小 - -### 移植步骤 -1. 提供 SysTick 定时器实现 -2. 提供上下文切换代码(汇编) -3. 编写启动任务入口函数 `vTaskStartScheduler()` - ---- - -## 🔹 实践应用场景 - -- 多任务协同:传感器数据采集 + 通信模块处理 -- 响应式控制:定时器 + 外部中断 + 优先级控制 -- 任务调度机制优化(任务嵌套/抢占/时间片轮转)