getfromcode软考考证 会员免费

【李述铜】从0到1手把手教你用嵌入式操作系统

《【李述铜】从0到1手把手教你用嵌入式操作系统》本课程是 >课程的续篇。【技能收获】学完可掌握:核心实战技能、项目驱动学习。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已

单课价¥29.90新品 上架
会员价 会员免费开通会员,全站课程按额度无限下载套餐详情
1 人关注 更新于 2026-09-17 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

支付成功后自动发货,可在「我的订单」查看网盘链接;链接失效可联系客服免费补链。

正版保障 极速发货 售后无忧

这门课的主题很明确:自己动手写一个能在裸机上跑起来的嵌入式操作系统内核。它接在《自己动手从0到1写嵌入式操作系统》之后,属于同一技术脉络的续篇,重点不是讲操作系统理论,而是把任务调度、内存管理、中断处理、设备驱动这些机制落到可编译、可烧录、可调试的代码上。

技术栈与前置基础

课程以 ARM Cortex-M 系列为硬件载体,工具链是 arm-none-eabi-gcc 配合 Makefile,调试走 GDB + OpenOCD 或仿真器。语言层面只用到 C 和少量汇编,C 部分要求能看懂函数指针、结构体嵌套和链表操作,汇编部分要求能理解异常向量表和上下文切换时压栈/出栈的顺序。如果此前写过 STM32 的裸机点灯或串口收发,起步会顺畅很多;如果只写过应用层代码,建议先把启动文件、链接脚本、中断向量表这三块补一补,再进入内核部分。

课程在讲什么

整条主线是从一个极简的调度器出发,逐步把内核的骨架搭起来:先做任务定义与任务切换,让多个任务能轮流占用 CPU;再引入临界区保护和信号量、互斥量,解决共享资源的竞争;接着做基于时间片或优先级的调度策略,把事件驱动和延时机制补上。后半程会涉及内存管理——固定分区、动态堆、内存池这几种方案的取舍,以及中断下半部的处理方式。这些内容不是一个个孤立的知识点,而是被组织成一条能连续运行的内核启动链路,每加一个模块,前面已经跑通的部分依然可用。

可复用的工程结构

资料包里的代码不是单文件堆砌,而是按内核源码、硬件抽象层、应用层、启动代码分目录组织。移植相关的东西集中在 arch 和 bsp 里,换一块板子主要改时钟、串口和中断号,内核核心逻辑基本不动。这种分层对做嵌入式项目的人有直接价值:你可以把内核目录整体搬到自己的工程里,只保留需要的调度和 IPC 模块,裁剪掉暂时用不上的部分。配套笔记按章节整理,适合在改完一处调度逻辑后回头对照,确认压栈顺序、优先级反转、超时唤醒这些容易写错的细节。

按什么节奏学

不要一口气把视频看完再动手,这门课的价值在“跟着敲”。建议每次只看一到两讲,把对应模块独立编译通过,用调试器单步看一次任务切换前后的寄存器状态,确认 SP、PC 和 LR 的变化符合预期。遇到调度死锁或中断进不去,先查栈对齐和优先级分组,这两处是嵌入式内核新手最常踩的坑。每完成两三个模块,把当前内核烧到板子上跑一遍,观察串口输出是否稳定,再继续往下加功能。全部跟完之后,尝试把调度器换成另一种策略,或者给现有内核补一个消息队列,能独立改出可运行的版本,才算真正吃透这套代码。


本课程是 >课程的续篇。

课程推荐

《【李述铜】从0到1手把手教你用嵌入式操作系统》本课程是 >课程的续篇。【技能收获】学完可掌握:核心实战技能、项目驱动学习。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。

视频目录(60 节)

*   第1讲—C0.00 课程简介.mp4

*   第2讲—C0.01 下载安装开发软件.mp4

*   第3讲—C0.02 下载并调试第一个工程.mp4

*   第4讲—C1.00 tinyOS工作原理与功能概述.mp4

