第一期&第二期:
一期(免费): 54节视频 共16.93G
二期√ :73节视频,每节50分钟总时长3650分钟,共29.6G
![](https://img.alicdn.com/imgextra/i2/41044833/T2FL4KXvxXXXXXXXXX_!!41044833.jpg)
◆掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码;
◆掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏;
◆可以写出这些硬件部件的裸板程序;深入理解
ARM体系统架构,可以写出具备中断功能的裸板程序。
对程序现场的保存、恢复有所了解,这些原理适用于任何架CPU适用于内核及应用程序。
◆熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;
◆掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。
![](https://img.alicdn.com/imgextra/i3/41044833/T2R8NNXvtXXXXXXXXX_!!41044833.jpg)
◆掌握三大类驱动程序的框架:①字符设备驱动②块设备驱动③网卡驱动
◆掌握驱动程序中各种操作:休眠-唤醒、 同步互斥和异步通知,定时器,
上下半部等能自己写出2期视频讲的各种驱动,它们已经涉及工作中的绝大部分驱动
◆学习驱动的套路:分配-设置-注册,掌握驱动的分析方法
![](https://img.alicdn.com/imgextra/i4/41044833/T2iqdHXvxXXXXXXXXX_!!41044833.jpg)
◆掌握裸板调试方法:点灯、打印、JTAG工具进行源码级别的调试;查看反汇编。
◆掌握驱动调试方法:打印,自制打印;分析oops信息,栈回溯,理解内核原理并修改内核;自制调试工具
◆掌握系统级别的应用调试方法:使用工具,修改内核自制工作。
![](https://img.alicdn.com/imgextra/i4/41044833/T25kVPXupXXXXXXXXX_!!41044833.jpg)
◆自己写一个bootloader, 它可以让你快速了解u-boot的核心功能。
◆移植一个全新的u-boot, linux。
◆编译busybox重新构造根文件系统。
◆移植2期驱动到3.4.2内核,你会在发现不同的内核下写驱动方法一样。
![](https://img.alicdn.com/imgextra/i1/41044833/T2SItKXutXXXXXXXXX_!!41044833.jpg)
下面的课表中的3、4、5属于第1期和第2期的内容。
学本课程前,应该自行掌握第一、二部分的知识:LINUX基本操作和C基础
第一部分 基础知识之Linux基本操作 |
备注 |
1. 在虚拟机上安装一个ubuntu |
也可直接用虚拟机打开光盘的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. 掌握内存类接口:怎么确定地址、怎么设置时序 |
需结合主芯片的手册和原理图确定 |
|