【资源目录】:

├──第1期:C语言进阶路线学习指南
| ├──1.1 嵌入式C语言进阶学习路线指南_带片头.mp4 113.90M
| ├──1.2 代码编译工具Vim使用命令.mp4 122.51M
| ├──1.3 使用GCC、Make编译源程序.mp4 117.53M
| └──1.4 使用Git管理软件项目版本.mp4 126.37M
├──第2期:计算机系统架构与ARM汇编语言
| ├──2.1 计算机体系结构.mp4 110.52M
| ├──2.10 C和汇编混合编程.mp4 133.37M
| ├──2.11 GNU ARM汇编语言.mp4 332.97M
| ├──2.12 链接脚本.mp4 86.26M
| ├──2.13 嵌入式系统启动流程.mp4 195.68M
| ├──2.2 X86与ARM架构对比分析.mp4 101.47M
| ├──2.3 C51与ARM架构对比分析.mp4 51.71M
| ├──2.4 总线与地址.mp4 125.97M
| ├──2.5 指令集、微架构与编译器.mp4 103.48M
| ├──2.6 ARM体系结构与寻址方式.mp4 344.04M
| ├──2.7 ARM汇编指令.mp4 165.41M
| ├──2.8 ARM伪指令.mp4 119.78M
| └──2.9 ARM汇编程序与伪操作.mp4 117.95M
├──第3期:程序的编译、链接和运行
| ├──3.1 程序的编译与可执行文件.mp4 112.89M
| ├──3.10 程序的运行.mp4 184.00M
| ├──3.11 BSS段的处理.mp4 98.94M
| ├──3.12 main函数入口分析.mp4 220.03M
| ├──3.13 链接静态库.mp4 78.26M
| ├──3.14 动态链接(1):与位置无关的代码.mp4 184.13M
| ├──3.15 动态链接(2):全局符号表GOT.mp4 296.94M
| ├──3.16 动态链接(3):共享库.mp4 141.82M
| ├──3.17 开发一个插件.mp4 89.28M
| ├──3.18 内核模块加载机制.mp4 112.40M
| ├──3.19 binutils工具集.mp4 154.40M
| ├──3.2 GCC命令参数.mp4 145.41M
| ├──3.20 linux内核加载实验.mp4 488.65M
| ├──3.21 u-boot重定位分析(上).mp4 416.72M
| ├──3.22 u-boot重定位分析(下).mp4 350.04M
| ├──3.3 预处理过程.mp4 97.59M
| ├──3.4 编译过程(1):从源程序到汇编文件.mp4 158.85M
| ├──3.5 编译过程(2):汇编过程.mp4 112.92M
| ├──3.6 编译过程(3):符号表.mp4 220.59M
| ├──3.7 链接过程(1):地址空间分配与链接脚本.mp4 158.01M
| ├──3.8 链接过程(2):符号解析-强符号与弱符号.mp4 280.20M
| └──3.9 链接过程(3):重定位.mp4 229.38M
├──第4期:堆栈内存管理
| ├──4.1 程序与内存的关系.mp4 73.08M
| ├──4.10 ucos堆内存管理.mp4 231.16M
| ├──4.11 Linux堆内存管理(1):内存分配器.mp4 148.92M
| ├──4.12 linux堆内存管理(2):内存申请与释放.mp4 281.78M
| ├──4.13 Linux堆内存管理(3):内存申请释放示例.mp4 148.79M
| ├──4.14 内存泄露与防范.mp4 178.89M
| ├──4.15 常见内存错误及检测.mp4 204.43M
| ├──4.16 实战&作业:实现自己的堆管理器.mp4 101.69M
| ├──4.2 栈的初始化及大小.mp4 119.81M
| ├──4.3 栈的管理:函数调用.mp4 190.51M
| ├──4.4 栈的管理:参数传递.mp4 122.67M
| ├──4.5 形参与实参.mp4 90.65M
| ├──4.6 栈与作用域.mp4 165.31M
| ├──4.7 栈溢出攻击原理.mp4 157.78M
| ├──4.8 实战:栈溢出攻击示例.mp4 130.54M
| └──4.9 堆内存管理:内存申请与释放.mp4 130.39M
├──第5期:Linux内核中的GNU C扩展语法
| ├──5.1 什么是C语言标准?.mp4 114.28M
| ├──5.10 属性声明:const.mp4 43.35M
| ├──5.11 属性声明:weak & alias.mp4 137.86M
| ├──5.12 属性声明:constructor & destructor.mp4 62.59M
| ├──5.13 属性声明:noinline & always_inline.mp4 89.10M
| ├──5.14 属性声明:mode.mp4 60.13M
| ├──5.15 属性声明:noreturn.mp4 33.54M
| ├──5.16 属性声明:used & unused.mp4 15.53M
| ├──5.17 内建函数.mp4 72.57M
| ├──5.18 内建函数:__builtin_constant_p.mp4 39.67M
| ├──5.19 内建函数:__builtin_expect.mp4 207.72M
| ├──5.2 C标准发展过程及新增特性.mp4 292.15M
| ├──5.20 case范围扩展.mp4 31.59M
| ├──5.21 do{}while(0).mp4 33.05M
| ├──5.22 可变参数宏.mp4 118.06M
| ├──5.23 局部标签.mp4 30.66M
| ├──5.24 标号元素.mp4 57.41M
| ├──5.3 语句表达式.mp4 265.69M
| ├──5.4 typeof.mp4 137.95M
| ├──5.5 container_of.mp4 195.37M
| ├──5.6 零长度数组.mp4 200.81M
| ├──5.7 属性声明:section.mp4 301.58M
| ├──5.8 属性声明:aligned & packed.mp4 200.00M
| └──5.9 属性声明:format.mp4 338.01M
├──第6期:数据存储与指针
| ├──6.1 存储才是C语言的精髓.mp4 38.55M
| ├──6.10 常量存储.mp4 121.58M
| ├──6.11 从变量到指针.mp4 169.35M
| ├──6.12 一些复杂的指针声明.mp4 126.46M
| ├──6.13 指针类型与运算.mp4 63.37M
| ├──6.14 指针与数组的暧昧:下标运算.mp4 74.16M
| ├──6.15 指针与数组的暧昧:数组名.mp4 101.11M
| ├──6.16 指针与数组的暧昧:数值指针与指针数组.mp4 117.77M
| ├──6.17 指针与结构体.mp4 140.43M
| ├──6.18 二级指针:修改指针变量.mp4 64.52M
| ├──6.19 二级指针:指针数组传参.mp4 29.68M
| ├──6.2 存储的基本概念.mp4 82.43M
| ├──6.20 二级指针:二维数组.mp4 135.29M
| ├──6.21 指针函数与函数指针.mp4 76.56M
| ├──6.22 重新认识void.mp4 106.64M
| ├──6.3 有符号数和无符号数.mp4 151.59M
| ├──6.4 数据溢出.mp4 112.90M
| ├──6.5 数据对齐.mp4 133.15M
| ├──6.6 数据类型转换.mp4 119.27M
| ├──6.7 数据的可移植性.mp4 131.90M
| ├──6.8 内核中的size_t数据类型.mp4 55.91M
| └──6.9 变量的本质.mp4 207.32M
├──第7期:嵌入式数据结构和Linux面向对象思想
| ├──7.1 本期学习主要内容.mp4 35.35M
| ├──7.10 队列:链式队列.mp4 106.64M
| ├──7.11 Linux内核中的队列:KFIFO(上).mp4 173.07M
| ├──7.12 Linux内核中的队列:KFIFO(下).mp4 160.98M
| ├──7.13 代码复用与分层思想.mp4 93.25M
| ├──7.14 面向对象编程:封装、继承与多态.mp4 213.55M
| ├──7.15 Linux内核的面向对象思想:封装(上).mp4 216.28M
| ├──7.16 Linux内核的面向对象思想:封装(下).mp4 147.09M
| ├──7.17 Linux内核的面向对象思想:继承(上).mp4 190.48M
| ├──7.18 Linux内核的面向对象思想:继承(下).mp4 220.40M
| ├──7.19 Linux内核的面向对象思想:多态.mp4 101.45M
| ├──7.2 数据结构基础.mp4 99.48M
| ├──7.3 单向链表.mp4 214.90M
| ├──7.4 单循环链表.mp4 116.65M
| ├──7.5 双向链表.mp4 185.46M
| ├──7.6 双向循环链表.mp4 119.22M
| ├──7.7 Linux内核中的通用链表(上).mp4 191.35M
| ├──7.8 Linux内核中的通用链表(下).mp4 184.01M
| └──7.9 队列:顺序队列.mp4 157.33M
├──第8期:C语言的模块化编程
| ├──20.模块间通信(上):全局变量.mp4 145.63M
| ├──21 模块间通信(中):回调函数.mp4 168.28M
| ├──22 模块间通信(下):异步通信.mp4 33.22M
| ├──23 模块设计进阶:跨平台设计.mp4 101.48M
| ├──24 模块设计进阶:框架(framework).mp4 133.71M
| ├──8.1 如何从零做一碗炸酱面.mp4 81.97M
| ├──8.10 头文件剖析:变量声明.mp4 168.61M
| ├──8.11 头文件剖析:前向引用.mp4 164.13M
| ├──8.12 头文件剖析:头文件路径(上).mp4 261.81M
| ├──8.13 头文件剖析:头文件路径(下).mp4 168.12M
| ├──8.14 Linux内核中的头文件.mp4 258.01M
| ├──8.15 头文件之间的依赖关系.mp4 216.81M
| ├──8.16 定义与声明的一致性.mp4 36.43M
| ├──8.17 头文件中的内联函数.mp4 65.02M
| ├──8.18 模块设计原则:高内聚低耦合.mp4 93.92M
| ├──8.19 被误解的关键字:goto.mp4 41.89M
| ├──8.2 模块的编译和链接(上).mp4 89.68M
| ├──8.3 模块的编译和链接(下).mp4 137.20M
| ├──8.4 系统模块划分.mp4 115.23M
| ├──8.5 面向对象的思维陷阱.mp4 45.24M
| ├──8.6 规划合理的目录结构.mp4 131.89M
| ├──8.7 一个模块的封装过程.mp4 24.53M
| ├──8.8 头文件剖析:基本概念.mp4 179.19M
| └──8.9 头文件剖析:隐式声明.mp4 123.40M
├──第9期:CPU和操作系统入门
| ├──9.1 CPU和操作系统入门.mp4 43.05M
| ├──9.10 中断(上):中断处理流程.mp4 74.93M
| ├──9.11 中断(中):进程栈与中断栈.mp4 141.34M
| ├──9.12 中断(下):中断函数的编写.mp4 91.32M
| ├──9.13 存储器映射(上).mp4 173.67M
| ├──9.14 存储器映射(下).mp4 91.71M
| ├──9.15 存储抽象:文件系统.mp4 121.23M
| ├──9.16 内存、外存与外设.mp4 105.93M
| ├──9.17 IO端口与IO内存.mp4 60.30M
| ├──9.18 位运算(上).mp4 132.89M
| ├──9.19 位运算(下).mp4 102.75M
| ├──9.2 多任务的裸机实现(上).mp4 86.16M
| ├──9.20 位域.mp4 49.31M
| ├──9.21 内管管理单元MMU(上).mp4 151.20M
| ├──9.22 内存管理单元MMU(下).mp4 51.72M
| ├──9.23 本期小结.mp4 22.76M
| ├──9.3 多任务的裸机实现(下).mp4 85.91M
| ├──9.4 调度器的工作原理.mp4 123.38M
| ├──9.5 函数栈与进程栈.mp4 71.17M
| ├──9.6 可重入函数.mp4 67.38M
| ├──9.7 临界区与临界资源.mp4 89.93M
| ├──9.8 系统调用(上).mp4 108.70M
| └──9.9 系统调用(下).mp4 87.03M
└──C语言嵌入式Linux高级编程配套代码.zip 27.35M