韦东山视频教程视频的章节和要点
第一部分 ARM体系结构与裸机实验 | 韦东山Linux视频第1期 |
第01课 环境搭建及工具、概念介绍 | 第1部分的细化,以后就在Linux上工作了,环境必须先建好 |
第02课 GPIO实验 | 写出第1个裸板程序,掌握几条汇编指令,汇编怎么调用C |
知道怎么操作GPIO,了解2440的启动过程 | |
写出第1个Makefile, | |
第03课 存储管理器实验 | 掌握SDRAM的初始化方法 |
掌握位置无关指令,相对跳转、绝对跳转 | |
掌握代码重定位 | |
第04课 MMU实验 | 大概了解ARM里虚拟地址、物理地址的概念 |
了解内存映射的基理 | |
掌握链接脚本的写法 | |
感觉有难度的就跨过 | |
第05课 NAND FLASH控制器 | 掌握第1个协议类接口:NAND的操作原理 |
掌握把NAND中的程序重定位的方法 | |
第06课 中断控制器 | 掌握ARM架构的中断处理过程 |
第07课 系统时钟和UART实验 | 掌握提高系统时钟的方法,掌握串口的操作 |
第08课 LCD实验 | 掌握LCD的操作方法,掌握时序设置(建议同时看第2期LCD驱动) |
再次深入了解链接脚本,为何要清BSS段 | |
第09课 U-BOOT分析 | 结合<嵌入式Linux应用开发完全手册>了解u-boot的运行流程 |
理解u-boot的命令实现方法,能自己添加一个命令 | |
了解u-boot怎么传参数给内核,怎样启动内核 | |
第10课 内核启动流程分析 | 掌握Linux内核的启动流程:u-boot传入的机器ID的处理 |
u-boot传入的其他参数的处理 | |
内核怎么去启动第1个应用程序 | |
第11课 构建根文件系统 | 第1个进程的作用 |
根文件系统的构成 | |
制作文件系统映象文件、烧写 | |
第12课节 字符设备驱动程序 | 简单的字符设备驱动:框架、查询方式、中断方式、poll、 |
异步通知、同步互斥等基本概念 | |
第二部分 高级驱动程序及调试 | 韦东山Linux视频第2期 |
第13课 输入子系统 | 第12课里的驱动代码基本上都是自己写的, |
第13课分析内核自带的驱动,理解后再添加自己的硬件支持 | |
输入子系统是很重要的,触摸屏、键盘、鼠标等都是这套框架 | |
第14课 驱动程序分层分离概念_总线驱动设备模型 | 内核里大量使用所谓的平台驱动、平台设备,这只是一个技巧 |
第15课 LCD驱动程序 | 掌握frame buffer这套自带驱动 |
掌握LCD的操作原理、时序设置 | |
掌握编写硬件相关的LCD底层驱动 | |
第16课 触摸屏驱动程序 | 掌握电阻式触摸屏的操作原理 |
掌握输入子系统的第2个驱动(第1个驱动是第13课) | |
第17课 USB驱动程序 | 掌握USB驱动程序的框架:USB主机控制器驱动、USB设备驱动 |
掌握USB设备驱动的编写方法 | |
掌握USB数据的读写方法 | |
第18课 块设备驱动程序 | 了解块设备驱动程序的框架,为何引入块设备驱动 |
掌握第1个最简单的块设备驱动程序:用内存模拟硬盘 | |
第19课 NAND FLASH驱动程序 | MTD设备的分层 |
NAND FLASH的操作原理 | |
NAND FLASH的时序设置 | |
NAND FALSH底层硬件驱动的设计 | |
划分分区 | |
第20课 NOR FLASH驱动程序 | MTD设备的分层 |
NOR FLASH的操作原理 | |
NOR FLASH的时序设置 | |
NOR FALSH底层硬件驱动的设计 | |
划分分区 | |
第21课 网卡驱动程序 | 了解第3类驱动:网卡驱动的框架 |
编写一个虚拟网卡驱动来加深了解 | |
第22课 网卡驱动程序 | 内存类接口芯片的操作方法:确定基址、设置时序 |
移植:编译、出错、解决错误、再编译 | |
第23课 I2C设备裸板程序 | 掌握I2C协议,掌握在S3C2440上怎么操作I2C |
第24课 I2C驱动程序 | 掌握I2C设备驱动程序的框架及编写方法 |
第25课 字符设备驱动程序概念纠正之另一种写法 | egister_chrdev之外的第2中写法:cdev |
第26课 OSS模型声卡驱动的框架及UDA1341、WM9876驱动移植 |
|
第27课 DMA | 在内核下怎么使用DMA |
第28课 热拨插机制(hotplug)和mdev的使用 | 结合内核代码了解设备节点的自动创建及删除 |
掌握mdev的使用方法 | |
实现热拨插动作,比如让U盘自动挂载 | |
第29课 裸板调试 | 点灯、打印、用JTAG工具进行源码级(gdb,eclipse)的调试 |
进行源码级(gdb,eclipse)调试的前提条件 | |
第30课 驱动程序调试 | printk打印,借用proc文件系统、分析oops信息、栈信息回溯 |
自制工具──寄存器编辑器 | |
第31课 从系统的角度进行应用程序调试 | 用strace命令跟踪系统调用 |
用gdb和gdbserver调试 | |
自制系统调用 | |
编写输入模拟器 | |
第32课 新内核下的I2C驱动程序 | 新内核下的I2C驱动程序框架 |
编写I2C设备驱动程序 | |
不写驱动程序,从用户态直接访问 | |
编写I2C总线驱动程序 | |
毕业班第1课 自己写bootloader | 这是第3部分裸板的集成:启动代码、重定位、NAND操作、 |
传参数给内核、启动内核 | |
从这个简单的程序,你可以理解u-boot的最重要功能 | |
毕业班第2课 移植最新u-boot | 这也是第3部分裸板的实际应用 |
毕业班第3课 移植3.4.2内核,构造根文件系统 |
|
毕业班第4课 移植驱动到3.4.2内核 | 有人说2.6.22.6内核太老了,你看了这一课就会发现 |
使用老内核可以让你学到更多,并且把驱动移到新内核很简单 | |
第三部分 实战项目 | 韦东山Linux视频第3期 |
第1个项目 | 数码相框 |
第1课_数码相框之系统框架 | 总体讲述这个项目所涉及的框架,所需要的知识 |
第2课第1节_字符的编码方式 | 讲解怎样在LCD上显示文字, 从最简单的点限显示讲起, |
第2课第2节_字符的点阵显示 | |
第2课第3.1节_freetype理论介绍 | |
第2课第3.2节_在PC上测试freetype | |
第2课第3.3节_在LCD上显示一个矢量字体 | |
第2课第3.4节_在LCD上显示多行文字 | |
第3课第1节_额外项目_电子书之效果及框架 | 额外项目1,实现了在LCD上显示阅读文本 以面向对像的方法编写的程序很容易扩展, 这是一个示例 |
第3课第2节_额外项目_电子书之代码阅读及编写 | |
第3课第3节_额外项目_电子书之指针的操作 | |
第3课第4节_额外项目_电子书之链表的操作 | |
第3课第5节_额外项目_电子书之在PC上显示 | |
第4课_编写通用的Makefile | 从零写出一个复杂的Makefile,工作中可以把它用于所有项目 |
第5课第1节_使用多种方法支持多输入_框架及轮询方式 | 以多种方式实现了输入事件的读取 |
第5课第2节_使用多种方法支持多输入_select方式 | |
第5课第3节_使用多种方法支持多输入_多线程 | |
第6课第1节_一小时学会网络编程_两个简单例子_tcp_udp | 掌握网络编程,掌握远程打印(实际产品一般没有串口供你操作) |
第6课第2节_修改电子书源码支持远程打印1 | |
第6课第2节_修改电子书源码支持远程打印2 | |
第7课_libjpeg的使用 | 使用开源库显示JPG图片 |
第8课第1节_数码相框功能及程序框架 | 这一节实现了数码相框的架构设计, 串讲了其他页面的代码, |
第8课第2节_数码相框程序编写_先写框架 | |
第8课第3.1节_数码相框程序编写_图标显示之bmp数据提取 | |
第8课第3.2节_数码相框程序编写_图标显示之缩放 | |
第8课第3.3节_数码相框程序编写_图标显示之测试 | |
第8课第4.1节_数码相框程序GUI编写_MainPage显存管理 | |
第8课第4.3节_数码相框程序GUI编写_MainPage输入功能 | |
第8课第4.4节_数码相框GUI程序编写_MainPage测试 | |
第8课第5.1节_数码相框效果演示及编译使用方法 | |
第8课第5.2节_数码相框完整代码的讲解 | |
第8课第5.3节_数码相框改进性能_支持中文 | |
第8课第5.4节_数码相框课后作业及思路 | |
第2个项目 | 远程视频监控 |
第1课第1节_摄像头驱动_V4L2框架分析 | 虚拟驱动程序忽略了复杂的硬件操作, |
第1课第2节_摄像头驱动_虚拟驱动vivi的测试 | |
第1课第3节_摄像头驱动_虚拟驱动vivi彻底分析 | |
第1课第4节_摄像头驱动_从零写一个虚拟驱动 | |
第2课第1节_摄像头驱动_USB摄像头驱动框架分析 | 工作中我们不一定要自己写摄像头驱动, |
第2课第2节_摄像头驱动_从零写USB摄像头驱动之分析描述符 | |
第2课第3节_摄像头驱动_从零写USB摄像头驱动之实现数据传输_框架 | |
第2课第4节_摄像头驱动_从零写USB摄像头驱动之实现数据传输_简单函数 | |
第2课第5节_摄像头驱动_从零写USB摄像头驱动之实现数据传输_设置参数 | |
第2课第6节_摄像头驱动_从零写USB摄像头驱动之实现数据传输_URB | |
第2课第7节_摄像头驱动_从零写USB摄像头驱动之实现数据传输_调试 | |
第2课第8节_摄像头驱动_从零写USB摄像头驱动之设置属性 | |
第3课第1节_自制USB摄像头硬件的驱动编写_修改UVC | 我们开发了一款USB、CMOS接口二合一的摄像头, |
第3课第2节_自制USB摄像头硬件的驱动编写_修改MYUVC | |
第4课第1节_在LCD上显示摄像头图像_效果_框架_准备工作 | 衍生项目: |
第4课第2节_在LCD上显示摄像头图像_实现摄像头模块 | |
第4课第3节_在LCD上显示摄像头图像_实现转换模块 | |
第4课第4节_在LCD上显示摄像头图像_整合代码 | |
第4课第5节_在LCD上显示摄像头图像_调试测试 | |
第4课第6节_在LCD上显示摄像头图像_在PC上显示 | |
第5课第1节_CMOS摄像头之硬件原理 | 根据V4L2的规范,从零实现了CMOS摄像头驱动程序 |
第5课第2节_从零写CMOS摄像头驱动1_画框架 | |
第5课第3节_从零写CMOS摄像头驱动2_编写驱动程序框架 | |
第5课第4节_从零写CMOS摄像头驱动3_初始化摄像头模块 | |
第5课第5节_从零写CMOS摄像头驱动4.1_逐个讲解并设置摄像头控制器的寄存器 | |
第5课第6节_从零写CMOS摄像头驱动4.2_逐个讲解并设置摄像头控制器的寄存器 | |
第5课第7节_从零写CMOS摄像头驱动4.3_逐个讲解并设置摄像头控制器的寄存器 | |
第5课第8节_从零写CMOS摄像头驱动5_编译调试 | |
第6课第1节_额外项目2_便携式无线监控1_效果演示 | 衍生项目:把USB摄像头接到无线路由器上,使用手册连接无线路由器,在手机上观看摄像头图像 |
第6课第2节_额外项目2_便携式无线监控2_实现过程(上) | |
第6课第3节_额外项目2_便携式无线监控3_实现过程(下) | |
第7课第1节_使用WIFI网卡_准备工作及配置内核 | 介绍使用WIFI时的若干概念, |
第7课第2节_使用WIFI网卡_概念及工具iw(STA模式) | |
第7课第3节_使用WIFI网卡_工具wpa_supplicant(STA模式) | |
第7课第4节_使用WIFI网卡_工具dhcp及全自动使用wifi | |
第7课第5节_使用WIFI网卡_AP模式 | |
第7课第6节_使用WIFI网卡_仿手机写wifi操作程序 | |
第8课第1节_3G上网卡_工具及使用 | 使用开源工具使用3G上网卡,并仿照开源工具编程使用它 |
第8课第2节_3G上网卡_编程自动切换模式 | |
第8课第3节_3G上网卡_编程自动确认拨号端口 | |
第9课第02节_ALSA声卡_裸板之编写程序_P | 先写出声卡的裸板程序,这使得我们可以掌握声卡的硬件操作过程; 再分析ALSA驱动程序的框架及调用过程, 然后从零写出一个ALSA声卡驱动,这使得我们可以彻底掌握ALSA驱动。 虽然工作中我们很可能只是移植厂家提供的驱动,但是前提是我们要对驱动框架有深入的理解,而最好的学习方法就是从零写出来。 作为移植的示例,我们还移植了WM8976的声卡驱动。 最后,简单地写了一个ALSA应用程序。 |
第9课第03节_ALSA声卡_裸板之编译和测试1 | |
第9课第04节_ALSA声卡_ALSA驱动框架 | |
第9课第05节_ALSA声卡_ASoC驱动框架 | |
第9课第06节_ALSA声卡_体验声卡 | |
第9课第07节_ALSA声卡_分析调用过程 | |
第9课第08节_ALSA声卡_从零编写之框架 | |
第9课第09节_ALSA声卡_从零编写之参数设置 | |
第9课第10节_ALSA声卡_从零编写之数据传输 | |
第9课第11节_ALSA声卡_从零编写之调试 | |
第9课第12节_ALSA声卡_从零编写之添加音量控制 | |
第9课第13节_ALSA声卡_从零编写之WM8976 | |
第9课第14节_ALSA声卡_移植原厂WM8976驱动 | |
第9课第15节_ALSA声卡_修改内核声卡BUG | |
第9课第16节_ALSA声卡_编写ALSA声卡应用程序 | |
第10课第1节_讲解mjpg-streamer_移植_效果演示 | 我们使用开源工具mjpg-streamer来作为服务器端以传输视频,这本课程里,先分析它的源码;然后写一个PC客户端程序以接收视频并显示出来。 |
第10课第2节_讲解mjpg-streamer_框架 | |
第10课第3节_讲解mjpg-streamer_源码分析(上)_主进程 | |
第10课第4节_讲解mjpg-streamer_源码分析(中)_输入通道_视频采集过程 | |
第10课第5节_讲解mjpg-streamer_源码分析(下)_输出通道_视频传输过程 | |
第10课第6节_讲解mjpg-streamer_自己写客服端(上) | |
第10课第7节_讲解mjpg-streamer_自己写客服端(下) | |
第10课第8节_讲解mjpg-streamer_自己写客服端_编译调试 | |
第1课第1节_电源管理概述 | |
第2课第1节_在uboot实现电源管理_编写休眠功能 | |
第2课第2节_在uboot实现电源管理_编写唤醒功能 | |
第2课第3节_在uboot实现电源管理_调试 | |
第3课第1节_系统睡眠模型_Linux的suspend流程 | |
第3课第2节_系统睡眠模型_修改内核或驱动以使用suspend功能 | |
第3课第3节_系统睡眠模型_给驱动程序添加电源管理功能 | |
第4课第1节_runtime_PM框架第3课第3节_系统睡眠模型_给驱动程序添加电源管理功能 | |
第4课第2节_runtime_PM修改驱动程序和使用 | |
第5课第1节_regulator系统的概念并编写代码 | |
第5课第2节_regulator系统之编译测试 | |
第6课第1节_APP_修改数码相框以支持自动关闭LCD | |
第6课第2节_APP_编写支持开关机(suspend)的应用程序 | |
第7课_从系统角度考虑电源管理,我们要学习更多 |