嵌入式Linux智能實訓大綱
一、 什麼是嵌入式
所謂嵌入式系統,是指以應用爲中心,以計算機技術爲基礎,軟硬件可裁剪的自動化設備。一般由嵌入式處理器、外圍硬件設備,嵌入式操作系統以及用戶應用程序等四個方面,用於實現對其他設備的控制、監視或管理等功能。它是將先進的計算機技術、半導體技術和電子技術和各個行業的具體應用相結合的產物,這一點就決定了嵌入式系統必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。
嵌入式智能開發系統的應用前景是非常廣泛的,人們將會無時無處不接觸到嵌入式產品,從家裏的洗衣機、電冰箱、到作爲交通工具的自行車、小汽車,到辦公室裏的遠程會議系統等等。在家中、辦公室、公共場所,人們可能會使用數十片甚至更多這樣的嵌入式無線電芯片,將一些電子信息設備甚至電氣設備構成無線網絡;在車上、旅途中,人們利用這樣的嵌入式無線電芯片可以實現遠程辦公、遠程遙控,真正實現把網絡隨身攜帶。下面介紹幾種具體的應用。
(1)智能家居
又稱智能住宅,在國外常用Smart Home表示。與智能家居含義近似的有家庭自動化(Home Automation)、電子家庭(Electronic Home、E-home)、數字家園(Digital Family)、家庭網絡(Home Net/Networks for Home)、網絡家居(Network Home)、智能家庭/建築(Intelligent Home/Building)。通俗地說,它是融合了自動化控制系統、計算機網絡系統和網絡通訊技術於一體的網絡化智能化的家居控制系統。智能家居將讓用戶有更方便的手段來管理家庭設備,比如,通過觸摸屏、無線遙控器、電話、互聯網或者語音識別控制家用設備,更可以執行場景操作,使多個設備形成聯動;另一方面,智能家居內的各種設備相互間可以通訊,不需要用戶指揮也能根據不同的狀態互動運行,從而給用戶帶來最大程度的高效、便利、舒適與安全。
(2)智能穿戴
智能穿戴又名可穿戴設備是應用穿戴式技術對日常穿戴進行智能化設計、開發出可以穿戴的設備的總稱,如眼鏡、手套、手錶、項鍊、手鍊、服飾及鞋等。
(3)智能機器人
智能機器人之所以叫智能機器人,這是因爲它有相當發達的“大腦”。在腦中起作用的是中央處理器,這種計算機跟操作它的人有直接的聯繫。最主要的是,這樣的計算機可以進行按目的安排的動作。正因爲這樣,我們才說這種機器人才是真正的機器人,儘管它們的外表可能有所不同。
(4) 汽車電子領域
隨着汽車產業的飛速發展,汽車電子近年來也有了較快的發展,電子導航系統、無人駕駛已經在汽車領域中廣泛的應用。汽車電子領域的另外一個發展趨勢是與汽車本身機械結合,從而可以實現故障診斷定位等功能。
(5)消費類電子產品
消費類電子產品的銷量早就超過了PC機若干倍,並且還在以每年10%左右的速度增長。消費類電子產品主要包括便攜音頻播放器、數碼相機、掌上遊戲機等。目前,消費類電子產品已經形成一定的規模,並且已經相對成熟。對於消費類電子產品,真正體現嵌入式特點的是在系統設計上經常要考慮性價比的折衷,如何設計出讓消費者覺得划算的產品比較重要。
(6) 軍工航天
軍工和航天領域不爲大衆所知的領域,在這個領域裏面,無論是硬件還是操作系統、編譯器,通常並不是市場上可以見到的通用設備,它們大多數都是專用的,但是並不代表這個領域落後,許多最先進的技術最前沿的成果,往往都會用在這個領域。
三、 嵌入式軟件工程師分類及薪資待遇
嵌入式智能軟件開發工程師薪資待遇分佈情況如下圖
四、 實訓環境
PC開發平臺: 操作系統ubuntu 14.0
代碼編輯工具:vi編輯器;編譯器:gcc;調試器:gdb
ARM開發板:Cortex-A9 Tiny4412 SDK
五、 實訓大綱
實訓簡介:
研發企業需要的研發工程師不僅僅是掌握知識,更多的是能力,包括程序設計、編碼實現、程序調試、難題攻關、團隊溝通,整個實訓的本質就是提高能力。
整個實訓安排以“知識點”爲基礎;以“企業實際應用要求”爲標準;以開發“實戰項目”爲驅動;以提高實訓者的能力中心,以達到企業研發工程師入職要求爲最終目標。
實訓安排:
總課時16周,週一到週五授課(AM :9:00~11:45 PM:13:00 ~ 17:45)
實訓階段 |
內容設置 |
實訓要求 |
|
嵌入式開發 基礎篇 |
Linux開發基礎精講 |
24課時 |
考勤:9:00~17:45 每個階段以最後的項目設計開發作爲學習評定標準。 課堂練習當時完成,實訓講師根據完成情況進行下一個知識點的講解。課後練習提交代碼服務器機。 |
C語言程序設計 |
80課時 |
||
數據結構與算法 |
40課時 |
||
C項目系統設計開發 |
40課時 |
||
嵌入式開發 系統篇 |
Linux系統程序設計 |
80課時 |
|
系統級項目設計開發 |
80課時 |
||
嵌入式開發 應用篇 |
嵌入式C++高級編程 |
80課時 |
|
數據庫系統原理與應用 |
16課時 |
||
多媒體項目設計與開發 |
56課時 |
||
嵌入式開發 硬件篇 |
ARM微處理原理與應用 |
48課時 |
|
嵌入式Linux系統移植 |
16課時 |
||
Linux驅動程序設計 |
48課時 |
從業方向:
·網絡通訊設備研發公司 ·無線通訊設備研發公司
·物聯網企業 ·智能安防企業
·消費類電子產品設計研發公司 ·智能家居企業
·手機解決方案公司 ·新型醫療電子研發公司
·智能樓宇企業 ·汽車電子公司
實訓要求:
·大學專科及專科以上學歷,計算機,電子,自動化,通信,信息工程等相關專業。
·如不具備以上條件,但從事1年以上的計算機軟硬件開發的技術人員。
六、 實訓內容詳情
階段1 Linux基礎、C語言編程基礎
本階段目標:
(1) 學會使用嵌入式軟件開發環境,熟悉企業嵌入式軟件開發的基本流程及版本控制。
(2) 熟練掌握C語言基本語法,理解數組,指針的本質,學會設計函數,能夠設計和編寫簡單的C語言程序
課程 |
實訓內容 |
知識構架 |
技術用途 |
備註 |
課程一 Linux基礎 |
1、 Linux 基礎 |
1、系統簡介 |
掌握Linux操作系統的基本時候特性 |
本課程主要要求參加實訓人員掌握Linux操作系統的基本使用特性 (3天) |
2、系統安裝 |
||||
3、Linux文件系統 |
||||
4、Linux權限管理 |
||||
5、Linux文本編輯器vi/vim |
||||
2、Linux常用命令 |
1、獲得幫助命令 |
掌握Linux系統的日常基本操作命令 |
||
2、文件目錄命令 |
||||
3、系統磁盤、網絡命令 |
||||
4、用戶、組管理命令 |
||||
5、壓縮、解壓縮命令 |
||||
6、重定向、管道 |
||||
3、Linux的shell腳本編程 |
1、Bash的功能 |
掌握bash企業實際基本應用 掌握shell腳本編程 |
||
2、本地變量 |
||||
3、環境變量 |
||||
4、腳本編程 |
||||
4、編譯和調試 |
1、gcc編譯器 |
瞭解研發企業的常用開發工具 掌握主流開發工具的使用 |
||
2、gdb調試器 |
||||
3、make管理器與Makefile的編寫 |
||||
4、版本控制及SVN的使用 |
||||
課程二
嵌入式Linux C語言的編程 |
1、C語言語法基礎 |
1、變量和數據類型 |
熟練掌握C語言基本語法的使用 gdb追蹤程序的執行 20個課程編程練習 |
本課程要求實訓人員熟練掌握C語言的各種數據類型的用法及其編程 (2周) |
2、常量 |
||||
3、運算符 |
||||
4、順序結構 |
||||
5、分支結構 |
||||
6、循環結構 |
||||
2、C語言數組的使用 |
1、數組的定義及使用 |
熟練掌握C語言數組的使用,學會用下標和地址兩種方法,冒泡排序 |
||
2、數組的特點 |
||||
3、多維數組 |
||||
4、字符數組 |
||||
3、C語言的指針 |
1、指針的本質 |
熟練掌握C語言中指針的使用包括基本類型指針、數組指針、指針數組、指針的指針 |
||
2、指針的定義及使用 |
||||
3、指向數組的指針 |
||||
4、指針數組 |
||||
5、數組指針 |
||||
6、指針的指針 |
||||
4、C語言的字符串 |
1、字符串常量 |
熟練掌握C語言中字符串的處理以及用指針與數組管理字符串的異同。熟練掌握字符串庫函數的使用 |
||
2、字符串的表示和存儲 |
||||
3、指向字符串的指針 |
||||
4、字符串指針數組 |
||||
5、不受限字符串庫函數 |
||||
6、受限字符串庫庫函數 |
||||
7、內存處理庫庫函數 |
||||
5、C語言的函數 |
1、函數的定義 |
熟練掌握C語言中函數的使用以及函數指針、指針函數、回調函數、命令行參數等知識點 |
||
2、函數參數和返回值的設計 |
||||
3、變量的生存週期和作用域 |
||||
4、值傳遞和地址傳遞 |
||||
5、 數組傳參 |
||||
6、指向函數的指針 |
||||
7、指針函數 |
||||
8、回調函數 |
||||
9、命令行參數 |
||||
6、C語言的結構體 |
1、結構體類型的定義 |
熟練掌握C語言的結構體的定義初始化及使用 熟練掌握指向結構體本身的結構體成員的使用 |
||
2、結構體變量的定義 |
||||
3、結構體變量成員的初始化 |
||||
4、結構體變量數組 |
||||
5、結構體變量指針 |
||||
6、結構體成員指針 |
||||
7、結構體對齊 |
||||
8、聯合體的使用 |
||||
7、C語言文件操作 |
1、 流文件 |
熟練掌握C語言文件的常用操作 學會使用文件實現數據的永久存儲 |
||
2、文件句柄 |
||||
3、文件的創建、打開 |
||||
4、文件的讀寫 |
||||
5、文件的定位 |
||||
6、文件的關閉 |
C項目系統設計開發(1周) |
||
開發環境:Linux系統 + Gcc + Gdb 項目目標: 綜合運用C語言知識。 熟練使用鏈表,數組來存儲數據並完成相應的操作。 瞭解企業項目模塊的劃分,目錄的設計。多文件.h和.c的內容編寫。 學會使用多模塊自動化編譯方法Makefile, 學會簡單的文件操作。 鍛鍊程序設計、代碼編輯編譯、調試、測試等能力。 瞭解嵌入式軟件開發的基本流程。 |
||
項目名稱 |
項目涉及技術 |
代碼量(行) |
1. 密碼字典管理系統 |
⊙ 項目的模塊劃分,目錄劃分 ⊙ 數據加密、解密算法的分析、設計、實現 ⊙ 多叉鏈表數據結構的設計、實現 ⊙ 隊列數據結構的設計 ⊙ Gdb調試工具的使用 ⊙ 鏈表排序算法的實現 ⊙ 按高質量編程規範編寫代碼。 ⊙ 堆內存的使用 ⊙ Makefile的使用 ⊙ 場景驅動 ⊙ 幀刷新 |
2000~6000 |
2. 大數據索引管理系統 |
2000~6000 |
|
3. 終端遊戲引擎 |
2000~4000 |
|
項目總結: 項目演示:演示項目功能,並講解部分代碼 代碼分析:編碼格式,內存使用分析,邏輯流程優化 綜合評定:技術分和表達分 |
階段2 數據結構與算法
本階段目標:
理解常見的數據結構及其操作。掌握一些常見算法
課程三、 數據結構與算法 |
實訓內容 |
知識構架 |
技術用途 |
備註 |
1、編譯預處理 |
1、編譯鏈接過程 |
提高程序的通用性。 多用於嵌入式系統開發中 |
本課程要求實訓人員熟練掌握C的高級用法以及鏈表、二叉樹、哈希表的使用。同時需要掌握常見排序算法(5天) |
|
2、宏定義及頭文件包含 |
||||
3、.h與.c的文件 |
||||
4、多文件程序的編譯與鏈接 |
||||
5、條件編譯 |
||||
6、預處理宏的使用 |
||||
2、C語言拓展 |
1、位運算符及其應用 |
更加深入掌握C語言的本質 |
||
2、define和typedef的使用 |
||||
3、const的使用 |
||||
4、static的使用 |
||||
5、高質量C編程 |
||||
6、C程序內存空間佈局 |
||||
7、malloc和free |
||||
8、關於內存的深入探討 |
||||
3、鏈表及操作 |
1、單向鏈表 |
用於數據的非連續存儲 |
||
2、雙向鏈表 |
||||
3、循環鏈表 |
||||
4、帶頭結點和不帶頭結點鏈表 |
||||
5、半雙向循環鏈表 |
||||
4、樹和二叉樹 |
1、順序存儲 |
多用於命令解析、路由解析等 |
||
2、鏈式存儲 |
||||
3、遞歸創建二叉樹 |
||||
4、遞歸遍歷二叉樹 |
||||
5、遞歸查找二叉樹 |
||||
5、常見排序算法 |
1、冒泡排序 |
多用於排序和查找 |
||
2、直接插入排序 |
||||
3、快速排序 |
||||
4、二分法查找 |
||||
5、選擇排序 |
||||
6、希爾排序 |
||||
6、哈希表 |
1、哈希表的原理 |
適用於數據量比較大,且檢索比較頻繁的數據的存儲 |
||
2、哈希函數 |
||||
3、解決衝突的方法 |
||||
4、開放地址法創建哈希表 |
||||
5、鏈式地址法創建哈希表 |
||||
實訓測驗: C高級筆試試卷與上機考試 |
階段3 Linux系統程序設計開發
本階段目標:
瞭解Linux操作系統的構成與特徵。
掌握Linux系統編程和網絡編程的基本方法
掌握多進程多線程編程能力
課程 |
實訓內容 |
知識構架 |
技術要點及實例 |
備註 |
課程四、 Linux系統編程與網絡編程 |
1、基本文件I/O |
1、Linux內核的基本結構 |
•系統調用文件操作與基於流的文件操作的區別 •文件屬性及存儲方式 |
要求實訓人員熟練掌握Linux操作系統的系統編程與網絡編程知識點(2周) |
2、Linux文件屬性和目錄屬性 |
||||
3、Linux系統I/O調用 |
||||
4、Linux庫函數I/O調用 |
||||
2、進程與線程 |
1、進程的原理和地址空間 |
fork() 派生進程 •進程終止方式 •執行其它程序exec() •進程等待wait() •進程調度策略 •多線程編程 •線程程序設計應用場合 •進程程序設計應用場合 |
||
2、進程狀態和狀態切換 |
||||
3、進程調度 |
||||
4、進程控制 |
||||
5、線程的創建和退出 |
||||
6、線程同步(信號量、互斥體) |
||||
7、進程和線程的關係 |
||||
3、進程間通訊 |
1、信號 |
•信號的發送與捕捉 •文件鎖的使用 •管道/FIFO編程 •信號量實現進程同步 •消息的發送和接收 •共享內存和文件映射的本質區別 •6種進程通信方法比較 •實現多進程同步編程 |
||
2、文件鎖 |
||||
3、管道 |
||||
4、信號量 |
||||
5、消息隊列 |
||||
6、共享內存 |
||||
4、網絡基本原理 |
1、OSI七層網絡模型 |
TCP/IP協議結構 •TCP數據包 •IP數據包 •TCP的連接和關閉過程 •UDP與TCP應用的區別 |
||
2、數據的封裝與拆分 |
||||
3、TCP/IP協議 |
||||
4、服務器和端口 |
||||
5、域名 |
||||
5、高級網絡編程 |
1、Socket編程基礎 |
實驗1:主機字節序檢測程序 實驗2:域名解析程序 實驗3:回射服務器和客戶端 實驗4:多客戶端回射服務器程序 實例5:使用select的ECHO服務器與客戶端 實例6:使用poll的ECHO服務器和客戶端 實例7:使用UDP的ECHO服務和客戶端 實例8:使用已連接UDP套接字的ECHO客戶端 |
||
2、套接字的創建與關閉 |
||||
3、連接遠程主機 |
||||
4、Socket I/O API |
||||
5、I/O複用和異步I/O |
||||
6、UDP編程 |
||||
7、套接字選項 |
||||
8、廣播、主播、多播程序設計 |
||||
9、守護進程和inetd |
||||
10、網絡命令及服務器端口 |
||||
學習要點: 多思考, 多通過實踐來驗證理論, 加深概念理解。 多想多寫, 鍛鍊大型程序/複雜項目的框架設計能力。你將在未來的工作中具備掌控和領導項目的潛力。 |
系統級項目設計開發(2周) |
||
開發環境:Linux系統 + Gcc + Gdb 系統項目目標: 綜合運用Linux操作系統基礎知識。 多任務編程。 基於TCP/UDP的網絡編程。 鍛鍊複雜項目的程序設計及實現能力。 全面瞭解嵌入式軟件開發的多模塊設計, 開發流程。 |
||
項目名稱 |
項目涉及技術 |
代碼量 |
1. 基於物聯網氣象信息發佈系統 |
⊙ C/S架構程序設計 ⊙ 多進程多線程編程 ⊙ 信號量的使用 ⊙ socket編程 ⊙ UDP協議的使用 ⊙ 協議數據包的封裝和拆分 ⊙ 配置文件的的設計和使用 ⊙ Gdb調試工具的使用 ⊙ 第三方語音處理平臺 ⊙ Linux語音庫使用 ⊙ Linux 語音合成和語音識別技術 |
4000~6000 |
2. 企業微信平臺開發 |
4000~8000 |
|
3.公交調度管理系統 |
4000~10000 |
|
4. GPS車載系統 |
|
|
學生完成項目案例1:GPS車載系統課程設計 (1)服務器端截圖 (2)客戶端截圖 項目總結: 項目演示:演示項目功能,並講解部分代碼 綜合評定:技術分和表達分 |
階段4 Linux下C++編程開發、數據庫編程
本階段目標:
掌握C++應用程序開發設計
掌握面向對象程序設計
掌握數據庫基本原理、
掌握SQL語句的使用
會使用簡單關係型DBMS進行數據處理和應用系統設計
學會關係數據庫M有SQL的使用
課程 |
實訓內容 |
知識構架 |
技術要點及實例 |
備註 |
課程五、
嵌入式Linux的C++編程 |
1、引用和函數 |
1、函數參數引用傳遞 |
•值傳遞、地址傳遞、引用傳遞分析 •不同函數的設計使用,提高代碼的執行效率 •實例:字符串變量的交換 |
要求實訓人員熟練掌握C++編程語言的基本語法以及編程(2周) |
2、結構與引用 |
||||
3、內聯函數 |
||||
4、重載函數 |
||||
5、遞歸函數 |
||||
6、默認參數的函數 |
||||
2、類和對象 |
1、類和類成員 |
•封裝 •類與對象的區別 •實例:實現一個隊列類 |
||
2、構造函數和析構函數 |
||||
3、默認構造函數和析構函數 |
||||
4、構造對象的過程 |
||||
3、面向對象的程序設計 |
1、動態內存分配 |
•new與delete •拷貝構造函數 •公有繼承、保護繼承和私有繼承 •多重繼承的構造順序 •運算符的重載 實例1:醫院問題 實例2:模擬家庭 實例3:重載+=和=操作符 |
||
2、繼承 |
||||
3、多重繼承、虛繼承 |
||||
4、重載 |
||||
5、多態 |
||||
6、靜態成員和靜態函數 |
||||
7、友元 |
||||
4、模板類和標準模板庫 |
1、模板函數 |
•vector •迭代器 •List •queue和map 實例1:堆棧模板 |
||
2、類模板的定義和使用 |
||||
3、STL |
||||
5、異常處理 |
1、異常的基本規則 |
實驗1:主機字節序檢測程序 實驗2:域名解析程序 實驗3:回射服務器和客戶端 實例1:捕獲異常 |
||
2、異常的實現 |
||||
3、多路捕獲 |
||||
4、異常處理 |
||||
5、跟蹤調試方法 |
||||
實踐練習: 項目: 公司人員管理系統 學習要點: 提高學習能力, 未來的工作中, 需要快速學習並加以應用的情形非常多。 |
課程 |
實訓內容 |
知識構架 |
技術要點及實例 |
備註 |
課程六 嵌入式數據庫的使用 |
1、數據庫原理 |
1、數據庫的基本概念 |
•關係的完整性約束 •函數依賴 •關係範式 |
要求實訓人員熟練掌握SQL常用語法(2天) |
2、數據庫模型 |
||||
3、關係數據庫 |
||||
4、數據庫安全 |
||||
5、數據庫優化 |
||||
6、數據庫範式 |
||||
7、MYSQL高級特性 |
||||
2、SQL |
1、SQL數據定義語言DDL |
•數據庫的創建、查看、刪除 •數據庫的修改、備份、恢復 •表的創建、修改、顯示、插入、更新、刪除等 •主鍵與外鍵 •Select語句 •連接查詢、內連接查詢、外連接查詢 •子查詢、集合查詢 |
||
2、SQL查詢語言 |
||||
3、SQL數據操縱語言DML |
||||
4、SQL數據控制語言DML |
||||
5、SQL視圖 |
||||
6、嵌入式SQL |
||||
7、SQL存儲過程 |
||||
3、數據庫系統MySQL |
1、MySQL數據庫環境搭建 |
|
||
2、數據庫使用 |
C++ 項目(2周) |
||
項目目標: 掌握C++語言的基本知識和技能。 基本掌握面向對象程序設計的基本思路和方法。 能夠利用所學的基本知識和技能,解決面向對象程序設計問題。 鍛鍊多媒體應用程序的設計及實踐能力。 全面瞭解多媒體應用程序開發的設計思路以及開發流程。 |
||
項目名稱 |
項目涉及技術 |
代碼量 |
1. 電子詞典 |
⊙ C++封裝、繼承和多態 ⊙ 圖形應用程序開發 ⊙ 信號與插槽技術 ⊙ MYSQL數據庫技術 |
3000~4000 |
2.酒店點餐系統 |
⊙ C++封裝、繼承和多態 ⊙ 圖形應用程序開發 ⊙ 信號與插槽技術 ⊙ MYSQL數據庫 |
4000~5000 |
3.遠程辦公監控系統 |
⊙ C++封裝、繼承和多態 ⊙ 圖形應用程序開發 ⊙ 信號與插槽技術 ⊙ MYSQL數據庫 |
5000~7000 |
項目1描述:電子詞典:能實現單詞的查詢、將查詢的單詞添加到生詞本中,以及對生詞本中的生詞進行編輯和刪除等操作。實現多用戶操作。前臺使用QT圖形開發界面 後臺使用MYSQL數據庫。實現用戶及單詞的管理。 項目總結: 項目演示:演示項目功能,並講解部分代碼 綜合評定:技術分和表達分 項目2描述:酒店點餐系統:實現點餐電子菜單顯示,實現點餐操作,實現數據後臺傳輸,實現動態提醒,實現後臺服務端數據鏈接處理,實現廚房已點菜顯示及廚師分配, 廚師已完成菜提醒等 項目3描述: 服務器端: 1、可以接收多個客戶端的截圖請求,對電腦桌面截圖,並且把圖片發送給請求的客戶端; 2、能夠處理客戶端的連接、截屏和斷開請求,使用Qt的鏈表容器維護已經連接的客戶端。 3、當有客戶端連接或斷開時在信息窗口打印連接或斷開的客戶端信息,並且刪除鏈表中的那個客戶端QTcpSocket對象的地址。 4、能夠在請求時在信息窗口中打印所有已連接的客戶端信息。 客戶端: 可連接指定IP地址和端口號的服務器,向服務器發截圖請求,並接收服務器發來的截圖。 將截圖顯示出來並可以保存。 |
階段5 嵌入式軟件底層開發
本階段目標:
理解ARM的基本結構、指令系統
瞭解ADS集成開發環境
瞭解BootLoader的配置
掌握配置、裁剪、編譯Linux內核
掌握製作根文件系統
掌握嵌入式Linux設備驅動程序的基本原理、架構和設計方法
掌握Linux設備驅動開發中常用的機制和內核資源
課程 |
實訓內容 |
知識構架 |
技術要點 |
備註 |
課程七、ARM體系結構與編程 |
1、ARM內核的構架及彙編編程 |
1、ARM概述與分類 |
ARM存儲 ARM寄存器 ARM彙編指令 ARM彙編編程 ARM彙編與C混合編程 |
要求實訓人員熟練掌握arm彙編編程及S5PV210的接口編程(6天) |
2、ARM內核命名規則 |
||||
3、ARM的數據存儲 |
||||
4、ARM的指令流水線 |
||||
5、ARM的寄存器 |
||||
6、ARM 指令尋址方式 |
||||
7、ARM 指令集 |
||||
8、ARM僞指令 |
||||
9、ARM 彙編編程 |
||||
10、ARM彙編語言與C語言混合編程 |
||||
11、 ARM異常與處理 |
||||
2、CPU爲S5PV210,內核爲cortex-a8的裸機接口編程 |
1、Smart210開發板I/O模塊編程 |
I/O接口編程 時鐘編程 串口編程 中斷編程 |
||
2、Smart210開發板時鐘模塊編程 |
||||
3、Smart210開發板UART模塊編程 |
||||
4、Smart210 開發板中斷模塊編程 |
||||
課程八、嵌入式系統移植 |
1、嵌入式開發環境的搭建 |
1、嵌入式系統軟件組成 |
裁剪kernel
根文件系統製作 |
掌握kernel裁剪, 根文件系統製作(2天) |
2、Linux內核kernel裁剪 |
||||
3、根文件系統rootfs製作 |
||||
4、移植smart開發板 |
||||
課程九、Linux驅動程序開發 |
1、字符設備驅動程序開發及其機制的實現 |
1、Linux驅動程序概述 |
字符設備驅動的編輯編譯調試 字符設備驅動的機制 |
要求實訓人員熟練掌握字符設備驅動程序的編寫與調試 瞭解塊驅動與網絡驅動(6天) |
2、字符設備驅動程序 |
||||
3、併發與靜態控制 |
||||
4、阻塞與非阻塞型I/O |
||||
5、中斷與時鐘 |
||||
6、內存與I/O控制 |
||||
2、塊設備驅動與網絡設備驅動 |
1、塊設備驅動實現步驟 |
塊驅動 網絡驅動 |
||
2、設備驅動的註冊與註銷 |
||||
3、MTD Flash驅動實例 |
||||
4、網絡設備驅動概述 |