韦东山Linux视频课程介绍_可达目标_课程表

韦东山Linux视频课程介绍_可达目标_课程表
韦东山Linux视频课程介绍_可达目标_课程表

类别描述

A 想深入了解嵌入式开发或是觉得学校课程讲得不深入、不贴近实际的专科、本科、研究生

B 想从单片机开发转入嵌入式开发的工程师

C 不希望局限在上层,想深入了解整个系统的工程师

D 想成为系统工程师、软件框架设计师的程序员E

想从硬件开发转为软件开发的工程师

操作系统Linux基本操作-会使用若干条基本命令即可

开发语言基本的C语言知识,汇编不要求(视频里有介绍汇编,就几条而已)

硬件知识

能看得懂原理图最好,不会也没关系(视频里有专门一课)课程名称:韦东山Linux视频第1期、第2期课程针对人群学习课程的能力要求课程掌握后的能力值概述(技能目标)

裸板操作及bootloader

深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序

掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;可以写出这些硬件部件的裸板程序

掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码

能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动掌握系统级别的应用调试方法:使用工具,修改内核自制工作

掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内核,自制调试工具

掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下半部等学习Linux驱动的套路:分配-设置-注册,掌握驱动的分析方法

调试手段

掌握裸板调试方法:点灯、打印、用JTAG工具进行源码级别的调试,查看反汇编熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等

掌握bootloader启动内核的原理,能完全自己写出一个bootloader

内核移植及启动过程

可以配置、移植一个全新的内核

了解内核的启动过程,解决启动中碰到的问题

了解内核的基本原理:进程调度、系统调用的过程、内存管理等与程序开发密切相关的知识驱动程序开发

掌握三大类驱动程序的框架:字符设备驱动、块设备驱动、网卡驱动

分析内核启动的第1个进程的运行过程,进而构造根文件系统

课程创新价值

讲师及简介授课形式及服务配套

更新频率

项目三:电源管理

后续课程:第3期项目开发实战(跟第2期是分开销售的)Linux系统工程师:再加上些应用开发的经验,很容易成为系统架构师<嵌入式Linux应用开发完全手册>可以说是最好的嵌入式Linux入门书将在6月1号发布,录完1节发布1节;未录制完提前购买价格180元;录制完后购买价格280

已经有4个超级QQ群:173968594,49256475,177535949,176512363学完后具备相当于1-2年Linux底层开发的实际工作经验

主讲:韦东山

2003年毕业于中国科学技术大学,电子专业、软件专业双学位。近10年嵌入式开发经验,

曾在小公司领导团队全程开发车载手机,

在中兴通信负责网络电视、机顶盒、IPCamera多个项目的Linux底层系统开发。

近年来一直从事产品定制服务:根据客户需求进行全套产品设计(硬件、底层软件);帮各公司解决Linux方面的技术难题。

近2年作为特聘讲师在若干个有名的培训机构讲课。擅长ARM9、ARM11方面的硬件原理图设计,

精通ARM、MIPS、Blackfin等架构处理器的Linux底层系统开发。

著有《嵌入式LINUX应用开发完全手册》一书,自2008年来一直是Linux系统类畅销书。每天在https://www.360docs.net/doc/471912801.html,进行技术答疑,

每天在QQ群(173968594,49256475,177535949,176512363)进行技术答疑,4年来一直如此。

每1、2天更新一节,1、2小时左右,一个课题

项目二:关于3G上网卡、WIFI、USB/CMOS摄像头、webserver的真实项目授课及服务:视频+QQ群答疑+https://www.360docs.net/doc/471912801.html,论坛答疑

项目一:数码相框,涉及LCD、触摸屏、进程间通信

购买地址:https://www.360docs.net/doc/471912801.html, 开发过种中碰到问题当场演示解决方法,调试方法在实际工作中更重要课程掌握后的职业定位(职业目标)

每个程序都是讲框架/硬件原理, 代码当场从第1行开始写,现场调试首创使用绘图板边讲边画边写代码,效果远超PPT,等同于与老师面对面第2期视频是基础此书在驱动方面的深入扩展

学完后具备相当于1-2年Linux底层开发的经验,学习内核的程序编写技巧

Linux及Android驱动开发工程师(Android驱动只是在Linux基础上写个封装库)

韦东山Linux视频含有1、2、3共三期,本课表里2、3 、4、5四部分都有。

在学习之前,你应该自行掌握第1、2部分的知识:LINUX基本操作、C基础。

更详细的内容请访问:https://www.360docs.net/doc/471912801.html,或https://www.360docs.net/doc/471912801.html,

课程章节及要点

第一部分 基础知识之Linux基本操作备注

1. 在虚拟机上安装一个ubuntu

