|
班级规模及环境--热线:4008699035 手机:15921673576( 微信同号) |
|
每期人数限3到5人。 |
|
上课时间和地点 |
|
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山学院/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
最近开课时间(周末班/连续班/晚班):2020年3月16日 |
|
实验设备 |
|
☆资深工程师授课
☆注重质量
☆边讲边练
☆合格学员免费推荐工作
★实验设备请点击这儿查看★ |
|
质量保障 |
|
1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
2、培训结束后,授课老师留给学员联系方式,保障培训效果,免费提供课后技术支持。
3、培训合格学员可享受免费推荐就业机会。 |
|
课程大纲 |
|
|
|
-
课程介绍:
Linux Drivers的开发重点在于架构设计而不是语法细节,如何使用Linux已有的API来设计和实现机制良好的Linux Drivers是其重点所在。
对Linux Driver Developer而言,要做的工作主要分为2个层面:
1,Virtual Device Driver: 往上层支持 Linux kernel 所提供的 Virtual File System 层,并实作 system calls。使用者可透過 system call interface 与 device driver 沟通;
2,Physical Device Driver: 往下层使用 Linux kernel 所提供的 device interface 操作硬件。 Virtual device driver 的主题的重要性大于 physical device driver,如何善用 Linux 所提供的介面 (interface) 來设计Drivers,并配合 user application 来设计应用程序是重点;
与 user application 如何互动動,是编写Driver非常重要的一个环节,正确理解和处理user-space 与 kernel-space 的关系,尤其的对当今最为火爆的智能平台Android而言,这一点尤为重要。
课程目标:
本课程旨在协助工程师在掌握驱动程序设计和编写最佳实践的前提下,完整的编写出【好】的驱动程序,并以Android最核心的驱动Binder驱动为案例,让学习者一方面彻底掌握嵌入式Linux一个商业级别驱动的完整实现,另一方面也为掌握Android框架打下最坚实的基础;
课程对象:能看懂C语言代码;最好是对Linux内核有所了解;
-
课程大纲:
1:搭建嵌入式Linux Driver开发环境
1,1 虚拟机和Linux
1,2 source insight
2:第一个嵌入式Linux Driver程序开发实战
2,1 Helloworld驱动程序;
2.2 模块参数和模块之间的通信;
2.3 将模块加入到内核;
3:Linux驱动架构和设计流程
3.1 通过案例反思linux驱动的架构;
3.2 Linux驱动程序的最佳设计流程;
4:I/O
4.1 I/O端口的访问与读写函数;
4.2 I/O内存读写;
5:read/write与wait queue
5.1 read/write;
5.2 wait queue;
6: Kernel Timer、Task Queue 與 Work Queue
6.1 Kernel Timer;
6.2 Task Queue;
6.3 Work Queue
7:中断处理(Interrupt handling) 與 Bottom Half
7.1 Interrupt handling;
7.2 Bottom Half;
8:Memory Mapped I/O 與 User-space driver
8.1 Memory Mapped I/O;
8.2 User-space driver;
9: Virtual File System
9.1 Subsystem (分层架构) 架构解析;
9.2 Sysfs架构与实战;
9.3 Sysfs Class Driver;
10:Android & Linux Device Driver
10.1 Android 与Linux 整合: HAL 架构 ;
10.2 Kernel Space与User space;
11:次主题的内容是以Android最核心的驱动Binder驱动为案例,让学习者一方面彻底掌握嵌入式Linux一个商业级别驱动的完整实现,另一方面也为掌握Android框架打下最坚实的基础,具体内容如下:
1. Service Manager是如何成为一个守护进程的?即Service Manager是如何告知Binder驱动程序它是Binder机制的上下文管理者。
2. Server和Client是如何获得Service Manager接口的?即defaultServiceManager接口是如何实现的。
3. Server是如何把自己的服务启动起来的?Service Manager在Server启动的过程中是如何为Server提供服务的?即IServiceManager::addService接口是如何实现的。
4. Service Manager是如何为Client提供服务的?即IServiceManager::getService接口是如何实现的。
5. Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析。
|
|