A. 學習嵌入式開發要學習哪些知識
嵌入式系統是計算機軟體和硬體的綜合體,我有全套嵌入式視頻課可以發給你自學。
①C,Java核心編程:c語言核心編程,Java核心編程;
②Linux核心操作與演算法:Linux系統使用,Linux-c編程核心技術,精品數據結構,Linux-c編程精髓;
③核心操作與演算法:Linux系統編程,Linux網路編程核心技術,UI編程,Java核心編程,安卓核心技術;
④ARM+Linux底層開發:數字電路,ARM編程核心,Linux系統開發,嵌入式Linux驅動開發;
⑤大型項目實踐:每期安排各類型真實的項目,詳細可以找我要資料。
北大青鳥中博軟體學院嵌入式課堂實拍
學完可以從事:
ESE(嵌入式軟體工程師);
ADE(嵌入式應用開發工程師);
FWE(嵌入式底層開發工程師);
FEC(嵌入式固件開發工程師)
你也可以考察對比一下南京課工場、北大青鳥、中博軟體學院等開設有嵌入式開發專業的學校。記得找我要全套嵌入式開發視頻課,祝學有所成!望採納!
B. 做嵌入式軟體學些什麼東西
我現在正在學嵌入式軟體開發,嵌入式軟體開發的主要課程有:
C語言基礎
C語言高級
Linux操作基礎
Linux系統編程
ARM體系結構
嵌入式系統移植
Linux驅動開發
c++
QT開發
winCE
現在的嵌入式開發主要用的都是Linux和winCE。
現在我國的嵌入式開發正在快速發展,需要的人才還是很多的,不過這東西學起來還真是挺不容易的,想要學的精通是非常難的,加油吧!!!
C. 做嵌入式軟體學些什麼東西
我現在正在學嵌入式軟體開發,嵌入式軟體開發的主要課程有:
C語言基礎
C語言高級
Linux操作基礎
Linux系統編程
ARM體系結構
嵌入式系統移植
Linux驅動開發
c++
QT開發
winCE
現在的嵌入式開發主要用的都是Linux和winCE。
現在我國的嵌入式開發正在快速發展,需要的人才還是很多的,不過這東西學起來還真是挺不容易的,想要學的精通是非常難的,加油吧!!!
D. 嵌入式軟體開發要學什麼要學哪些東西
學習嵌入式軟體開發應該從學習單片機開始,單片機是一切嵌入式的基礎,最早的嵌入式系統就是以單片機為核心的,隨著技術的進步和發展,才逐步發展到現在的DSP、ARM為核心的等高端高速控制系統。單片機是基礎,同時也是現在較大系統不可分割的組成部分,比如汽車,主控系統是ARM,但各個子系統仍然是單片機完成的。所以一個出色的嵌入式軟體工程師,必須具備單片機的知識,這樣才能在實際工作中把控一切,應用自如。
E. 嵌入式軟體工程師需要掌握什麼
嵌入式軟體工程師需要具備簡單的硬體電路設計能力。
需要懂得C語言和一些簡單的匯編語言編程;能夠閱讀一般嵌入式系統的原理圖;至少熟悉一種嵌入式系統的軟體開發環境;熟悉一種嵌入式系統軟體的開發過程;必要硬體基礎知識;理解常見的嵌入式操作系統的工作原理。
需要懂得:(1)懂得C語言和一些簡單的匯編語言編程。
(2)能夠閱讀一般嵌入式系統的原理圖。
(3)至少熟悉一種嵌入式系統的軟體開發環境。
(4)熟悉一種嵌入式系統軟體的開發過程,如:單片機系統、DSP系統、ARM系統或其它的一些潛入式系統。
(5)理解常見的嵌入式操作系統的工作原理,理解線程、進程、信號量、消息機制、同步與互拆、並發控制等軟體編程時用到的概念。
(6)必要硬體基礎知識。
F. 嵌入式開發都需要學習什麼
嵌入式系統是計算機軟體和硬體的綜合體,崗位包括:ESE(嵌入式軟體工程師);ADE(嵌入式應用開發工程師);FWE(嵌入式底層開發工程師);FEC(嵌入式固件開發工程師)。
課程內容主要包括:
①C,Java核心編程:c語言核心編程,Java核心編程;
②Linux核心操作與演算法:Linux系統使用,Linux-c編程核心技術,精品數據結構,Linux-c編程精髓;
③核心操作與演算法:Linux系統編程,Linux網路編程核心技術,UI編程,Java核心編程,安卓核心技術;
④ARM+Linux底層開發:數字電路,ARM編程核心,Linux系統開發,嵌入式Linux驅動開發;
⑤大型項目實踐:每期安排各類型真實的項目,詳細可以找我要資料。
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
G. 學單片機或嵌入式需要用到哪些軟體
單片機編譯軟體keil
很好用的
針對各型號單片機
燒寫軟體STC-ISP
嵌入式編譯在Linux環境下gcc就完了
燒Boot及系統需要用超級終端
主要是編程
H. 嵌入式系統的軟體組成
嵌入式系統的軟體組成?打開CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
登錄
不三不四特山人
關注
嵌入式系統的軟體組成 原創
2020-02-19 20:47:50
2點贊
不三不四特山人
碼齡1年
關注
嵌入式系統軟體的重要組成部分
1.1:嵌入式軟體的特點
嵌入式軟體除了具有計算機軟體的一般特性外,還具有一些與嵌入式系統特性密切相關的特點。因此,嵌入式系統與通用計算機軟體有所不同:
1:軟體與硬體一體化,軟體固化存儲。
在嵌入式系統中,操作系統和應用系統集成與計算機硬體系統中,系統軟體、應用軟體和系統的硬體一體化,我們為了提高系統的啟動、執行速度和系統的可靠性,嵌入式系統一般都固化與半導體存儲器中,也大可以認為是壓縮後存儲在內存之中,而不會存儲與磁碟等外存儲器之中。
2:軟體代碼時空效率要求高,實時性要求高。
當我們在設計嵌入式的應用時,特別需要考慮的是成本的因素,嵌入式軟體的時間和空間上都受到了嚴格的限制。嵌入式系統往往有較高的實時性要求,軟體對於外部做出反應的時間要快,在某些情況下還要求響應時間是確定的和可預測性的。
3:軟體的應用環境復雜,開發的難度大。
在我們生活的環境之中,是有許許多多的自然因素是我們無法預測和控制的,這也就使得我們的嵌入式系統的工作環境也是一樣。於此因此,在嵌入式軟體開發中一般都是需要涉及到底層軟體,這就要求開發人員要有扎實的軟體和硬體基礎,能夠靈活的運用不同的開發手段和工具。
4:軟體具有較長的生命周期。
這個就比較簡單的理解了,這些之中有許多是很久以前20世紀就以研發出來並且配套產品一同進入我們的市場。
1.2:嵌入式系統的軟體結構
一般來說,嵌入式系統可以根據所運行的環境不同和要求不同將嵌入式系統的軟體劃分位多種不同的結構。
1:簡單的輪詢(Round-Robin)結構
在一些低端的嵌入式系統中,處理器的處理能力比較低,存儲的容量也比較小,所以一般來說系統的功能都是相對的比較簡單,通常也只需要一寫簡單的控制操作。
而最簡單的軟體結構就是輪詢結構,其工作原理就可以類比高級語言中C語言的for循環,重復循環檢查每個外部輸入條件,一旦有需要或者說是達到標準的任務時,就進行相關的處理。
//初始化
while(TRUE)
{
if(I/O設備1需要服務);//執行設備1服務函數
if(I/O設備2需要服務);//執行設備2服務函數
if(I/O設備3需要服務);//執行設備3服務函數
if(I/O設備4需要服務);//執行設備4服務函數
... ...
if(I/O設備n需要服務);//執行設備n服務函數
}
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
電子相關專業的同學應該用過一個儀器就是「數字萬用表」,而這個儀器就是根據這個簡單的結構進行的測量操作
該結構的優點在於結構簡單,便於編程。但是因為缺少了中斷機制,所以存在著程序隨機切換時的一些潛在問題。
2:帶中斷的輪詢結構
這種結構在簡單的輪詢結構的「主循環」基礎上增加中斷服務程序(ISR)
中斷服務程序處理特別緊急的服務請求,設置狀態標志;循環主程序輪詢這些狀態標志,並進行後續的處理。
這種結構也被稱為中斷驅動結構或前後台結構。
I. 嵌入式開發要學哪些課程
嵌入式開發的必學課程:C語言,C++,操作系統,計算機組成原理,linux編程,51單片機,arm,硬體編程語言,模擬電路&數字電路。
嵌入式培訓分幾個階段的學習,從基礎到實戰的練習,一點一點學習和掌握這門技術。學習的課程內容包含:嵌入式高級C語言、嵌入式設備及GUI開發、嵌入式Linux高級程序設計、Linux高級網路程序設計、資料庫開發、面向對象高級語言程序設計、物聯網、CotexA53 Linux平台驅動開發及真實的企業實戰項目。
想要學好嵌入式技術,嵌入式軟體開發工程師,從事領域很寬泛,特別是工業控制、消費電子與通信設備三大領域,因為就業面很大,所以人才需求也大。現在智能硬體也比較火,這方面的發展也會大大拓展嵌入式軟體開發工程師的就業機會。再者,嵌入式硬體工程師,需求沒有嵌入式軟體開發工程師大,但因為做硬體門檻會高些,所以這個方向如果做的比較專業,薪資絕對不會低。
J. 嵌入式需要學什麼嵌入式需要學哪些課程和內容
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頁,是一本小書了。
每個行業都有自己的業務邏輯,在掌握基本的編程能力之一,你需要結合具體的業務去深入學習。