2. 熟悉各种操作命令:ls,cd,pwd,ifconfig,tar,…命令很简单,刚接触不熟练就记到本子上,用到时查看

3. 了解Linux下文件的属性,掌握chown、chmod命令往后的学习中经常碰到权限问题

4. 掌握文件编辑命令:vi简单使用就可以了,vi太强大,你只需要掌握简单用法

4. 掌握文件查找命令:find, grep Linux下这2个命令功能强大,远超windows下的查找功能

5. 掌握在Linux下安装交叉编译工具链的方法,设置PATH环境变量你们经常碰到command not found

6. 掌握在Linux上安装、启动这些服务:NFS,FTP,SSH必备,能装能用就行

7. 会写简单的shell脚本知道所谓脚本就是把命令写在一个文件里,就暂时够了

建议:随便找一本Linux的操作书来看就可以,来来去去就那些命令,重新回到DOS时代吧,就是命令行,别指望像windows那样方便

第二部分 基础知识之C语言基础C语言能力越强,对后面的学习越有利,这里列出基本要求

1. 指针是C语言的精华练习:指针、指针的指针、指针数组、用指针来传参数

2. 结构体的定义、使用

3. 使用基本的open,read,write函数来操作文件

4. 头文件的使用,编译时怎么指定头文件的位置、怎么找到头文件

5. 链接程序时怎么指定库文件的位置,怎么引用库文件

6. 宏开关的使用

7. 使用gcc等命令行来编译程序,预编译、链接的概念

8. 编写简单的Makefile这是Linux下独有的了,能写一个简单的就行

建议:C语言的练习可以在VC下做,找一本好的C语言书。一定要写代码,别只是看,写写写写写写!!!!找一些题目来上机实验。

C语言的好书似乎出了不少,我很久没接触了,自己去找

第三部分 基础知识之看懂原理图一定要看英文版的数据手册,别指望找什么中文手册

目标:随便给你一个板子,能根据原理图、芯片手册就明白应该怎么去操作某个外设

1. GPIO类管脚的使用:配置为输出或输入,设置它的输出电平、读输入状态

2. 掌握几种协议类接口:I2C、UART、LCD等的信号原理、操作方式

3. 掌握内存类接口:怎么确定地址、怎么设置时序这要结合主芯片的手册和原理图来确定

建议:如果有单片机的基础、有电子专业的基础,这部分应该不成问题。如果没有,可以看看我录制的“学前班第1课:怎么看原理图”视频 我没有见过教人怎么看原理图的书,我个人只看过:微机原理、数字电路,然后就是做过电路设置的工作,从中煅炼出来的。

第四部分 ARM体系结构与裸机实验

这是“韦东山Linux视频第1期”的内容

目标2:

第01课 环境搭建及工具、概念介绍第1部分的细化,以后就在Linux上工作了,环境必须先建好写出第1个裸板程序,掌握几条汇编指令,汇编怎么调用C 知道怎么操作GPIO,了解2440的启动过程写出第1个Makefile,

掌握SDRAM的初始化方法

掌握位置无关指令,相对跳转、绝对跳转掌握代码重定位

大概了解ARM里虚拟地址、物理地址的概念了解内存映射的基理掌握链接脚本的写法感觉有难度的就跨过

掌握第1个协议类接口:NAND的操作原理掌握把NAND中的程序重定位的方法第06课 中断控制器

掌握ARM架构的中断处理过程

第07课 系统时钟和UART实验掌握提高系统时钟的方法,掌握串口的操作

掌握LCD的操作方法,掌握时序设置(建议同时看第2期LCD驱动)再次深入了解链接脚本,为何要清BSS段

结合<嵌入式Linux应用开发完全手册>了解u-boot的运行流程理解u-boot的“命令”实现方法,能自己添加一个命令了解u-boot怎么传参数给内核,怎样启动内核

掌握Linux内核的启动流程:u-boot传入的机器ID的处理u-boot传入的其他参数的处理内核怎么去启动第1个应用程序第1个进程的作用根文件系统的构成

制作文件系统映象文件、烧写

简单的字符设备驱动:框架、查询方式、中断方式、poll、异步通知、同步互斥等基本概念

了解内核的基本原理:进程调度、系统调用的过程、内存管理等与程序开发密切相关的知识分析内核启动的第1个进程的运行过程,进而构造根文件系统

第02课 GPIO实验

第03课 存储管理器实验

第04课 MMU实验

第05课 NAND FLASH控制器第08课 LCD实验

第09课 U-BOOT分析

能写出简单的字符设备驱动程序熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等掌握bootloader启动内核的原理,能完全自己写出一个bootloader 可以配置、移植一个全新的内核

了解内核的启动过程,解决启动中碰到的问题

目标1:

掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码

掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;可以写出这些硬件部件的裸板程序

