这门课要解决什么问题
这门课聚焦于嵌入式系统里一个核心难题:多个任务如何安全、高效地共享和通信资源。它不教操作系统原理,而是手把手教你用具体机制解决实际工程中的同步、通信与死锁问题。从信号量、事件标志组到邮箱,从关中断到嵌套中断,课程按问题难度递进,帮你把抽象概念变成能直接上手的代码。
适合什么基础
需要具备C语言基础,能看懂简单的嵌入式代码即可。对操作系统内核、调度算法等底层原理没有硬性要求,课程会先讲清楚任务、中断这些基本概念,再进入具体机制。如果完全没接触过嵌入式开发,建议先花几天时间熟悉C语言和基础硬件知识,否则部分内容会吃力。
建议先看哪几块
第一块是基础环境搭建(第2讲),这部分虽然枯燥,但直接决定后续能否顺利运行代码,必须耐心看完。第二块是任务间资源共享的解决思路(第10-15讲),包括信号量、事件标志组、邮箱、互斥信号量,以及死锁问题,这是整个课程的核心骨架,建议重点看。第三块是任务与中断共享资源冲突的解决方案(第16-21讲),这部分难度稍高,涉及中断嵌套和优化,可以稍后学习。最后看任务间同步与通信的完整体系(第22-29讲),这是综合应用。
学完能独立做什么
学完这门课后,你应当能够独立设计并实现一个包含多任务、中断与共享资源的项目,正确使用信号量、邮箱、事件标志组等机制来保证资源访问的同步与安全,并避免死锁。课程没有涉及操作系统内核开发,而是聚焦于应用层集成,因此更适用于已有嵌入式项目、需要解决实际同步通信问题的工程师。
资料怎么配合练习
课程配套资料包主要提供开发环境搭建和代码模板,建议每学完一个机制,就尝试用配套代码修改或扩展,把信号量、邮箱的使用写进自己的项目中。资料包中的代码是学习的主要工具,但不要直接照搬,要理解每行代码的作用。如果某个概念暂时理解不了,可以跳过,等后续相关章节再回来,不必强求每个知识点都一次掌握。
课程目录
第10讲—C2.04 二值信号量解决任务间资源共享问题.mp4 59.55M 第11讲—C2.05 事件标志组解决任务间资源共享问题.mp4 39.06M 第12讲—C2.06 邮箱标志组解决任务间资源共享问题.mp4 32.59M 第13讲—C2.07 互斥信号量解决任务间资源共享问题.mp4 16.04M 第14讲—C2.08 死锁问题及解决.mp4 36.60M 第15讲—C2.09 任务间共享资源问题总结.mp4 9.58M 第16讲—C3.00 任务与中断共享资源冲突示例.mp4 26.44M 第17讲—C3.01 关中断解决任务中断共享资源冲突.mp4 11.35M 第18讲—C3.02 关指定中断解决任务中断共享资源冲突.mp4 17.26M 第19讲—C3.03 优化缩短关中断的时间.mp4 30.78M 第1讲—C0.00 课程简介.mp4 48.12M 第20讲—C3.04 请求模式解决任务中断共享资源冲突.mp4 35.69M 第21讲—C3.05 嵌套中断共享资源问题及解决.mp4 19.21M 第22讲—C4.00 任务中断的同步与通信概述.mp4 14.39M 第23讲—C4.01 用信号量实现任务间单向同步.mp4 25.88M 第24讲—C4.02 用邮箱实现多事件的单向同步.mp4 22.15M 第25讲—C4.03 用事件标志组实现多事件单向同步.mp4 25.54M 第26讲—C4.04 用信号量实现简单双向同步.mp4 22.33M 第27讲—C4.05 环状同步造成的死锁问题.mp4 17.87M 第28讲—C4.06 利用全局数据实现数据通信.mp4 18.28M 第29讲—C4.07 利用邮箱或消息队列实现数据通信.mp4 32.45M 第2讲—C0.01 下载安装开发软件.mp4 45.82M 第30讲—C5.01 系统时钟节拍设置.mp4 20.80M 第31讲—C5.02 任务延时的配置.mp4 40.09M 第32讲—C5.03 一次性定时事件的处理.mp4 19.91M 第33讲—C5.04 周期性定时事件的处理.mp4 17.64M 第34讲—C5.05 定时器的资源互斥处理.mp4 34.10M 第35讲—C5.06 定时器精度问题.mp4 18.62M 第36讲—C6.00 存储管理方案.mp4 23.18M 第37讲—C6.01 定长内存管理.mp4 36.33M 第38讲—C6.02 变长存储块.mp4 34.05M 第39讲—C6.03 存储管理方案小结.mp4 4.94M 第3讲—C0.02 下载并调试第一个工程.mp4 57.78M 第40讲—C7.00 任务管理模式概述.mp4 4.97M 第41讲—C7.01 使用非常驻任务管理事件.mp4 29.45M 第42讲—C7.02 中断事件分离处理.mp4 30.49M 第43讲—C7.05 任务优先级配置.mp4 13.45M 第44讲—C7.03 合理配置空闲任务.mp4 26.64M 第45讲—C7.04 多任务的协同.mp4 55.51M 第46讲—C8.00 实例:总体功能说明.mp4 26.00M 第47讲—C8.01 实例:按键驱动设计.mp4 62.44M 第48讲—C8.02 实例:串口驱动设计.mp4 64.53M 第49讲—C8.03 实例:外部端口驱动设计.mp4 33.84M 第4讲—C1.00 tinyOS工作原理与功能概述.mp4 18.27M 第50讲—C8.04 实例:波形生成设计.mp4 34.35M 第51讲—C8.05 实例:命令解释器设计1.mp4 60.27M 第52讲—C8.06 实例:命令解释器设计2.mp4 32.15M 第53讲—C8.07 实例:命令解释器设计.mp4 12.48M 第54讲—C8.08 实例:外部事件处理1.mp4 56.27M 第55讲—C8.09 实例:外部事件处理2.mp4 40.61M 第56讲—C8.10 实例:监控任务设计1.mp4 25.72M 第57讲—C8.11 实例:监控任务设计2.mp4 89.24M 第58讲—C8.12 监控任务设计3.mp4 31.86M 第59讲—C8.13 性能优化和功能裁剪.mp4 98.38M 第5讲—C1.01 创建任务并运行起来.mp4 39.58M 第60讲—C8.14 设计回顾.mp4 15.56M 第6讲—C2.00 资源共享冲突问题概述.mp4 30.39M 第7讲—C2.01 任务间资源共享问题示例.mp4 64.43M 第8讲—C2.02 关中断解决任务间资源共享问题.mp4 9.81M 第9讲—C2.03 调度锁解决任务间资源共享问题.mp4 37.75M 【李述铜】从0到1手把手教你用嵌入式操作系统/ 第11讲—C2.05 事件标志组解决任务间资





