|
班級(jí)規(guī)模及環(huán)境--熱線:4008699035 手機(jī):15921673576( 微信同號(hào)) |
|
每期人數(shù)限3到5人。 |
|
上課時(shí)間和地點(diǎn) |
|
上課地點(diǎn):【上?!浚和瑵?jì)大學(xué)(滬西)/新城金郡商務(wù)樓(11號(hào)線白銀路站) 【深圳分部】:電影大廈(地鐵一號(hào)線大劇院站)/深圳大學(xué)成教院 【北京分部】:北京中山學(xué)院/福鑫大樓 【南京分部】:金港大廈(和燕路) 【武漢分部】:佳源大廈(高新二路) 【成都分部】:領(lǐng)館區(qū)1號(hào)(中和大道) 【沈陽分部】:沈陽理工大學(xué)/六宅臻品 【鄭州分部】:鄭州大學(xué)/錦華大廈 【石家莊分部】:河北科技大學(xué)/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協(xié)同大廈
最近開課時(shí)間(周末班/連續(xù)班/晚班):2020年3月16日 |
|
實(shí)驗(yàn)設(shè)備 |
|
☆資深工程師授課
☆注重質(zhì)量
☆邊講邊練
☆合格學(xué)員免費(fèi)推薦工作
★實(shí)驗(yàn)設(shè)備請(qǐng)點(diǎn)擊這兒查看★ |
|
質(zhì)量保障 |
|
1、培訓(xùn)過程中,如有部分內(nèi)容理解不透或消化不好,可免費(fèi)在以后培訓(xùn)班中重聽;
2、培訓(xùn)結(jié)束后,授課老師留給學(xué)員聯(lián)系方式,保障培訓(xùn)效果,免費(fèi)提供課后技術(shù)支持。
3、培訓(xùn)合格學(xué)員可享受免費(fèi)推薦就業(yè)機(jī)會(huì)。 |
|
課程大綱 |
|
|
|
-
課程介紹:
???
Linux Drivers的開發(fā)重點(diǎn)在于架構(gòu)設(shè)計(jì)而不是語法細(xì)節(jié),如何使用Linux已有的API來設(shè)計(jì)和實(shí)現(xiàn)機(jī)制良好的Linux Drivers是其重點(diǎn)所在。
? ?
對(duì)Linux Driver Developer而言,要做的工作主要分為2個(gè)層面:
????
1,Virtual Device Driver: 往上層支持 Linux kernel 所提供的 Virtual File System 層,并實(shí)作 system calls。使用者可透過 system call interface 與 device driver 溝通;
????
2,Physical Device Driver: 往下層使用 Linux kernel 所提供的 device interface 操作硬件。 Virtual device driver 的主題的重要性大于 physical device driver,如何善用 Linux 所提供的介面 (interface) 來設(shè)計(jì)Drivers,并配合 user application 來設(shè)計(jì)應(yīng)用程序是重點(diǎn);
???
與 user application 如何互動(dòng)動(dòng),是編寫Driver非常重要的一個(gè)環(huán)節(jié),正確理解和處理user-space 與 kernel-space 的關(guān)系,尤其的對(duì)當(dāng)今最為火爆的智能平臺(tái)Android而言,這一點(diǎn)尤為重要。
課程目標(biāo):
???
本課程旨在協(xié)助工程師在掌握驅(qū)動(dòng)程序設(shè)計(jì)和編寫最佳實(shí)踐的前提下,完整的編寫出【好】的驅(qū)動(dòng)程序,并以Android最核心的驅(qū)動(dòng)Binder驅(qū)動(dòng)為案例,讓學(xué)習(xí)者一方面徹底掌握嵌入式Linux一個(gè)商業(yè)級(jí)別驅(qū)動(dòng)的完整實(shí)現(xiàn),另一方面也為掌握Android框架打下最堅(jiān)實(shí)的基礎(chǔ);
課程對(duì)象:能看懂C語言代碼;最好是對(duì)Linux內(nèi)核有所了解;
-
課程大綱:
1:搭建嵌入式Linux Driver開發(fā)環(huán)境
?
1,1 虛擬機(jī)和Linux
?
1,2 source insight
2:第一個(gè)嵌入式Linux Driver程序開發(fā)實(shí)戰(zhàn)
?
2,1 Helloworld驅(qū)動(dòng)程序;
?
2.2 模塊參數(shù)和模塊之間的通信;
?
2.3 將模塊加入到內(nèi)核;
3:Linux驅(qū)動(dòng)架構(gòu)和設(shè)計(jì)流程
?
3.1 通過案例反思linux驅(qū)動(dòng)的架構(gòu);
?
3.2 Linux驅(qū)動(dòng)程序的最佳設(shè)計(jì)流程;
4:I/O
?
4.1 I/O端口的訪問與讀寫函數(shù);
?
4.2 I/O內(nèi)存讀寫;
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 (分層架構(gòu)) 架構(gòu)解析;
?
9.2 Sysfs架構(gòu)與實(shí)戰(zhàn);
?
9.3 Sysfs Class Driver;
10:Android & Linux Device Driver
?
10.1? Android 與Linux 整合: HAL 架構(gòu) ;
?
10.2? Kernel Space與User space;
11:次主題的內(nèi)容是以Android最核心的驅(qū)動(dòng)Binder驅(qū)動(dòng)為案例,讓學(xué)習(xí)者一方面徹底掌握嵌入式Linux一個(gè)商業(yè)級(jí)別驅(qū)動(dòng)的完整實(shí)現(xiàn),另一方面也為掌握Android框架打下最堅(jiān)實(shí)的基礎(chǔ),具體內(nèi)容如下:
?
1. Service Manager是如何成為一個(gè)守護(hù)進(jìn)程的?即Service Manager是如何告知Binder驅(qū)動(dòng)程序它是Binder機(jī)制的上下文管理者。
?
2. Server和Client是如何獲得Service Manager接口的?即defaultServiceManager接口是如何實(shí)現(xiàn)的。
?
3. Server是如何把自己的服務(wù)啟動(dòng)起來的?Service Manager在Server啟動(dòng)的過程中是如何為Server提供服務(wù)的?即IServiceManager::addService接口是如何實(shí)現(xiàn)的。
?
4. Service Manager是如何為Client提供服務(wù)的?即IServiceManager::getService接口是如何實(shí)現(xiàn)的。
?
5. Android系統(tǒng)進(jìn)程間通信Binder機(jī)制在應(yīng)用程序框架層的Java接口源代碼分析。
|
|