深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序第10课 内核启动流程分析

第11课 构建根文件系统

第12课节 字符设备驱动程序

第五部分 高级驱动程序及调试

这是“韦东山Linux视频第2期”的内容

第12课里的驱动代码基本上都是自己写的,

第13课分析内核自带的驱动,理解后再添加自己的硬件支持输入子系统是很重要的,触摸屏、键盘、鼠标等都是这套框架第14课 驱动程序分层分离概念_总线驱动设备模型

内核里大量使用所谓的平台驱动、平台设备,这只是一个技巧掌握frame buffer这套自带驱动掌握LCD的操作原理、时序设置掌握编写硬件相关的LCD底层驱动

掌握电阻式触摸屏的操作原理

掌握输入子系统的第2个驱动(第1个驱动是第13课)

掌握USB驱动程序的框架:USB主机控制器驱动、USB设备驱动掌握USB设备驱动的编写方法掌握USB数据的读写方法

了解块设备驱动程序的框架,为何引入块设备驱动掌握第1个最简单的块设备驱动程序:用内存模拟硬盘MTD设备的分层

NAND FLASH的操作原理NAND FLASH的时序设置

NAND FALSH底层硬件驱动的设计划分分区

MTD设备的分层

NOR FLASH的操作原理NOR FLASH的时序设置

NOR FALSH底层硬件驱动的设计划分分区

了解第3类驱动:网卡驱动的框架编写一个虚拟网卡驱动来加深了解

内存类接口芯片的操作方法:确定基址、设置时序移植:编译、出错、解决错误、再编译第23课 I2C设备裸板程序掌握I2C协议,掌握在S3C2440上怎么操作I2C 第24课 I2C驱动程序

掌握I2C设备驱动程序的框架及编写方法新内核下的I2C驱动程序框架编写I2C设备驱动程序

不写驱动程序,从用户态直接访问编写I2C总线驱动程序

第25课 字符设备驱动程序概念纠正之另一种写法

register_chrdev之外的第2中写法:cdev

第26课 OSS模型声卡驱动的框架及UDA1341、WM9876驱动移植第27课 DMA

在内核下怎么使用DMA

掌握裸板调试方法:点灯、打印、用JTAG工具进行源码级别的调试,查看反汇编

掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内核,自制调试工具掌握系统级别的应用调试方法:使用工具,修改内核自制工具目标3:毕业班课程──它就是你们学完1、2期后能达到的目标

目标1:驱动程序开发

掌握三大类驱动程序的框架:字符设备驱动、块设备驱动、网卡驱动

第13课 输入子系统

掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下半部等能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动学习Linux驱动的套路:分配-设置-注册,掌握驱动的分析方法目标2:调试手段

能自己写出一个bootloader,能自己移植一个全新的u-boot,能自己移植一个全新的内核能把所有的驱动移植到新内核下

第15课 LCD驱动程序

第16课 触摸屏驱动程序

第17课 USB驱动程序

第18课 块设备驱动程序

第19课 NAND FLASH驱动程序

第20课 NOR FLASH驱动程序

第21课 网卡驱动程序

第22课 网卡驱动程序第32课 新内核下的I2C驱动程序

结合内核代码了解设备节点的自动创建及删除掌握mdev的使用方法

实现热拨插动作,比如让U盘自动挂载

点灯、打印、用JTAG工具进行源码级(gdb,eclipse)的调试进行源码级(gdb,eclipse)调试的前提条件

printk打印,借用proc文件系统、分析oops信息、栈信息回溯自制工具──寄存器编辑器用strace命令跟踪系统调用用gdb和gdbserver调试自制系统调用编写输入模拟器

这是第3部分裸板的集成:启动代码、重定位、NAND操作、传参数给内核、启动内核

从这个简单的程序,你可以理解u-boot的最重要功能毕业班第2课 移植最新u-boot

这也是第3部分裸板的实际应用

毕业班第3课 移植3.4.2内核,构造根文件系统有人说2.6.22.6内核太老了,你看了这一课就会发现:

使用老内核可以让你学到更多,并且把驱动移到新内核很简单

第六部分 实战项目

这是“韦东山Linux视频第3期”的内容

目标1:搭建一个好的应用程序框架,容量扩展、好裁剪、好移植目标2:活用各种资源、各种开源软件

目标3:把上下层的关系打通,站在整个系统的角度优化你的项目

连载中,详情请看:https://www.360docs.net/doc/471912801.html,/item.htm?id=182********

第31课 从系统的角度进行应用程序调试

毕业班第1课 自己写bootloader

毕业班第4课 移植驱动到3.4.2内核

第28课 热拨插机制(hotplug)和mdev的使用

第29课 裸板调试

第30课 驱动程序调试

相关主题
相关文档
最新文档