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