|
班級規模及環境--熱線: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接口源代碼分析。
|
|