|
班级规模及环境--热线:4008699035 手机:15921673576/13918613812( 微信同号) |
|
坚持小班授课,为保证培训效果,增加互动环节,每期人数限3到5人。 |
|
上课时间和地点 |
|
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
近开课时间(周末班/连续班/晚班):即将开课,详情请咨询客服。(欢迎您垂询,视教育质量为生命!) |
|
实验设备 |
|
☆资深工程师授课
☆注重质量
☆边讲边练
☆合格学员免费推荐工作
★实验设备请点击这儿查看★ |
|
质量保障 |
|
1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
2、课程完成后,授课老师留给学员手机和Email,保障培训效果,免费提供半年的技术支持。
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接口源代码分析。
|
|