『壹』 嵌入式需要學什麼嵌入式需要學哪些課程和內容
1.1 有哪些設備使用單片機或Linux
所有的電子產品,所用技術都可以認為要麼是單片機,要麼是Linux;GUI方面主要是QT/Android,它們都是運行於Linux之上的。我們說的單片機不使用操作系統,但是使用單片機設備肯定遠遠超過Linux。很多人也是先學習單片機,從單片機進入電子工程師行業,日常生活中,有哪些產品使用單片機、Linux呢?下面舉一些例子:
下面我們用類比和邏輯推導出嵌入式Linux系統的組成,沒錯,「推導」。
從上圖可以知道:
組成:嵌入式Linux系統= bootloader + linux內核 + 根文件系統(裡面含有APP)。
bootloader:它的目的是啟動內核,去哪等讀內核?讀到哪裡?去Flash等外設讀內核,存到內存里去。所以需要有Flash里外設的驅動能力,為了調試方便還會有網路功能。所以,可以認為 booloader = 裸機集合,它就是一個復雜的單片機程序。
Linux內核:Linux內核的最主要目的是去啟動APP,APP保存在哪裡?保存在「根文件系統」里。「根文件系統」又保存在哪裡?在Flash、SD卡等設備里,甚至可能在網路上。所以Linux內核要有這些Flash、SD卡里設備的驅動能力。
不僅如此,Linux內核還有進程調度能力、內存管理等功能。
所以:Linux內核 = 驅動集合 + 進程調度 + 內存管理等。
2.3 要學習bootloader嗎
Bootloader有很多種,常用的叫u-boot。
在實際工作中,對於u-boot基本上是修修改改,甚至不改。但是u-boot本身是很復雜的,比如為了便於調試,它支持網路功能;有些內核是保存在FAT32分區里,於是它要能解析FAT32分區,讀FAT32分區的文件。
花那麼多精力去學習u-boot,但是工作中基本用不到,這對初學者很不友善。
所以,對於初學者,我建議:理解u-boot的作用、會使用u-boot的命令,這就可以了。
如果你的工作就是修改、完善bootloader,那麼再去研究它吧。
2.4 要學習Linux內核、要學習驅動程序嗎
之前我們說過Linux內核 = 驅動集合 + 進程調度 + 內存管理等,如果要學習Linux內核,從驅動程序入手是一個好辦法。
但是人人都要學習Linux內核、人人都要學習Linux驅動嗎?顯然不是。
作為初學者,懂幾個簡單的驅動程序,有利於工作交流;理解中斷、進程、線程的概念,無論是對驅動開發、應用程序開發,都是很有好處的。
所以對於初學者,建議前期只學習這幾個驅動:LED、按鍵、中斷。
LED驅動程序:這是最簡單的驅動程序。
按鍵驅動程序:它也比較簡單,從它引入「中斷」。
中斷:從「中斷」它可以引入:休眠-喚醒、進程/線程、POLL機制、非同步通知等概念。這些概念無論是對驅動開發,還是對應用開發,都很重要。
所以,對於初學者,我建議必須學習這幾個驅動:LED、按鍵、中斷。
入門之後,如果你想從事內核開發、驅動開發,那麼可以去鑽研幾個驅動程序(輸入系統、I2C匯流排、SPI匯流排等),掌握若干個大型驅動程序後,你對內核的套路就有所了解了,再去研究其他部分(比如進程管理、文件系統)時你會發現套路是如此通用。
攝像頭(VL42)、音效卡ALSA驅動是Linux中比較復雜的2類驅動,它們是很難的,如果工作與此相關再去研究。
2.5,要學習Linux應用程序嗎?先學一些基礎技能
要學,即使以後你只想研究內核,一些基本的應用開發編寫能力也是需要的:
基本設備的訪問,比如LCD、輸入設備
進程、線程、進程通信、線程同步與互斥
休眠-喚醒、POLL機制、信號
網路編程
①②③部分的知識,跟驅動有密切的關系,它們是相輔相承的。
掌握了基本驅動開發能力、基本應用開發能力之後,在工作中你就可以跟別人友好溝通了,不至於一臉懵逼。
2.6,應用程序是怎麼啟動的?要了解一下根文件系統
你辛辛苦苦寫出了應用程序,怎麼把它放到板子上,讓它開機就自動啟動?
你寫的程序,它依賴於哪些庫,這些庫放到板子上哪個目錄?
怎麼做一個可升級的系統?即使升級中途斷電了,也要保證程序至少還可以運行老的版本?
這些都需要我們了解一下根文件系統。
先了解一下init進程:它要讀取配置文件,根據配置文件啟動各個APP。
了解了init進程,你就了解了根文件系統的組成,就可以隨心所欲裁剪系統,為你的項目製作出最精簡的系統。
第3章 學習方法
3.1 先不要打破砂鍋問到底
嵌入式涉及的東西太多太雜了,如果心裡沒有主線,碰到什麼都要去研究個透徹,最終反而忘記自己要學什麼了。
嵌入式涉及硬體知識、軟體知識,軟體里涉及匯編、ARM架構、C語言、Makefile、Shell;又分為bootloader、內核、驅動、基本的APP、GUI。
比如我們會用到Makefile,了解它的基本規則,會用我們提供的Makefile就可以。
不需要深入研究那些make函數,因為在工作中都有現成的Makefile給你使用,不需要自己去編寫一套Makefile。何必花上好幾天去深入研究它呢?
比如我們會用到bootloader,難道又要花上幾個月來深入研究u-boot嗎?工作中基本不需要改u-boot,會用那幾個命令就可以。
甚至有些學員先去買本shell的書來學習shell命令,何必?我們在視頻中用到什麼命令,你不懂時再去網路一下這些命令就可以了。
不要脫離初學者的主線:應用基礎、驅動基礎。有了這2個基礎後,你想深入研究某部分時,再去花時間吧。
3.2 思路要清晰,不怕抄代碼
視頻里的代碼,請你一定要自己去寫一次、寫多次。為什麼我現在寫驅動那麼熟?我2009年在華清遠見上課時,
每次上課我都要給學生寫一次那些驅動,十幾次下來閉著眼睛都知道內核的套路了。
記不住那些函數?我也記不住,我都是去參考同類的驅動程序,這又不是閉卷考試。
但是要理清楚思路,你寫這個程序要完成什麼功能、怎麼實現這些功能?這個要弄清楚。
有了思路後再寫代碼,不知道怎麼寫?沒關系,看看視頻,看看示例,然後關閉視頻看看能否自己寫出來。
3.3 對自己的方向很了解,我只能帶你到這里了
我的專長是操作系統,是快速地帶領大家掌握一些項目開發的基礎知識。
如果你決定深入研究某方面時,我並不能帶你多久。你要去看源碼,去看這方面的專業書籍。
比如想深入鑽研內核的內存管理時,它有頁表映射(你需要閱讀ARM架構的手冊)、SLAB分配器、vmalloc/malloc實現、mmap實現、缺頁中斷、父進程子進程之間的頁面管理等等,內容非常多。有時候連書籍都沒有,你需要直接啃代碼。
當你想從事某個行業時,就需要深入研究行業相關的知識。
比如CAN匯流排,它可以寫成一本書:CAN協議、CAN報文、Socket CAN、車身網路拓撲結構,CAN應用報文,CAN網路管理報文,CAN診斷報文。
想做物聯網網關,需要深入研究MQTT,MQTT協議相對簡單,但是MQTT英文原版協議有130多頁,中文版有近100頁,是一本小書了。
每個行業都有自己的業務邏輯,在掌握基本的編程能力之一,你需要結合具體的業務去深入學習。
『貳』 嵌入式培訓
培訓真正找對培訓機構了還是很有效的,可以大大減少時間的時間投入,然後做到自己真正的想從事的行業中來,我是2月20日在ITjob參加嵌入式培訓的,現在就業在海輝還不錯的,我們班一共17人,現在全部都就業了.
不過培訓不能全靠老師,自己一定要付出120%的努力,就業才會順利的.
你可以上他們網站了解一下"深圳ITjob",好像他們8月28日又有嵌入式新班開課了;
地址:深圳福田上沙創新科技園13棟4-6樓
『叄』 嵌入式培訓都上哪些課程還有培訓時間多久呢
一般來說,嵌入式培訓都是培訓4四個月左右,至於課程,可能因為各個培訓學校的不同內課程體系不同,容但大體都應該差不多,你如果想具體的了解下的話,可以登錄亞嵌網站,首頁有個課程體系,寫的每個階段該學習什麼?你可以參考一下
『肆』 培訓嵌入式有哪些課程培訓時間多久
嵌入式培訓時間的話一般都是六個月左右吧,都差不多,畢竟這個比較難學的,短時間內是學不好的,課程的話,C語言強化,linux初級開發,linux高級開發,arm體系結構,armlinux這五個階段的課程,這是我從卓躍了解到的
『伍』 嵌入式開發培訓都有哪些內容
職業專家介紹,目前培養嵌入式人才的主要通過兩種途徑:一種是高校開設嵌入式專業課程,另一種是通過專業的嵌入式培訓機構培養企業所需的人才。本課程是為了適應目前發展迅速的嵌入式linux需求而設計,課程目標是讓學員達到適應嵌入式應用軟體開發、嵌入式系統開發或嵌入式驅動開發的基本素質。課程循序漸進的帶領你進入嵌入式開發的世界,採用了目前應用最廣泛的軟硬體開發平台(Linux和Arm),可以保證你盡量貼近目前企業的需求。 嵌入式培訓課程內容: 第一階段:嵌入式C高級編程 1.嵌入式C語言高級編程 2.嵌入式C語言經典數據結構及演算法編程 3.項目實戰(一)《lrc歌詞解析器》 在嵌入式領域中大部分開發都會用到C語言。C語言簡潔、緊湊、使用方便靈活加上GNU在實際項目開發中所做的擴展,使得C語言在整個嵌入式開發過程中起著至關重要的作用。更重要的是用C語言開發的程序在嵌入式平台下可移植性比較強。一個精通C語言程序設計的程序員,可以很容易地從事Linux、WinCE、Vxworks、μc/os等嵌入式操作系統下的軟體開發工作。本階段學習目標是掌握C語言基本知識、鞏固C編程語法基礎,以及深入C語言高級編程和數據結構與演算法,為將來的程序設計工作打下堅實的基礎。 第二階段:Linux應用及系統編程 1.Linux操作系統應用開發 2.嵌入式Linux高級系統編程 3.嵌入式資料庫--SQLite 4.項目實戰(二)《Mplayer播放器》 5.Linux網路編程 6.項目實戰(三)《基於Linux的信息交換系統》 7.C++及基於QT的GUI開發 8.項目實戰(四)《網路游戲對戰平台》 嵌入式Linux應用開發和系統開發是嵌入式Linux中非常重要的一部分,也是企業人才需求最廣的一部分。本階段學習的主要目標是精通嵌入式Linux下的應用程序設計,熟練掌握嵌入式Linux的開發環境、常用Linux命令,精通Linux系統編程、網路編程、QT GUI編開發,熟練掌握整個嵌入式Linux項目開發流程,提升學員對Linux應用開發的能力。 第三階段:嵌入式Linux平台開發 1.ARM體系結構 原理分析及其移植 2.ARM處理器編程 原理分析及其移植 3.基於ARM裸機驅動開發 原理分析及其移植 4.嵌入式Bootloader 原理分析及其移植 5.自製嵌入式系統啟動代碼 (Bootloader) 6.嵌入式Linux內核工作原理 分析及其移植 7.Linux內核調試技術 8.嵌入式Linux根文件系統 組成分析及其製作 8.嵌入式Linux開源工程 源碼分析及其編程 9.項目實戰(五) 《Web應用開發技術》 本階段將使學員掌握從零開始搭建嵌入式Linux運行環境。首先通過基於ARM Cortex-A8處理器S5pv210了解晶元手冊的基本閱讀技巧,掌握S5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。 第四階段:嵌入式微處理器及Linux設備驅動開發 1.ARM硬體介面原理 2.嵌入式Linux設備驅動開發 3.嵌入式Linux高級驅動程序設計 4.項目實戰(六) 《重力感應實戰系統》 驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段課程讓學員熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。 相關標簽:嵌入式培訓、嵌入式學習、北京嵌入式培訓
『陸』 嵌入式開發要學哪些課程
嵌入式軟體開發專業主要課程如下:
主幹學科:馬克思主義理論、大學外語、高等數學、大學物理、物理實驗、線性代數、概率論與數理統計、程序設計語言、數據結構、離散數學、操作系統、編譯技術、軟體工程概論、統一建模語言、軟體體系結構、軟體需求、軟體項目管理
該專業除了學習公共基礎課外,還將系統學習離散數學、數據結構、演算法分析、面向對象程序設計、現代操作系統、資料庫原理與實現技術、編譯原理、軟體工程、軟體項目管理、計算機安全等課程,根據學生的興趣還可以選修一些其它選修課。
實踐環節:畢業實習、課程設計、計算機工程實踐、生產實習、畢業設計(論文)。
(6)嵌入式培訓課程內容擴展閱讀:
嵌入式開發技能及就就業方向:
1、可視化編程掌握程序設計方法及可視化技術,精通一種可視化平台及其軟體開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。 就業方向:企業、政府、社區、各類學校等可視化編程程序員。
2 、WEB應用程序設計 具有美工基礎和網頁動畫設計能力,掌握互動式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網路開發工程師認證。 就業方向:企業、政府、社區、各類學校等WEB應用程序員。
3 、軟體測試掌握軟體測試的基本原理、方法和組織管理,精通軟體測試工具。獲取ATA軟體測試工程師或Delphi初級程序員或Java初級程序員認證。 就業方向:企業、政府、社區、各類學校等軟體測試員。
4 、資料庫管理 能應用關系範式進行資料庫設計,精通SQL語言,勝任資料庫伺服器管理與應用工作。獲取Oracle資料庫管理或SQL Server資料庫應用或Windows XP應用認證。 就業方向:企業、政府、社區、各類學校等部門的中、大型資料庫管理員。
5 、圖形圖像製作 精通國際上流行的圖形/圖像製作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。 就業方向:廣告製作公司、建築設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。
6 、網路構建技術 熟悉網路結構和組網方式,掌握建網方法,能利用工具分析和排除常見網路故障。獲取Cisco路由配置或華為網路工程或AMP應用工程師認證。 就業方向:企業、政府、社區、各類學校等網路構建工程師。
7 、網路系統管理 掌握網路系統管理的基本知識與應用技能,能進行網路系統的安全設置。獲取Window2000 Server或TurboLinux TLCE或Cisco路由配置專家認證。 就業方向:企業、政府、社區、各類學校等網路系統管理員。
8 、多媒體製作 具有多媒體程序設計與多媒體製作策劃的能力。基本掌握面向對象程序設計與建模、造型設計、場景設計、分鏡頭原理等技能。獲取多媒體設計師相關的認證。 就業方向:多媒體設計與製作公司、動畫美術製作出版公司、廣告製作公司。
9、 計算機辦公應用 精通辦公自動化應用與管理,熟悉伺服器的安裝、管理和維護,基於應用伺服器的相關服務和軟體系統,具備對伺服器的網路安全設置、郵件、網頁發布、FTP、OA、BBS等系統的應用和維護能力。 就業方向:企業、政府、社區、各類學校等系統管理。
『柒』 達內嵌入式培訓課程有什麼
這個it行業的工作性質,久坐久對電腦,相對來說會有些枯燥,學習的過程中也需要耐心!
抽時間去電腦學校看看的
『捌』 凌陽教育嵌入式培訓課程有哪些內容
第一階段:嵌入式C高級編程
1.嵌入式C語言高級編程
2.嵌入式C語言經典數據結構及演算法編程
3.項目實戰(一)《lrc歌詞解析器》
第二階段:Linux應用及系統編程
1.Linux操作系統應用開發
2.嵌入式Linux高級系統編程
3.嵌入式資料庫——SQLite
4.項目實戰(二) 《Mplayer播放器》
5.Linux網路編程
6.項目實戰(三)《基於Linux的信息交換系統》
7.C++及基於QT的GUI開發
8.項目實戰(四)《網路游戲對戰平台》
第三階段:嵌入式Linux平台開發
1.ARM體系結構原理分析及其移植
2.ARM處理器編程原理分析及其移植
3.基於ARM裸機驅動開發原理分析及其移植
4.嵌入式Bootloader原理分析及其移植
5.自製嵌入式系統啟動代碼(Bootloader)
6.嵌入式Linux內核工作原理分析及其移植
7.Linux內核調試技術
8.嵌入式Linux根文件系統組成分析及其製作
8.嵌入式Linux開源工程源碼分析及其編程
9.項目實戰(五)《Web應用開發技術》
第四階段:嵌入式微處理器及Linux設備驅動開發
1.ARM硬體介面原理
2.嵌入式Linux設備驅動開發
3.嵌入式Linux高級驅動程序設計
4.項目實戰(六)《重力感應實戰系統》
第五階段:嵌入式綜合復習與面試指導
1.嵌入式綜合復習
2.就業面試指導
3.嵌入式Linux綜合實踐項目