Emebedded System and Application(Linux)
Goal
--
掌握嵌入式系統開發的流程,系統移植的方法,編寫Bootloader
(Be familiar with the process of ES Developing
, System Migration
amd Bootloader Programming
)
Requriement
--
C、C++、Data Structure、Operating System、Linux、Electronic circuit
Content
--
| 1 |
Linux 快速入門 |
Linux 概述; Linux發行版; Linux開發環境搭建-vmware虛擬機器;Linux系統安裝 Linux的基礎知識; Linux檔案系統和檔案; Shell的使用; 常用的shell命令;Linux的軟體安裝; Linux 下的C語言編程基礎;Linux下VIM的使用; 編譯器GCC的使用;調試器gdb的使用; Linux下多檔案編譯與專案管理工具make的使用; |
| 2 |
C語言基礎強化 |
C語言文法 C語言的記憶體布局與常見庫函數 |
| 3 |
資料結構基礎強化 |
鏈表、隊列、棧、樹、雜湊表 資料搜尋、遍曆、排序與常見演算法 |
| 4 |
C++語言基礎強化 |
物件導向的編程方法 類及對象的封裝 類的繼承與派生 虛函數與多態性 建構函式與虛構函數 模板 異常處理 |
| 5 |
ARM硬體介面
|
嵌入式微處理器 ARM寄存器 ARM工作模式 ARM異常中斷 ARM彙編指令分類 ARM彙編指令定址方式 ARM組譯工具設計 C及組合語言混合編程 實驗: 基本ARM彙編指令編程;資料訪問練習; ARM彙編和C混合編程;ARM指令和THUMB指令混合編程 |
MDK開發環境使用 U-Linuk模擬器使用 ARM開發調試環境建立 ARM GPIO應用 ARM儲存空間控制器 ARM中斷控制器(IRQ和FIQ) 實驗: ARM組合語言與C語言實現跑馬燈; IRQ與FIQ中斷流程分析 |
ARM時鐘及定時器;TFT LCD驅動程式設計 實驗: 看門狗定時器應用;LCD顯示曲線及圖片; LCD漢字顯示實驗; |
ADC控制器應用;觸控螢幕應用及校準 實驗: ADC應用實驗;觸控螢幕實現實驗 |
PWM時鐘應用;系統時鐘及鬧鐘應用 實驗: 蜂鳴器控制;系統時鐘及鬧鐘應用; ARM工作模式轉換;ARM啟動代碼設計 |
NOR Flash應用設計;NAND Flash應用設計 IIC匯流排控制器 實驗: NOR Flash編程;NAND Flash編程; |
| 6 |
交叉開發環境搭建 |
嵌入式系統定義;Linux交叉開發環境介紹; GNU交叉工具鏈的使用;宿主機與PC機間的通訊; 串口通訊;交叉調試; 實驗: Minicom配置使用,Windows超級終端配置實驗; NFS共用設定實驗 |
| 7 |
Linux下C語言開發 |
檔案I/O操作編程; Linux系統調用與使用者編程介面; Linux中檔案及檔案描述符概述; 不帶緩衝的檔案I/O操作;標準I/O開發。 檔案操作 目錄操作 特殊檔案 |
Linux進程概述;Linux下進程結構;Linux下進程的模式類型; Linux下進程管理;Linux進程式控制制編程;守護進程; 訊號及訊號處理 |
處理序間通訊;多線程編程 管道;管道建立與讀寫;標準流管道;FIFO訊號量; 共用記憶體實現;訊息佇列實現 線程概述與分類;Linux線程技術發展;線程的實現和基本操作; 線程存取控制。 |
TCP/IP協議概述;OSI參考模型和TCP/IP參考模型; TCP/IP協議棧;TCP和UDP; 通訊端基礎 網路Socket概述;Socket通訊原理; Socket基礎編程。 |
| 通訊端編程進階 多路選擇I/O 檔案傳輸實現 |
| 8 |
嵌入式GUI設計 |
Linux下嵌入式gui編程介紹;Qt介紹;通過Qt designer認識Qt; 訊號和槽;Qt的事件 QT中的多線程編程;Qt 中的網路編程。 Qt介面布局與特效處理 |
| 9 |
嵌入式資料庫應用 |
資料庫基礎 嵌入式資料庫應用 嵌入式GUI與資料庫結合技術 |
| 10 |
根檔案系統 |
常見根檔案系統一(cramfs、jffs2) 根檔案系統的目錄結構;根檔案系統內容; 常見根檔案系統製作;添加裝置檔案;添加動態連結程式庫; 添加系統應用程式;添加設定檔; |
常見根檔案系統二(yaffs、romfs) 根檔案系統的目錄結構;根檔案系統內容; 常見根檔案系統製作;添加裝置檔案;添加動態連結程式庫; 添加系統應用程式;添加設定檔; |
| 11 |
項目架構 |
綜合項目架構分析與項目開發技巧 |
| 12 |
Bootloader |
Bootloader介紹;GEC2440Bootloader分析; 常見bootloader源碼分析; u-boot配置與編譯;u-boot移植;u-boot 使用 實驗: 修改u-boot原始碼,移植到開發板上 |
| 13 |
Linux核心進階技術 |
Linux核心結構 配置與編譯移植 Linux核心模組設計 核心記憶體管理、進程管理、中斷管理、裝置管理 核心時鐘和定時器管理、訊號、調度 Linux核心調試與最佳化 |
| 14 |
Linux驅動進階應用程式 |
字元驅動 |
| 驅動的中斷 延時 並發控制 |
| 裝置驅動的阻塞與非阻塞、非同步通訊 |
| 進階字元裝置 |
| 塊裝置驅動 Flash裝置驅動 |
| 網路裝置驅動 |
| USB裝置驅動 |
| LCD&觸控螢幕 裝置驅動 |
| IIC & SPI裝置驅動 |
裝置驅動調試與移植技巧 |