對思科實施嵌入式Linux培訓


2010年初對思科實施嵌入式Linux開發培訓,感謝思科員工的支持。
第一天
_________________________________________________________________
課程一: 動手構建一個嵌入式Linux系統
_________________________________________________________________

   1.
      進入嵌入式Linux的精彩世界

1.1 Linux的特點、版本演進與發展方向
1.2 嵌入式Linux系統組成
1.3 開發環境構建
1.3.1 安裝設置ARM工具鏈
1.3.2 安裝設置NFS文件系統
1.3.3 安裝設置SSH服務
1.3.3 安裝設置TFTP服務
1.4 GNU工具鏈和GDB調試
1.4.1 常用GNU工具的使用
1.4.2 使用gdb調試器

   2.
      構建Linux Bootloader

2.1 編譯和運行U-Boot
2.2 U-Boot移植

   3.
      內核編譯與配置

3.1 內核配置Kconfig和Makefile
3.2 內核編譯
3.2 在內核中新增和修改程序

   4.
      構建文件系統

4.1 文件系統組成
4.2 Busybox編譯與配置
4.3 加入C庫
4.4 加入應用程序
4.4.1 編寫一個應用程序
4.4.2 使用NFS服務
4.4.3 使用TFTP服務
第二天
第5章 讓系統映像更小
5.1 內核裁剪
5.2 文件系統裁剪
5.2.1 C庫裁剪
5.2.2 應用程序裁剪
_________________________________________________________________
課程二: Linux內核和內核開發技術(驅動開發必備的內核知識)
_________________________________________________________________
第6章 成爲一個Linux內核開發者
6.1 patch和郵件列表
6.2官方源代碼演進
6.3 商業發行版版本維護
6.4 源代碼與項目管理工具
6.5 內核代碼檢查和check-in
第7章 Linux內核工作機理
7.1 內核總體結構
7.2 進程管理
7.3 內存管理
7.4 文件系統
7.5 系統調用
第8章 Linux內核編程
8.1 內核編程主要API
8.1.1 同步與併發
8.1.2 等待隊列
8.1.3 內核延時
8.1.4 內存申請和釋放
8.2 定時器
8.3 中斷頂底半部
8.3.1 軟中斷
8.3.2 tasklet
8.3.3 工作隊列
8.3.4 threaded_irq
8.4 Linux內核線程
8.5 IO與內存訪問
8.6 DMA與cache一致性
第9章 Linux內核模塊開發
9.1 內核模塊組成
9.2 編寫一個內核模塊
9.3 加載和卸載內核模塊
9.4 內核模塊進入文件系統
第三天
第10章 Linux內核調試方法
10.1 printk
10.2 oops和panic
10.3 內核debug選項
10.4 gdb、kgdb和kdb
10.5 使用仿真器
_________________________________________________________________
課程三: Linux設備驅動開發(驅動原理、軟件架構與設備實例)
_________________________________________________________________
第11章 Linux字符設備驅動結構
11.1 Linux字符設備驅動結構
11.2 globalmem虛擬設備實例描述
11.3 globalmem設備驅動
11.3.1加載與卸載設備驅動
11.3.2打開與釋放函數
11.3.3讀寫函數
11.3.4 seek函數
11.3.5 ioctl函數
11.4 globalmem驅動的編譯與加載
11.5 globalmem驅動在用戶空間的驗證
第12章 Linux設備驅動中的併發控制
12.1併發控制的概念
12.2何時需要併發控制
12.3自旋鎖
12.3.1自旋鎖的概念
12.3.2自旋鎖相關數據結構與函數
12.4信號量
12.4.1信號量的概念
12.4.2信號量與同步
12.4.3信號量與互斥
12.4.4信號量相關數據結構與函數
12.5增加併發控制後的globalmem驅動
12.5.1在globalmem驅動中增加併發控制
12.5.2在用戶空間驗證globalmem設備的併發控制
第13章 Linux設備驅動中的阻塞與非阻塞I/O
13.1阻塞與非阻塞I/O
13.2 poll操作的概念
13.3何時需要poll操作
13.4等待隊列waitqueues
13.5 Linux poll操作相關數據結構與函數
13.5.1應用程序中的poll相關數據結構與函數
13.5.2設備驅動中的poll相關數據結構與函數
13.6支持poll操作的globalmem驅動
13.6.1在globalmem驅動中增加poll操作
13.6.2在用戶空間驗證globalmem設備的poll
第14章 Linux設備驅動中的異步通知
14.1異步通知的概念
14.2何時需要異步通知
14.3 Linux異步通知相關數據結構與函數
14.4支持異步通知的globalmem驅動
14.4.1在globalmem驅動中增加異步通知
14.4.2在用戶空間驗證globalmem的異步通知
第15章 硬件和綜合因素:中斷、IO訪問、驅動分層結構
15.1 以觸摸屏驅動爲例剖析IO訪問
15.2 以觸摸屏驅動爲例剖析中斷的使用
15.3 以音頻驅動爲例剖析剖析DMA的使用
15.4 範舉多個驅動子系統剖析Linux驅動的框架結構

第四天
第16章 Linux塊設備驅動
16.1塊設備的I/O操作特點
16.2 Linux塊設備驅動結構
16.3塊設備驅動註冊與註銷
16.4塊設備的打開與釋放
16.5塊設備驅動的ioctl函數
16.6塊設備I/O請求隊列
16.6.1請求隊列的概念
16.6.2請求隊列的相關數據結構與函數
16.6.3請求隊列的保護機制
16.7塊設備的讀寫流程
16.8實例:硬盤設備驅動
第17章 Linux Ethernet設備驅動
17.1 Linux網絡設備驅動結構
17.2網絡設備驅動註冊與註銷
17.3網絡設備初始化
17.4網絡設備打開與釋放
17.5數據發送流程
17.6數據接收流程
17.7網絡連接狀態
17.8參數設置和統計數據
17.9實例:CS8900網卡設備驅動
第18章 Linux PCI設備驅動
18.1 PCI的I/O空間、存儲空間和配置空間
18.2 Linux PCI設備驅動架構
18.3 PCI設備驅動註冊與註銷
18.4 PCI設備初始化
18.5 PCI設備的probe
18.6 PCI設備打開與釋放
18.7 PCI設備數據讀寫與控制
18.8 PCI設備驅動中斷處理
18.8實例:NE2000 PCI網卡驅動
_________________________________________________________________
課程四: Linux內核移植(BSP構建)
_________________________________________________________________
第19章 Linux BSP構建
19.1 BSP的組成部分
19.2 plat/mach各組件的實現
19.2.1 內核節拍
19.2.2中斷管理
19.2.3 時鐘
19.2.4 GPIO
19.2.5 DMA
19.2.6 IO內存映射
19.3設備與資源
19.3.1 platform device、resource和plarform data
19.3.2 uart/spi/i2c等設備板級resource

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章