*   第5讲—C1.01 创建任务并运行起来.mp4

*   第6讲—C2.00 资源共享冲突问题概述.mp4

*   第7讲—C2.01 任务间资源共享问题示例.mp4

*   第8讲—C2.02 关中断解决任务间资源共享问题.mp4

*   第9讲—C2.03 调度锁解决任务间资源共享问题.mp4

*   第10讲—C2.04 二值信号量解决任务间资源共享问题.mp4

*   第11讲—C2.05 事件标志组解决任务间资源共享问题.mp4

*   第12讲—C2.06 邮箱标志组解决任务间资源共享问题.mp4

*   第13讲—C2.07 互斥信号量解决任务间资源共享问题.mp4

*   第14讲—C2.08 死锁问题及解决.mp4

*   第15讲—C2.09 任务间共享资源问题总结.mp4

*   第16讲—C3.00 任务与中断共享资源冲突示例.mp4

*   第17讲—C3.01 关中断解决任务中断共享资源冲突.mp4

*   第18讲—C3.02 关指定中断解决任务中断共享资源冲突.mp4

*   第19讲—C3.03 优化缩短关中断的时间.mp4

*   第20讲—C3.04 请求模式解决任务中断共享资源冲突.mp4

*   第21讲—C3.05 嵌套中断共享资源问题及解决.mp4

*   第22讲—C4.00 任务中断的同步与通信概述.mp4

*   第23讲—C4.01 用信号量实现任务间单向同步.mp4

*   第24讲—C4.02 用邮箱实现多事件的单向同步.mp4

*   第25讲—C4.03 用事件标志组实现多事件单向同步.mp4

*   第26讲—C4.04 用信号量实现简单双向同步.mp4

*   第27讲—C4.05 环状同步造成的死锁问题.mp4

*   第28讲—C4.06 利用全局数据实现数据通信.mp4

*   第29讲—C4.07 利用邮箱或消息队列实现数据通信.mp4

*   第30讲—C5.01 系统时钟节拍设置.mp4

*   第31讲—C5.02 任务延时的配置.mp4

*   第32讲—C5.03 一次性定时事件的处理.mp4

*   第33讲—C5.04 周期性定时事件的处理.mp4

*   第34讲—C5.05 定时器的资源互斥处理.mp4

*   第35讲—C5.06 定时器精度问题.mp4

*   第36讲—C6.00 存储管理方案.mp4

*   第37讲—C6.01 定长内存管理.mp4

*   第38讲—C6.02 变长存储块.mp4

*   第39讲—C6.03 存储管理方案小结.mp4

*   第40讲—C7.00 任务管理模式概述.mp4

*   第41讲—C7.01 使用非常驻任务管理事件.mp4

*   第42讲—C7.02 中断事件分离处理.mp4

*   第43讲—C7.05 任务优先级配置.mp4

*   第44讲—C7.03 合理配置空闲任务.mp4

*   第45讲—C7.04 多任务的协同.mp4

*   第46讲—C8.00 实例:总体功能说明.mp4

*   第47讲—C8.01 实例:按键驱动设计.mp4

*   第48讲—C8.02 实例:串口驱动设计.mp4

*   第49讲—C8.03 实例:外部端口驱动设计.mp4

*   第50讲—C8.04 实例:波形生成设计.mp4

*   第51讲—C8.05 实例:命令解释器设计1.mp4

*   第52讲—C8.06 实例:命令解释器设计2.mp4

*   第53讲—C8.07 实例:命令解释器设计.mp4

*   第54讲—C8.08 实例:外部事件处理1.mp4

*   第55讲—C8.09 实例:外部事件处理2.mp4

*   第56讲—C8.10 实例:监控任务设计1.mp4

*   第57讲—C8.11 实例:监控任务设计2.mp4

*   第58讲—C8.12 监控任务设计3.mp4

*   第59讲—C8.13 性能优化和功能裁剪.mp4

*   第60讲—C8.14 设计回顾.mp4