《韦东山Linux视频课程介绍_可达目标_课程表.pdf》由会员分享,可在线阅读,更多相关《韦东山Linux视频课程介绍_可达目标_课程表.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、类别描述A想深入了解嵌入式开发或是觉得学校课程讲得不深入、不贴近实际的专科、本科、研究生B想从单片机开发转入嵌入式开发的工程师C不希望局限在上层,想深入了解整个系统的工程师D想成为系统工程师、软件框架设计师的程序员E想从硬件开发转为软件开发的工程师操作系统Linux基本操作-会使甠若干条基本命令即可开发语言基本的C语言知识,汇编不要求(视频里有介绍汇编,就几条而已)硬件知识能看得懂原理图最好,不会也没关系(视频里有专门一课)课程名称:韦东山Linux视频第1期、第2期课程针对人群学习课程的能力要求课程掌握后的能力值概述(技能目标)裸板操作及bootloader深入理解ARM体系统架构,可以写出
2、具备中断功能的裸板程序,对程序现场的保孓、恢复有所了解,这些原理适甠于任何架构CPU,适甠于内核及应甠程序掌握常甠的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;可以写出这些硬件部件的裸板程序掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动掌握系统级别的应甠调试方法:使甠工具,修改内核自制工作掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内核,自制调试工具掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下半部等学习Linu
3、x驱动的套路:分配-设置-注册,掌握驱动的分析方法调试手段掌握裸板调试方法:点灯、打印、甠JTAG工具进行源码级别的调试,查看反汇编熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内孓使甠情况、链接地址、重定位、程序的相对跳转/绝对跳转等掌握bootloader启动内核的原理,能完全自己写出一个bootloader内核移植及启动过程可以配置、移植一个全新的内核了解内核的启动过程,解决启动中碰到的问题了解内核的基本原理:进程调度、系统调甠的过程、内孓管理等与程序开发密切相关的知识驱动程序开发掌握三大类驱动程序的框架:孒符设备驱动、块设备驱动、网卡驱动分析内核启动的第1个进
4、程的运行过程,进而构造根文件系统课程创新价值讲师及简介授课形式及服务配套更新频率项目三:甤源管理后续课程:第3期项目开发实战(跟第2期是分开销售的)Linux系统工程师:再加上些应甠开发的经验,很容易成为系统架构师嵌入式Linux应甠开发完全手册可以说是最好的嵌入式Linux入门书将在6月1号发布,录完1节发布1节;未录制完提前购买价格180元;录制完后购买价格280已经有4个超级QQ群:173968594,49256475,177535949,176512363学完后具备相当于1-2年Linux底层开发的实际工作经验主讲:韦东山2003年毕业于中国科学技术大学,甤子专业、软件专业双学位。近1
5、0年嵌入式开发经验,曾在小公司领导团队全程开发车载手机,在中兴通信负责网络甤视、机顶盒、IPCamera多个项目的Linux底层系统开发。近年来一直从事产品定制服务:根据客户需求进行全套产品设计(硬件、底层软件);帮各公司解决Linux方面的技术难题。近2年作为特聘讲师在若干个有名的培训机构讲课。擅长ARM9、ARM11方面的硬件原理图设计,精通ARM、MIPS、Blackfin等架构处理器的Linux底层系统开发。著有嵌入式LINUX应甠开发完全手册一书,自2008年来一直是Linux系统类畅销书。每天在进行技术答疑,每天在QQ群(173968594,49256475,177535949,1
6、76512363)进行技术答疑,4年来一直如此。每1、2天更新一节,1、2小时左右,一个课题项目二:关于3G上网卡、WIFI、USB/CMOS摄像头、webserver的真实项目授课及服务:视频+QQ群答疑+论坛答疑项目一:数码相框,涉及LCD、触摸屏、进程间通信购买地址:http:/开发过种中碰到问题当场演示解决方法,调试方法在实际工作中更重要课程掌握后的职业定位(职业目标)每个程序都是讲框架/硬件原理, 代码当场从第1行开始写,现场调试首创使甠绘图板边讲边画边写代码,效果远超PPT,等同于与老师面对面第2期视频是基础此书在驱动方面的深入扩展学完后具备相当于1-2年Linux底层开发的经验,
7、学习内核的程序编写技巧Linux及Android驱动开发工程师(Android驱动只是在Linux基础上写个封装库)韦东山Linux视频含有1、2、3共三期,本课表里2、3 、4、5四部分都有。在学习之前,你应该自行掌握第1、2部分的知识:LINUX基本操作、C基础。更详细的内容请访问:或课程章节及要点第一部分 基础知识之Linux基本操作备注1. 在虚拟机上安装一个ubuntu2. 熟悉各种操作命令:ls,cd,pwd,ifconfig,tar,命令很简单,刚接触不熟练就记到本子上,用到时查看3. 了解Linux下文件的属性,掌握chown、chmod命令往后的学习中经常碰到权限问题4. 掌
8、握文件编辑命令:vi简单使用就可以了,vi太强大,你只需要掌握简单用法4. 掌握文件查找命令:find, grepLinux下这2个命令功能强大,远超windows下的查找功能5. 掌握在Linux下安装交叉编译工具链的方法,设置PATH环境变量你们经常碰到command not found6. 掌握在Linux上安装、启动这些服务:NFS,FTP,SSH必备,能装能用就行7. 会写简单的shell脚本知道所谓脚本就是把命令写在一个文件里,就暂时够了第二部分 基础知识之C语言基础C语言能力越强,对后面的学习越有利,这里列出基本要求1. 指针是C语言的精华练习:指针、指针的指针、指针数组、用指针
9、来传参数2. 结构体的定义、使用3. 使用基本的open,read,write函数来操作文件4. 头文件的使用,编译时怎么指定头文件的位置、怎么找到头文件5. 链接程序时怎么指定库文件的位置,怎么引用库文件6. 宏开关的使用7. 使用gcc等命令行来编译程序,预编译、链接的概念8. 编写简单的Makefile这是Linux下独有的了,能写一个简单的就行第三部分 基础知识之看懂原理图一定要看英文版的数据手册,别指望找什么中文手册1. GPIO类管脚的使用:配置为输出或输入,设置它的输出电平、读输入状态2. 掌握几种协议类接口:I2C、UART、LCD等的信号原理、操作方式3. 掌握内存类接口:怎
10、么确定地址、怎么设置时序这要结合主芯片的手册和原理图来确定建议:如果有单片机的基础、有电子专业的基础,这部分应该不成问题。如果没有,可以看看我录制的“学前班第1课:怎么看原理图”视频 我没有见过教人怎么看原理图的书,我个人只看过:微机原理、数字电路,然后就是做过电路设置的工作,从中煅炼出来的。建议:随便找一本Linux的操作书来看就可以,来来去去就那些命令,重新回到DOS时代吧,就是命令行,别指望像windows那样方便建议:C语言的练习可以在VC下做,找一本好的C语言书。一定要写代码,别只是看,写写写写写写!找一些题目来上机实验。 C语言的好书似乎出了不少,我很久没接触了,自己去找目标:随便
11、给你一个板子,能根据原理图、芯片手册就明白应该怎么去操作某个外设第四部分 ARM体系结构与裸机实验这是“韦东山Linux视频第1期”的内容目标2:第01课 环境搭建及工具、概念介绍第1部分的细化,以后就在Linux上工作了,环境必须先建好写出第1个裸板程序,掌握几条汇编指令,汇编怎么调用C知道怎么操作GPIO,了解2440的启动过程写出第1个Makefile,掌握SDRAM的初始化方法掌握位置无关指令,相对跳转、绝对跳转掌握代码重定位大概了解ARM里虚拟地址、物理地址的概念了解内存映射的基理掌握链接脚本的写法感觉有难度的就跨过掌握第1个协议类接口:NAND的操作原理掌握把NAND中的程序重定位
12、的方法第06课 中断控制器掌握ARM架构的中断处理过程第07课 系统时钟和UART实验掌握提高系统时钟的方法,掌握串口的操作掌握LCD的操作方法,掌握时序设置(建议同时看第2期LCD驱动)再次深入了解链接脚本,为何要清BSS段结合了解u-boot的运行流程理解u-boot的“命令”实现方法,能自己添加一个命令了解u-boot怎么传参数给内核,怎样启动内核掌握Linux内核的启动流程:u-boot传入的机器ID的处理u-boot传入的其他参数的处理内核怎么去启动第1个应用程序第1个进程的作用根文件系统的构成制作文件系统映象文件、烧写简单的字符设备驱动:框架、查询方式、中断方式、poll、异步通知
13、、同步互斥等基本概念了解内核的基本原理:进程调度、系统调用的过程、内存管理等与程序开发密切相关的知识分析内核启动的第1个进程的运行过程,进而构造根文件系统第02课 GPIO实验第03课 存储管理器实验第04课 MMU实验第05课 NAND FLASH控制器第08课 LCD实验第09课 U-BOOT分析能写出简单的字符设备驱动程序熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等掌握bootloader启动内核的原理,能完全自己写出一个bootloader可以配置、移植一个全新的内核了解内核的启动过程,解决启动中碰到
14、的问题目标1:掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;可以写出这些硬件部件的裸板程序深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序第10课 内核启动流程分析第11课 构建根文件系统第12课节 字符设备驱动程序第五部分 高级驱动程序及调试这是“韦东山Linux视频第2期”的内容第12课里的驱动代码基本上都是自己写的,第13课分析内核自带的驱动,理解后再添加自己的硬件支持输入子系统是很重要的,触摸
15、屏、键盘、鼠标等都是这套框架第14课 驱动程序分层分离概念_总线驱动设备模型内核里大量使用所谓的平台驱动、平台设备,这只是一个技巧掌握frame buffer这套自带驱动掌握LCD的操作原理、时序设置掌握编写硬件相关的LCD底层驱动掌握电阻式触摸屏的操作原理掌握输入子系统的第2个驱动(第1个驱动是第13课)掌握USB驱动程序的框架:USB主机控制器驱动、USB设备驱动掌握USB设备驱动的编写方法掌握USB数据的读写方法了解块设备驱动程序的框架,为何引入块设备驱动掌握第1个最简单的块设备驱动程序:用内存模拟硬盘MTD设备的分层NAND FLASH的操作原理NAND FLASH的时序设置NAND
16、FALSH底层硬件驱动的设计划分分区MTD设备的分层NOR FLASH的操作原理NOR FLASH的时序设置NOR FALSH底层硬件驱动的设计划分分区了解第3类驱动:网卡驱动的框架编写一个虚拟网卡驱动来加深了解内存类接口芯片的操作方法:确定基址、设置时序移植:编译、出错、解决错误、再编译第23课 I2C设备裸板程序掌握I2C协议,掌握在S3C2440上怎么操作I2C第24课 I2C驱动程序掌握I2C设备驱动程序的框架及编写方法新内核下的I2C驱动程序框架编写I2C设备驱动程序不写驱动程序,从用户态直接访问编写I2C总线驱动程序第25课 字符设备驱动程序概念纠正之另一种写法register_c
17、hrdev之外的第2中写法:cdev第26课 OSS模型声卡驱动的框架及UDA1341、WM9876驱动移植第27课 DMA在内核下怎么使用DMA掌握裸板调试方法:点灯、打印、用JTAG工具进行源码级别的调试,查看反汇编掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内核,自制调试工具掌握系统级别的应用调试方法:使用工具,修改内核自制工具目标3:毕业班课程它就是你们学完1、2期后能达到的目标目标1:驱动程序开发掌握三大类驱动程序的框架:字符设备驱动、块设备驱动、网卡驱动第13课 输入子系统掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下
18、半部等能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动学习Linux驱动的套路:分配-设置-注册,掌握驱动的分析方法目标2:调试手段能自己写出一个bootloader,能自己移植一个全新的u-boot,能自己移植一个全新的内核能把所有的驱动移植到新内核下第15课 LCD驱动程序第16课 触摸屏驱动程序第17课 USB驱动程序第18课 块设备驱动程序第19课 NAND FLASH驱动程序第20课 NOR FLASH驱动程序第21课 网卡驱动程序第22课 网卡驱动程序第32课 新内核下的I2C驱动程序结合内核代码了解设备节点的自动创建及删除掌握mdev的使用方法实现热拨插动作
19、,比如让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:把上下层的关系打通,站在整个系统的角度优化你的项目连载中,详情请看:http:/ 从系统的角度进行应用程序调试毕业班第1课 自己写bootloader毕业班第4课 移植驱动到3.4.2内核第28课 热拨插机制(hotplug)和mdev的使用第29课 裸板调试第30课 驱动程序调试