|
◆課程簡介6 f, L O9 Z) d5 N: x, }$ V
本課程為Android系統整合的兩門核心課程中的第一門,旨在探討Linux核心驅動程式的設計方式,課程目標在於協助學員熟悉Linux核心驅動程式開發原理與實作方法,能對Android/Linux底層技術快速且完整地瞭解,為Android系統產品開發打下堅實基礎。
) H9 q- \, S4 a9 P. P: u 課程將從驅動程式概念與Android/Linux整體驅動程式架構開始介紹,說明Linux核心驅動程式於其中所扮演的角色;接著說明Linux驅動程式中的各個重要元素,包括:裝置檔案與相關系統呼叫、動態載入核心模組、基本驅動程式介面、檔案操作方法及其執行流程;其後將深入探討作業系統核心與驅動程式設計的重要議題,包括: 記憶體管理、共時執行、同步機制、中斷處理、行程控制、等待佇列、阻塞式存取、後半常式與連動本文等等,之後也將介紹Linux驅動模型與sysfs,以及其他類別之驅動程式。
% T$ |: i- c# z 課程中將使用最接近實際ARM處理器平台的Android模擬器進行各主題的實作,讓學習者可隨時隨地只需使用個人電腦即可進行實務演練,以達到最佳的學習效果。學員可自備筆記型電腦(建議雙核心以上機種,配備2GB以上記憶體),方便保留並攜回所建置的環境與實作成果,作業系統與軟體需求部分,建議以Ubuntu為主,請先安裝sun-java6-jdk。若使用其他作業系統,請安裝 VirtualBox虛擬機環境。我們將提供已安裝開發環境的Ubuntu映像檔。預計招生20人,最低開課人數:15人。( v3 q; [+ I0 G* J7 v! B
6 g: `$ I% m- @
◆修課條件:具備C語言程式設計基礎;若具備作業系統概念者更佳。
/ [' {: S2 Y( U( a
% s) E" l6 `2 J! d, h4 U◆日期:101年7月9-10日(一-二)09:30-17:30(每天7小時,計2天14小時)
1 ?+ a. e7 ?) _( K: u' ?! [8 I
% ?) W/ M- n( n3 |' Q◆地點:新竹市光復路二段295號3樓恆逸資訊電腦教室(位於工研院光復院區旁之帝國經貿大樓上)
( m: r1 o: k% I+ S% t( |: I3 y3 j8 q( i; N5 `
◆講師:
7 y+ m% d+ C4 w2 w) j! k2 C- N, a' s‧國立台北科技大學資工系專任助理教授 梁文耀博士
( h6 J" m2 [+ l" {學/經歷:國立台灣大學資訊工程系博士。曾任美商Avant!公司(股)軟體工程師、晶慧資訊(股)研發副總經理、聚興科技(股)公司研發處協理。擁有近20年Linux系統軟體開發經驗,以及逾10年Embedded Linux系統核心與應用開發經驗。自2007以來即投入Android系統的研發工作。研究專長包括Android/Linux、嵌入式系統、低功耗軟體設計以及平行與分散式系統。自2012年八月起,將專職擔任Android/Linux與嵌入式系統獨立技術顧問, 提供產品開發商技術諮詢服務與專業培訓工作。
s) k, }9 _4 F
( o( y B+ D- S$ l) Y◆課程內容( K% r9 g. d7 T) d7 g- y8 `
(1)Android 驅動程式架構導論1: B$ C$ R9 ^8 r, v9 \
- Android/Linux 系統整合簡介
' j! l2 u+ g! l9 Y+ L: @- Android/Linux 驅動程式概論0 W* X3 N/ f# L0 _2 A; S
- Android/Linux 核心驅動程式的定位與架構: g* f+ e. ~' x& }1 r* G; K$ m- K
- 開發環境建置
! t) s5 ~' G2 i. ~8 J7 W0 x4 u- Linux Kernel源碼與組態設定5 ]1 C( O, T5 b6 l6 c
- Linux Kernel編譯與執行
) u* {. p9 B& g+ y- 以Android 模擬器執行Linux Kernel
4 _, e4 I- n4 o1 ]- ] @(2)Linux 核心驅動程式基礎
' Z! ^) g3 l4 t' |- Linux 驅動程式概論
' `& n# h% ^" i0 G. d k( X F" Y' ^- 裝置檔案與檔案操作系統呼叫, D0 z; ]8 N A2 i6 [: H
- 動態載入核心模組
$ I$ W4 P) ?+ f G- 動態核心模組範例編譯與載入7 ?; E) {$ x* ]$ L( B5 N
- 字元型驅動程式與檔案操作方法5 @% V9 r% \7 o
- 字元型驅動程式範例編譯與載入
2 X6 g( O1 q: {" z: }( a- 驅動測試程式編譯與執行
" w; {' @* Y+ M- Q&A! `& [( U7 Q5 m. ?. L, F2 f
(3)Linux 核心驅動程式開發進階
' G/ C3 Q" }& B8 I) g& F- 記憶體管理% s( S- b& r: f$ P- v$ r& t
- 共時執行、同步機制與效能考量
! U7 N8 g( w& T( F2 T, m- 納入同步機制之驅動程式實作
; K' h" I' ~' L% d" x- 虛擬數值運算處理單元硬體2 P( |3 Q; m5 s* t8 z/ C+ t+ e
- 以核心模組實現虛擬數值運算器及其驅動程式
7 }- i( u+ w' _4 O( k( b- 中斷處理與中斷處理常式7 n* I N& T) @2 Y' s7 o$ Y- \$ }% ?
- 加入中斷模擬之虛擬數值運算器及驅動程式
: w7 k- r% U* H2 B- 行程控制、等待佇列與阻塞式存取" j: [* c& U5 y8 r1 B, r( d. s% E" C
- 使用阻塞式存取之驅動程式實作
: _/ Z! D$ B& N) I& M" W- 後半常式3 z- y) x' W/ x6 P1 N3 V) J% L
- 使用 Tasklet 實現虛擬數值運算器9 ]. i9 }2 l3 m$ w. A
- 連動本文與進階同步議題
/ m& M2 W. W- L+ Z- Linux驅動模型與sysfs% h8 h7 e" y' L( K5 h
- 以sysfs 實現虛擬數值運算器驅動程式
3 S# R9 {9 A$ e( T- 其他類別裝置驅動程式簡介3 k/ K. i$ Y" P {
- Q&A, c/ N e3 B7 w; T2 l: I
0 x9 f0 a5 ~. N8 K9 I◆報名方式
" Z' g+ P+ T2 k* i1.傳真報名:請註明「課程名稱/公司名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳真至03-5743838,聯絡人:陳小姐03-574 3706、羅小姐 03-574 3703。額滿截止。
+ z) Z# ^. v0 ~2.網路報名網址http://www.nml.org.tw/training.orig/course/course_details.php?id=01124( X2 p& O" _4 Z n* [1 E3 t# D8 J
3.E-mail報名或索取簡章信箱:請註明「課程名稱/機構名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳送至:chenhsiouyun@itri.org.tw9 g$ R4 o5 `* W$ k* Q
4.課前一週以E-mail與傳真方式傳送上課通知單。
+ c6 N/ Y' Y3 j" [" p
. K% z [5 K6 g4 j" H6 f6 T+ k《工業局通訊專業技術人才發展分項計畫》
$ N% q9 \' V* q. D. k 主辦單位:經濟部工業局
0 e; z- h! B0 Q+ M 執行單位:工業技術研究院量測中心 |
|