适合人群:
熟练使用C语言并了解Linux/Unix系统编程者
你将会学到:
学习linux内核的组织结构,提供的编写驱动的机制,学习利用内核的子系统编写驱动的框架流程,并编写常见设备的驱动,比如:LCD、触摸屏、三轴加速传感器、键盘、灯、数据采集之模拟信号的抽样等。这里会通过实战方式,一边讲一边写代码的授课方式,一步步带你成为底层高级linux驱动工程师。
课程简介:
学习单元
1.基于移动终端的智能家居控制系统
2.基于移动终端的智能大棚控制系统
预期职位
高级linux驱动开发工程师(8K~30K/月)
开发平台
推荐ubuntu 17.04 (64位)
目标平台
基于Exynos4412的ARM开发板
板子型号友善之臂tiny4412,配置了1506核心板,1G运行内存,4G的EMMC800×480的LCD屏及5点触控触摸屏。
核心内容
1. 学习bootloader的命令、环境变量设置、内核的裁剪配置编译、文件系统的制作;
2. Bootloader、内核、文件系统的烧写;
3. linux内核的目录组织及功能、Makefile、Kconfig的作用及编写;
4. 内核源码的查看工具及方式、设备驱动的分类、字符设备驱动的编写;
5. 学习非阻塞型IO、阻塞型IO、异步IO、IO复用等驱动接口;
6. 学习内核的中断的机制、中断共享、中断的上下半部等;
7. 学习GPIO子系统、INPUT子系统的代码框架及编程接口,编写驱动流程;
8. 学习驱动模型、platform总线、spi总线、i2c总线的代码框架及驱动编写流程;
9. 学习内核延时、定时器、高精度定时器;设备树、同步机制、内核线程等技术;
10. 学习驱动程序的调试技术、proc文件的生成技术点、内核数据结构等;
11. 学习常见设备如网卡、USB、声卡等驱动的移植过程。
课程目录:
01.内核驱动开发概述.mp4
02.内核源码查看方法.mp4
03.内核和文件系统的烧写.mp4
04.根文件系统的制作.mp4
05.内核编译组织结构.mp4
06.Kconfig文件语法.mp4
07.Kconfig文件语法.mp4
08.Kconfig和Makefile之间的关系.mp4
09.系统调用函数实现的本质.mp4
10.内核中实现并添加亮灭led的系统调用函数.mp4
11.应用层测试内核中添加的系统调用函数实现led的亮灭.mp4
12.驱动模块的编写技术.mp4
13.驱动模块的编写技术.mp4
14.系统调用和驱动模块的串讲.mp4
15.内核双向循环链表的思想机制.mp4
16.内核操作双向循环链表的接口精讲及应用实例.mp4
17.内核中动态申请内存空间的接口.mp4
18.设备驱动的分类、设备文件和内核驱动之间的关联.mp4
19.古老的字符设备驱动注册接口及代码实例.mp4
20.系统调用和内核驱动之间的调用过程.mp4
21.LED字符设备驱动.mp4
22.LED之字符设备驱动的第二种注册方式及app编写.mp4
23.一套驱动支持多个设备的内核缓存设备驱动编写技术.mp4
24.内核缓存设备驱动的测试app编写.mp4
25.小节复习.mp4
26.内核缓存设备驱动之进程阻塞.mp4
27.内核缓存设备驱动之IO复用poll接口实现.mp4
28.poll驱动接口之应用层select测试.mp4
29.poll驱动接口之应用层poll测试.mp4
30.poll驱动接口之应用层epoll测试.mp4
31.混杂字符设备驱动注册方法之led驱动.mp4
32.高级字符设备驱动之ioctl接口实现led操作.mp4
33.利用gpio子系统操作led驱动.mp4
34.小节复习.mp4
35.内核中断请求接口.mp4
36.双边沿触发按键中断注册.mp4
37.中断共享.mp4
38.中断下半部之tasklet实现机制.mp4
39.中断下半部之workqueue实现机制.mp4
40.定制linux内核的启动logo.mp4
41.应用层互斥锁的使用.mp4
42.应用层自旋锁的使用.mp4
43.避免死锁.mp4
44.内核加锁机制之信号量.mp4
45.内核加锁机制之互斥锁和自旋锁.mp4
46.自旋锁解决进程和中断之间的竞争.mp4
47.自旋锁解决进程和中断下半部之间的竞争.mp4
48.原子操作.mp4
49.获取鼠标键盘触摸屏等输入设备数据app编写.mp4
50.利用input子系统编写功能键设备驱动.mp4
51.input子系统关于单点触控触摸屏数据的上报.mp4
52.input子系统关于多点触控触摸屏数据的上报.mp4
53.驱动模型思想机制及涉及接口.mp4
54.驱动模型之总线、设备、驱动思想.mp4
55.platform总线机制.mp4
56.小节复习.mp4
57.platform总线匹配规则实例.mp4
58.platform之资源获取实例.mp4
59.SOC各种控制器的设备对象和驱动对象之组织框架.mp4
60.pwm驱动蜂鸣器驱动.mp4
61.测试蜂鸣器驱动之app.mp4
62.小节复习.mp4
63.adc控制器的内核驱动框架结构.mp4
64.基于ADC的定位器电压值抽样驱动及app编写.mp4
65.I2C控制器的内核驱动框架分析.mp4
66.5点触控触摸屏驱动编写一.mp4
67.5点触控触摸屏驱动编写二.mp4
68.基于I2C控制器的从机驱动扩展.mp4
69.为5点触控触摸屏驱动编写Kconfig.mp4
70.操作LCD之frambuffer的APP程序一.mp4
71.操作LCD之frambuffer的APP程序二.mp4
72.内核获取bootloader的bootargs环境变量.mp4
73.LCD驱动框架分析一.mp4
74.LCD驱动框架分析二.mp4
75.proc文件创建之LED驱动.mp4
76.proc文件创建之内核缓存设备驱动.mp4
77.proc文件系统之可读写文件的创建.mp4
78.内核系统时间的获取.mp4
79.复习一.mp4
80.复习二.mp4