【課程目標】
通過本課程的系統(tǒng)學習,可以使學員由淺入深地對ARM+Linux+Android系統(tǒng)全面學習。本課程針對嵌入式行業(yè)軟硬兼施的特點,軟件方面從C語言、數(shù)據(jù)結構、Linux操作基礎、C++語言、java語言,逐步深入到Linux環(huán)境應用編程,C++方向的QT應用編程,java方向的Android應用編程;硬件方面從ARM體系結構、各外設接口裸編、Linux內核系統(tǒng)移植到Linux設備驅動、Android底層驅動;整體上從應用程序開發(fā)到底層的驅動開發(fā),終融會貫通。學完后能夠獨立勝任嵌入式Linux C/C++應用軟件開發(fā)、Android應用軟件開發(fā)、ARM+Linux平臺驅動開發(fā)等多方面工作,是志在從事嵌入式工程師職業(yè)發(fā)展的理想課程,也是目前武漢華嵌熱門的課程,已經(jīng)開設48期,為社會輸送了大量嵌入式人才,很多企業(yè)嵌入式研發(fā)部門都有我們的學員,學員素質深受企業(yè)贊許。
【就業(yè)**】
四個階段同報,簽訂就業(yè)協(xié)議,通過階段考核和結業(yè)答辯,**就業(yè),不就業(yè)退款!考核不通過,免費重學!
【上課課時】
本課程培養(yǎng)周期為全日制18周(4個半月), 總課時為720學時,
【課程目標】
1. 精通linux操作系統(tǒng)使用;
2. 精通linux下C、數(shù)據(jù)結構、C++語言、java語言編程;
3. 精通嵌入式linux應用開發(fā),如IO、進程、線程、網(wǎng)絡、數(shù)據(jù)庫編程等;
4. 精通Qt GUI開發(fā);
5. 精通Android應用開發(fā);
6. 精通ARM處理器平臺及其接口硬件開發(fā);
7. 掌握嵌入式Linux內核裁減移植及內核調試技巧;
8. 掌握嵌入式Linux下 Bootloader的編寫方法;
9. 掌握嵌入式Linux下常用接口的驅動開發(fā);
10. 掌握Android移動互聯(lián)應用軟件開發(fā)流程;
11. 熟悉Android系統(tǒng)驅動開發(fā)流程;
12. 精通嵌入式實際項目案例開發(fā)流程
13. 職業(yè)素質培養(yǎng):如簡歷制作、面試技巧、職場心得、模擬面試
【課程大綱】
階段:嵌入式軟件開發(fā)基礎(3周)
階段目標:熟練使用C、C++語言程序設計的程序員,可以很容易地進入Linux、WinCE、Vxworks等嵌入式操作系統(tǒng)下的軟件開發(fā)工作;本階段學習目標是強化C語言編程、數(shù)據(jù)結構、C++編程語法基礎和Linux操作系統(tǒng)的使用 ,并熟練掌握嵌入式Linux的開發(fā)環(huán)境,為下一階段嵌入式應用軟件的編程工作打好基礎。
1.嵌入式Linux C語言編程與500強企業(yè)筆試題剖析
C語言是嵌入式領域重要也是主要的編程語言,本課程將在學員C 語言基礎知識之上,通過大量編程實例重點講解C語言的編程知識,包括函數(shù)與程序結構、數(shù)組、函數(shù)、指針、結構體、文件、常用算法、內存管理的使用等知識,穿插500強企業(yè)筆試題,加深理解。另外,對軟件編碼規(guī)范有嚴格要求,使學員養(yǎng)成良好的編碼習慣。
2.數(shù)據(jù)結構與算法
程序=數(shù)據(jù)結構+算法。本節(jié)包括鏈表、隊列、棧 、樹、圖等內容,以及一些常見算法的實現(xiàn)。是對C語言的結構體與指針,特別是內存管理和算法描述的實際檢驗。
3.Linux操作系統(tǒng)使用
本課程從零起點,講解Linux操作系統(tǒng)的概念和安裝方法,詳細介紹 Linux下的基本命令、管理配置和編輯器,包括VI編輯器,GCC編譯器,GDB調試器和 Make 項目管理工具等知識。
4.C++面向對象編程
C++是Linux應用開發(fā)主要語言之一,本節(jié)重點讓學員掌握面向對象編 程的基本思想,以及C++語言的基礎內容,圍繞封裝、繼承、多態(tài)特性展開,為第二階段的Qt軟件開發(fā)課程打好基礎。
第二階段:嵌入式應用軟件開發(fā)(7周)
階段目標:參加本期培訓的學員應該已經(jīng)掌握嵌入式C、C++語言編程技巧和Linux操作系統(tǒng)基礎,而掌握好java語言,對從事Android應用軟件開發(fā)有著重要意義。嵌入式應用軟件開發(fā)是嵌入式產(chǎn)品開發(fā)中非常重要的一部分,也是企業(yè)人才需求廣的一部分。本期學習的主要目標是精通嵌入式Linux和Android下的程序設計,熟悉嵌入式軟件開發(fā)流程,強化學員對應用開發(fā)的理解和編碼調試的能力。后通過幾個典型的企業(yè)全真案例,進一步鞏固本期課程內容,使學員真正學以致用。
5.嵌入式Linux編程--文件I
嵌入式Linux應用開發(fā)是嵌入式Linux中重要的一部分,也是就業(yè)面廣的方向。本課程的主要目標是精通嵌入式Linux下的程序設計,精通嵌入式Linux開發(fā)環(huán)境,強化學員對Linux應用開發(fā)的理解和編碼調試的能力。本部分主要講解緩沖文件系統(tǒng)、非緩沖文件系統(tǒng)的API應用,文件目錄遍歷算法,ls命令實現(xiàn)方法等
6.嵌入式Linux編程--多進程多線程
本部分主要講解多進程程序編寫方法,API函數(shù)fork、execl、waitpid等用法,P、V操作原理 ;進程間通信方法,如管道、信號、消息隊列、共享內存、信號量等實例講解;多線程程序編寫方法,用信號量、互斥鎖、條件變量 等實現(xiàn)多線程的同步與互斥等。
7.嵌入式Linux編程--網(wǎng)絡編程
本部分主要講解TCP/IP協(xié)議框架、Dos攻擊原理,基于client/server的TCP和UDP協(xié)議通信實例 ,實現(xiàn)ping命令的方法,要求學員實現(xiàn)文字版ftp工具和局域網(wǎng)聊天工具。
8.嵌入式Linux編程--嵌入式數(shù)據(jù)庫
本部分主要講解嵌入式數(shù)據(jù)庫sqlite的安裝與編程方法,sqlitebrowser的使用方法,編程實現(xiàn)對數(shù)據(jù)庫的增、刪、改、查、排序等操作,學員自主實現(xiàn)一個文字版的小型管理系統(tǒng)。
9.QT GUI圖形界面程序設計(使用C++語言)
本課程可以使學員快速掌握QT GUI編程技術,可以編寫自己的Qt 應用程序,能夠從事嵌入式Linux下Qt應用開發(fā)相關的項目開發(fā)。重點學習:Qt開發(fā)環(huán)境構建,Qt基本控件用法講解,Qt與數(shù)據(jù)庫,Qt多進程與多線程編程,Qt網(wǎng)絡編程技術,Qt定時器、國際化、菜單、工具欄 、狀態(tài)欄,QTE在ARM開發(fā)板平臺上的移植等。學員完成項目:1、電子相冊2、簡易局域網(wǎng)聊天工具
10.java編程基礎
java是Android應用程序開發(fā)主要語言,本節(jié)主要以Java語言編程基礎為主,內容包括Java開發(fā)工具的安裝和配置,Java的數(shù)據(jù)類型 ,運算符,表達式,數(shù)組,流程控制等Java基礎編程知識;讓學員掌握面向對象編程的基本思想,內容包括抽象類、接口、內部類、類的繼承、多態(tài)等面向對象編程知識,為Android應用開發(fā)課程做好鋪墊。
11.Android應用編程(使用java語言)
目前,移動互聯(lián)應用也是嵌入式的一個很重要的方向。Android系統(tǒng)本身來源于Linux,其底層基于Linux內核,上層應用主要使用java語言。在學完前面的知識后,學員已經(jīng)具備相當?shù)能浖_發(fā)能力,這是對Linux應用程序開發(fā)在智能移動平臺的一個擴展,對完善軟件知識體系和擴大學員就業(yè)面很有幫助。包括用戶界面UI開發(fā)、圖形編程接口、四大應用程序組件;sqlite數(shù)據(jù)存儲、網(wǎng)絡編程、google地圖、打包發(fā)布;傳感器開發(fā)、設備相關編程、JNI等。通過大量的現(xiàn)場代碼演示達到講授目的,并通過階段項目起到強化訓練的效果。學員完成項目:1、手機版?zhèn)}儲溫度監(jiān)測系統(tǒng)2、手機版超市進銷存管理系統(tǒng)
第三階段:嵌入式Linux底層驅動開發(fā)(5周)
階段目標:參加本階段培訓的學員應該已經(jīng)掌握嵌入式C語言和Linux系統(tǒng)操作。本課程內容循序漸進,在掌握硬件接口編程的同時可獨立編寫硬件BSP層程序,獨立完成linux的裁剪、驅動移植、文件系統(tǒng)部署;深入掌握Linux驅動程序開發(fā)技巧,能夠熟練編寫常用外設的設備驅動程序。
12.ARM處理器體系結構與編程
ARM是嵌入式領域主要的CPU處理器,了解ARM處理器的基礎知識將 為后面課程的底層開發(fā)打好堅實基礎,本課程內容包括ARM處理器體系結構、編程環(huán)境、指令集、尋址方 式、調試、匯編和混合編程等方面的內容,為后面移植課程的學習打好基礎。
13.ARM硬件接口開發(fā)
本課程重點實例講解ARM的常用接口開發(fā)及硬件電路設計基礎(包括 IO、 串口、看門狗、實時時鐘、SPI、IIC、掃描鍵盤、FLASH操作等),為以后的設備驅動的學習打好基礎。
14.嵌入式Linux系統(tǒng)移植
系統(tǒng)開發(fā)是嵌入式Linux底層開發(fā)必備的基本技能,本課程將教會學員在硬件電路板做好的情況下,如何從零開始搭建嵌入式Linux運行環(huán)境,內容包括內核裁減、內核移植 、交叉編譯、內核調試、啟動程序Bootloader編寫、根文件系統(tǒng)制作和集成部署Linux系統(tǒng)等整個流程。
15.嵌入式Linux內核結構分析
本課程是驅動開發(fā)的基礎課程,深入內核框架細節(jié),了解Linux相關 運行機制,為后面的驅動開發(fā)打好基礎,內容包括內核源碼結構、內存管理、進程管理、中斷管理、系統(tǒng) 調用、內核同步、時鐘和定時器管理、信號、調度、進程間通信、文件系統(tǒng)和I/O設備管理等方面的內容 。
16.嵌入式Linux驅動之關鍵技術點
一、介紹嵌入式Linux驅動開發(fā)相關概念及開發(fā)流程,了解驅動涉及到的關鍵技術點:
1、驅動模塊的加載與卸載、模塊參數(shù),驅動程序的靜態(tài)編譯與動態(tài)加載;
2、file_operation結構體,對驅動框架中的open、release、read、write、ioctl、mmap、poll、fasync等結構的實例講解;
3、驅動的并發(fā)與競態(tài):原子變量、自旋鎖、信號量、互斥鎖的原理與實例講解;
4、IO的三種訪問方式,等待隊列、輪詢、異步通知的原理與實例講解;
5、驅動中的中斷處理子系統(tǒng),中斷的申請與釋放,中斷服務程序ISR中的上下半部問題;
6、中斷延遲的3種方法:tasklet、工作隊列、內核定時器的原理與實例講解;
7、內核地址空間與內存映射,ioremap等內核函數(shù)的實例講解;
8、DMA方式實例講解;
9、input子系統(tǒng)實現(xiàn)觸摸屏、按鍵等輸入設備的驅動實例;
二、重點學習字符設備驅動開發(fā),包括I/O、PWM、看門狗、實時時鐘、SPI、IIC、掃描鍵盤 、A/D轉換、串口、定時器等接口的驅動開發(fā),為深入學習驅動開發(fā)打好基礎。
17.嵌入式Linux驅動之復雜設備驅動開發(fā)要點
驅動開發(fā)是嵌入式Linux開發(fā)難度高的內容,也是目前嵌入式行業(yè)緊缺的人才之一。有了前面課程知識的鋪墊,本課程將重點講解嵌入式Linux下常用接口驅動的編寫方法,內容包括:
1、flash驅動:掌握在linux環(huán)境下驅動常見flash存儲器(nor flash、nand flash);
2、塊設備驅動:掌握塊設備驅動的原理、學會ramdisk的編寫;
3、網(wǎng)卡驅動:掌握網(wǎng)卡設備的編寫原理、能夠熟練移植各種網(wǎng)卡驅 動。在對網(wǎng)卡硬件寄存器熟悉的基礎上,有能力為其編寫出完善的網(wǎng)卡驅動;
4、液晶LCD驅動:掌握frambuffer驅動的原理。有能力在有控制器的嵌入式平臺上參考液晶手冊實現(xiàn)各種常見液晶驅動;
5、sd卡驅動:掌握sdio接口操作,熟悉sd卡驅動的原理;
6、usb設備驅動:了解usb主機設備驅動的結構及編程方式。
18.Android驅動開發(fā)實例剖析
介紹Android系統(tǒng)和嵌入式Linux系統(tǒng)差異化,了解Android系統(tǒng)的體系結構、開發(fā)特點以及關鍵技術點,掌握ARM平臺上的Android相關開發(fā)工具和解決方案,介紹Android系統(tǒng)底層驅動開發(fā)和嵌入式Linux驅動開發(fā)的差異化,使學員全面了解Android系統(tǒng)的開發(fā)過程及發(fā)展前景。后,以一個LED設備驅動實例,詳細剖析開發(fā)android設備驅動的全部流程。
第四階段:職業(yè)素質與綜合項目實訓(3周)
1.證書:工信部《 信息技術應用技能嵌入式Linux工程師認證證 書:NICE 》(認證費500元),武漢華嵌《嵌入式Linux工程師 職業(yè)資格證書》(認證費500元)
2.階段目標:后,本階段將重點讓學員從零開始完整完成一個真實項目的設計,使學員在鞏固所學內容的同時,迅速積累項目設計經(jīng)驗,達到并超過企業(yè)用人需求,另外,通過實際項目案例,可以發(fā)現(xiàn)學員知識薄弱環(huán)節(jié)進行重點加強。目前提供的真實項目包括:基于android手機的遠程視頻監(jiān)控系統(tǒng)、商用POS機、汽車GPS導航系統(tǒng)、電站數(shù)據(jù)采集與控制系統(tǒng),學員可完整完成其中一個項目。
19.職業(yè)素質課程
主要包括簡歷制作、面試技巧、職業(yè)素質培養(yǎng)、職場成長之路、模擬 面試、企業(yè)現(xiàn)場招聘會等,旨在提高學員職業(yè)素養(yǎng),增強就業(yè)競爭力,入職后快速成長。
20.嵌入式項目開發(fā)流程
本課程主要通過實際企業(yè)項目演示,讓學員從宏觀了解嵌入式項目開發(fā)流程,讓學員建立起整體架構的概念,包括嵌入式產(chǎn)品需求分析和底層移植、啟動代碼、驅動開發(fā)、系統(tǒng)部署、應用軟件開發(fā)、調試、維護等整個過程。
21.綜合嵌入式項目實踐(華嵌畢業(yè)設計,接納高校畢業(yè)設計課題和企業(yè)項目作為華嵌畢業(yè)設計)
本課程將通過一個真實完整的項目案例,讓學員了解真實項目的開發(fā)流程,讓學員知道如何將所學知識應用到項目開發(fā)中。本課程將模擬真實項目的管理過程,培養(yǎng)學員項目團隊協(xié)同開發(fā)能力,項目文檔編寫能力和新知識的學習能力,為下一步就業(yè)做好知識上和心理上的充分準備。目前學員在華嵌可完成的真實項目包括:基于ARM+Android智能手機/平板電腦的智能家居系統(tǒng)、智能農業(yè)系統(tǒng)等,商用電子交易POS機終端、基于QTE/Android平板電腦的電站運行監(jiān)控系統(tǒng)、自制wifi智能小坦克等,學員可在學習期間獨立完成其中一個項目。也可以接納高校畢業(yè)設計課題和企業(yè)項目作為項目實戰(zhàn)內容,華嵌老師負責指導完成。
【教學師資】
馮老師
講師,工學碩士,曾任武漢某上市公司研發(fā)經(jīng)理,10年ARM、Linux嵌入式系統(tǒng)開發(fā)經(jīng)驗,5年嵌入式培訓講師經(jīng)驗。作為研發(fā)骨干完成了多項嵌入式系統(tǒng)與軟件開發(fā)項目,開發(fā)出多款手持終端和消費終端,對于ARM+Linux的嵌入式系統(tǒng)開發(fā)和編程有著豐富的經(jīng)驗,尤其專注 Linux下的驅動開發(fā)。專長研究方向: ARM系統(tǒng)開發(fā)與設計,Linux系統(tǒng)應用編程,Linux/Android底層驅動開發(fā)。