📦 分拣机·RTOS移植
30章
⏱️ 实时操作系统
v2.0
01
分拣机系统概述
原理
工作原理
· 嵌入式角色 · 实时性分析
02
RTOS基础概念
核心
任务 · 调度器 · 临界区 · 同步通信
03
硬件平台选型
ARM
Cortex-M4/M7 · 内存映射 · NVIC
04
开发环境搭建
IDE
Keil MDK / IAR · 工程模板 · Linker Script
05
FreeRTOS源码结构
内核
核心文件 · 内存管理 · 配置项详解
06
移植第一步:portmacro.h
宏
数据类型重定义 · 临界区 · 栈增长方向
07
移植第二步:port.c
核心
任务栈初始化 · 启动任务 · PendSV异常
08
FreeRTOSConfig.h
配置
时钟节拍 · 最大优先级 · 堆大小
09
中断管理
嵌套
中断嵌套模型 · 临界区保护 · 延迟优化
10
任务创建与管理
动态
xTaskCreate · 参数传递 · 删除与挂起
11
任务调度机制
调度
抢占式 · 时间片轮转 · 空闲任务钩子
12
队列(queue)
IPC
创建/发送/接收 · 队列集 · 分拣机应用
13
信号量(semaphore)
同步
二值/计数/互斥 · 优先级反转
14
事件组(event group)
标志
多事件同步 · 等待标志 · 故障处理
15
任务通知
轻量IPC
替代信号量/队列 · 性能对比
16
软件定时器
Timer
创建 · 回调 · 自动重载/单次
17
内存管理优化
heap
heap_1~5对比 · 碎片问题 · 自定义分配器
18
低功耗Tickless
省电
工作原理 · 配置 · 待机功耗优化
19
MPU内存保护
安全
Cortex-M MPU · 任务隔离 · 防越界
20
栈溢出检测
调试
硬件检测 · FreeRTOS钩子 · 栈大小估算
21
运行时统计
性能
vTaskGetRunTimeStats · 性能计数器 · CPU占用
22
调试与Trace
追踪
SystemView · FreeRTOS+Trace · 断点技巧
23
分拣机任务划分
设计
传感器 · 电机控制 · 通信 · 人机交互
24
实时性验证
WCET
最坏情况执行时间 · 响应测试 · 抖动测量
25
中断延迟优化
零延迟
ISR瘦身 · 延迟处理 · 零延迟中断技术
26
任务优先级设计
分配
分配原则 · 反转避免 · 分拣机方案
27
通信协议栈移植
CAN
CANopen · Modbus RTU · FreeRTOS适配
28
Bootloader设计
升级
固件升级 · 双区备份 · 安全启动
29
系统集成测试
验证
压力测试 · 长时间稳定 · 异常恢复
30
项目实战
全流程
从零搭建控制器 · 代码架构 · 性能调优