韦东山视频教程视频的章节和要点

时间:2021-08-22 18:53:13

韦东山视频教程视频的章节和要点

第一部分 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上显示文字, 从最简单的点限显示讲起,
到复杂的矢量字体显示──这在实际应用中大量用到,
这一课对LCD的操作也更加深入

第2课第2节_字符的点阵显示

第2课第3.1节_freetype理论介绍

第2课第3.2节_在PC上测试freetype

第2课第3.3节_在LCD上显示一个矢量字体

第2课第3.4节_在LCD上显示多行文字

第3课第1节_额外项目_电子书之效果及框架

额外项目1,实现了在LCD上显示阅读文本
知识点:文件编码方式, UNICODE,
首次尝试以面向对像的方法编写应用程序

以面向对像的方法编写的程序很容易扩展, 这是一个示例

第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节_数码相框功能及程序框架

这一节实现了数码相框的架构设计,
以MainPage为例讲解了具体页面的程序设计,
把MainPage理解后, 其他页面的操作是相似的

串讲了其他页面的代码,
改进了其中一个页面, 它实际上就是一个文件浏览器

第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框架分析

虚拟驱动程序忽略了复杂的硬件操作,
通过它可以快速理解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上显示摄像头图像_效果_框架_准备工作

衍生项目:
加上保存图片功能的话, 这就是一个数码相机.
这个程序支持YUV,MJPEG,RGB格式的摄像头,
可以在LCD或PC上显示摄像头图像

第4课第2节_在LCD上显示摄像头图像_实现摄像头模块

第4课第3节_在LCD上显示摄像头图像_实现转换模块

第4课第4节_在LCD上显示摄像头图像_整合代码

第4课第5节_在LCD上显示摄像头图像_调试测试

第4课第6节_在LCD上显示摄像头图像_在PC上显示

第5课第1节_CMOS摄像头之硬件原理

根据V4L2的规范,从零实现了CMOS摄像头驱动程序
并写一个测试程序把图像在LCD上显示出来

第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时的若干概念,
移植WIFI驱动程序,
编译开源工具使用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节_电源管理概述

  
先介绍电源管理,再修改uboot支持电源管理命令,继而修改驱动添加电源管理,介绍runtime_PM框架,regulator,
最后编写支持开关机的应用程序

第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课_从系统角度考虑电源管理,我们要学习更多