|
◆課程簡介: Q4 t( E( R! ^2 q3 c2 |
本課程為Android系統整合的兩門核心課程中的第一門,旨在探討Linux核心驅動程式的設計方式,課程目標在於協助學員熟悉Linux核心驅動程式開發原理與實作方法,能對Android/Linux底層技術快速且完整地瞭解,為Android系統產品開發打下堅實基礎。
& Q/ ~9 D( E- M' @& ^: q% O( Y 課程將從驅動程式概念與Android/Linux整體驅動程式架構開始介紹,說明Linux核心驅動程式於其中所扮演的角色;接著說明Linux驅動程式中的各個重要元素,包括:裝置檔案與相關系統呼叫、動態載入核心模組、基本驅動程式介面、檔案操作方法及其執行流程;其後將深入探討作業系統核心與驅動程式設計的重要議題,包括: 記憶體管理、共時執行、同步機制、中斷處理、行程控制、等待佇列、阻塞式存取、後半常式與連動本文等等,之後也將介紹Linux驅動模型與sysfs,以及其他類別之驅動程式。
. P2 v; Q$ F& r) B4 S 課程中將使用最接近實際ARM處理器平台的Android模擬器進行各主題的實作,讓學習者可隨時隨地只需使用個人電腦即可進行實務演練,以達到最佳的學習效果。學員可自備筆記型電腦(建議雙核心以上機種,配備2GB以上記憶體),方便保留並攜回所建置的環境與實作成果,作業系統與軟體需求部分,建議以Ubuntu為主,請先安裝sun-java6-jdk。若使用其他作業系統,請安裝 VirtualBox虛擬機環境。我們將提供已安裝開發環境的Ubuntu映像檔。預計招生20人,最低開課人數:15人。 L& b g' {+ [) _
4 X4 l2 W- O+ _2 i; x! y4 s8 r◆修課條件:具備C語言程式設計基礎;若具備作業系統概念者更佳。
0 n ]# d: u1 x& Y1 |7 ~+ |) r1 h! A# L$ t% ^! l8 L. H8 F
◆日期:101年7月9-10日(一-二)09:30-17:30(每天7小時,計2天14小時): r( ^! q( b& [1 x( x& r" N/ n
7 e9 X, }) f7 [4 d0 a4 K◆地點:新竹市光復路二段295號3樓恆逸資訊電腦教室(位於工研院光復院區旁之帝國經貿大樓上)
$ _+ ?3 L F5 m% x& v
2 G/ P2 F ]: `( y◆講師:
- q- F4 y; `3 w! z‧國立台北科技大學資工系專任助理教授 梁文耀博士+ k4 b z5 S; n
學/經歷:國立台灣大學資訊工程系博士。曾任美商Avant!公司(股)軟體工程師、晶慧資訊(股)研發副總經理、聚興科技(股)公司研發處協理。擁有近20年Linux系統軟體開發經驗,以及逾10年Embedded Linux系統核心與應用開發經驗。自2007以來即投入Android系統的研發工作。研究專長包括Android/Linux、嵌入式系統、低功耗軟體設計以及平行與分散式系統。自2012年八月起,將專職擔任Android/Linux與嵌入式系統獨立技術顧問, 提供產品開發商技術諮詢服務與專業培訓工作。
( t9 Y7 J$ P$ ]+ D8 Y1 ^( f- M) h% h/ M
◆課程內容
- A% j2 t( l. U4 ](1)Android 驅動程式架構導論1
8 N* K+ g; {! C3 @/ r+ ?- Android/Linux 系統整合簡介; f1 |, ~, B C/ ^( P6 h) g
- Android/Linux 驅動程式概論
+ B* I' }6 Z$ e2 p: |( v- Android/Linux 核心驅動程式的定位與架構
6 i1 n- A2 s7 {+ X$ D- 開發環境建置
- Z8 \% {' ?; K9 S( w- Linux Kernel源碼與組態設定
) \; q& |$ L9 U/ c7 }$ o/ v- Linux Kernel編譯與執行; d- ~0 m! C" K! L+ H+ r
- 以Android 模擬器執行Linux Kernel
. A/ n7 r9 Z, @$ k% h* s(2)Linux 核心驅動程式基礎% F9 @$ f. }, c+ j7 N2 _0 I
- Linux 驅動程式概論
6 G& {0 \2 ^% {( [; m2 M5 K- 裝置檔案與檔案操作系統呼叫
0 F+ t" p' M3 E$ J5 ^0 g8 S- 動態載入核心模組
( H O5 k0 t& P) b- 動態核心模組範例編譯與載入7 h5 K3 N8 O8 x* J0 y" M. W
- 字元型驅動程式與檔案操作方法
' Y' C2 f2 o% a- 字元型驅動程式範例編譯與載入+ q& h3 g+ t( Q$ ]' A+ z8 `9 [
- 驅動測試程式編譯與執行! D# o+ C5 A" M$ c
- Q&A
/ G8 X. H8 D m+ J, H( C/ k( z(3)Linux 核心驅動程式開發進階
, u# C7 j7 r" j6 X; q4 ]5 w! G- 記憶體管理
* d5 D( a5 q1 |% }+ R4 g. w' L# {- 共時執行、同步機制與效能考量
V6 Q2 w7 h; l- 納入同步機制之驅動程式實作
, d! ~3 l2 t3 H5 N8 x( b1 a9 Z+ N) [- 虛擬數值運算處理單元硬體
9 H1 _; C6 m& t c- 以核心模組實現虛擬數值運算器及其驅動程式
7 q3 `5 k4 t! _( W: z6 s9 x- 中斷處理與中斷處理常式
; z. P7 I q& [$ _$ x# \7 ~6 R( L% o- 加入中斷模擬之虛擬數值運算器及驅動程式
5 y" |* w2 Z5 j) o1 F0 Z2 [/ w. U- 行程控制、等待佇列與阻塞式存取
6 F- j6 r2 R7 b# d2 d- 使用阻塞式存取之驅動程式實作" W& K% g9 \$ P. a* ?: U
- 後半常式, `: z1 o& q* P( X, ]5 Z
- 使用 Tasklet 實現虛擬數值運算器6 p! D' x: F6 r9 }$ ]8 d
- 連動本文與進階同步議題
& S, t5 c/ i( I5 P. Y& Z7 O- Linux驅動模型與sysfs
! x6 k m1 Q& ]: q- 以sysfs 實現虛擬數值運算器驅動程式' J* j3 o6 p, N- m( D5 p
- 其他類別裝置驅動程式簡介2 H* q9 n: A9 _3 v" ~/ ~
- Q&A
! U3 Y) Q! y% R* X, O0 Q
: g" \# G* ~1 a5 U4 I! l; v6 {◆報名方式
. A- X4 Q7 [6 J: t5 J1.傳真報名:請註明「課程名稱/公司名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳真至03-5743838,聯絡人:陳小姐03-574 3706、羅小姐 03-574 3703。額滿截止。- ]6 o& I7 s3 T+ i2 `0 \3 D g
2.網路報名網址http://www.nml.org.tw/training.orig/course/course_details.php?id=011244 t8 f& r" b* Z( f, @" r: J7 z* R. Y
3.E-mail報名或索取簡章信箱:請註明「課程名稱/機構名稱∕統一編號∕聯絡地址∕參加者姓名∕部門∕電話∕傳真號碼」等資料後,傳送至:chenhsiouyun@itri.org.tw# k$ H, M; u& v
4.課前一週以E-mail與傳真方式傳送上課通知單。 1 v! ~8 L: J' v" b, w
" Q+ F4 w4 d! m1 {; ]# E8 f
《工業局通訊專業技術人才發展分項計畫》" X o0 K2 y; ~ A! W& h3 r
主辦單位:經濟部工業局
% J7 B- R% q4 [& b 執行單位:工業技術研究院量測中心 |
|