{eval=Array;=+count(Array);}
嵌入式系統(tǒng)的定義為:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、軟硬件可裁剪、適用于應(yīng)用系統(tǒng),對功能、可靠性、成本、體積、功耗嚴(yán)格要求的計算機系統(tǒng)。
了解Bootloader的結(jié)構(gòu)和啟動過程,在大多數(shù)的嵌入式系統(tǒng)中,Bootloader是上電后執(zhí)行的第一個程序。了解UBoot的配置、編譯、連接過程,了解常用命令如下載文件到內(nèi)存,擦除、讀寫Flash、運行內(nèi)存、NOR Flash、NAND Flash中的程序等等。
內(nèi)核管理的核心代碼,了解內(nèi)核的啟動過程,一般分為兩部分:架構(gòu)/開發(fā)板相關(guān)的引導(dǎo)過程、后續(xù)的通用啟動過程。了解內(nèi)核源碼結(jié)構(gòu)及Makefile分析。編譯燒寫啟動內(nèi)核。
根文件系統(tǒng),了解根文件系統(tǒng)下各目錄的作用,掌握構(gòu)建根文件系統(tǒng)的方法,移植Busy box,構(gòu)造各個目錄文件等。掌握制作yaffs.jffs2文件系統(tǒng)映像文件的方法。
了解幾種嵌入式GUI得特點,學(xué)習(xí)C語言,C++語言,學(xué)習(xí)簡單開發(fā)自己的QT GUI程序的編寫方法,掌握x86主機上模擬、調(diào)試嵌入式GUI程序。
綜上所述,嵌入式入門很難,需要學(xué)會改造Bootloader,鉆研內(nèi)核,為新硬件編寫驅(qū)動程序,看得懂電路原理圖,看的懂芯片數(shù)據(jù)手冊,上層應(yīng)用會繪制GUI。
推薦韋東山老師的嵌入式Linux應(yīng)用開發(fā)書,適合嵌入式Linux的初學(xué)者學(xué)習(xí)。
隨著互聯(lián)網(wǎng)的快速發(fā)展,嵌入式也越來越火熱,更多的人投入到嵌入式開發(fā)的行列中來,那么想要學(xué)習(xí)嵌入式,該從哪里入手學(xué)習(xí),嵌入式學(xué)習(xí)路線圖怎么學(xué)?
想要學(xué)習(xí)好嵌入式,想成為嵌入式軟件工程師。那么當(dāng)前企業(yè)需要哪些技術(shù)呢
1.嵌入式上層的軟件應(yīng)用開發(fā)
需要:精通嵌入式Linux C語言編程、嵌入式Linux C語言數(shù)據(jù)結(jié)構(gòu)、嵌入式Linux項目開發(fā)流程、嵌入式 Linux并發(fā)程序設(shè)計、嵌入式 Linux應(yīng)用編程、嵌入式 Linux網(wǎng)絡(luò)編程、嵌入式數(shù)據(jù)庫開發(fā);若是Android設(shè)備的應(yīng)用開發(fā),那就必須要了解java編程,Android應(yīng)用編程。
2.嵌入式底層開發(fā)
當(dāng)前底層90%的企業(yè)都采用ARM處理器,低功耗、成本低倍受關(guān)注。因此你必須要會:ARM處理器編程、ARM硬件接口開發(fā)、嵌入式Linux系統(tǒng)開發(fā)、嵌入式Linux內(nèi)核開發(fā)、嵌入式Linux驅(qū)動開發(fā)。其次Android設(shè)備越來越多,同樣你得了解嵌入式Linux在移動開發(fā)的典型應(yīng)用、ndroid底層系統(tǒng)開發(fā)。
學(xué)習(xí)嵌入式需要學(xué)的課程內(nèi)容很多,如果你是零基礎(chǔ)學(xué)習(xí)的話,我建議還是選擇一家不錯的培訓(xùn)機構(gòu)學(xué)習(xí)會更靠譜一些,畢竟現(xiàn)沒有基礎(chǔ)自學(xué)的話,想要精通需要很長時間,還不一定能學(xué)會,所以培訓(xùn)機構(gòu)專業(yè)系統(tǒng)的學(xué)習(xí)會少走一些彎路,更快的學(xué)習(xí)好嵌入式開發(fā)。
大綱也先分享給大家參考吧,合不合適你自己說了算。
1、入式高級C語言
2、嵌入式設(shè)備及GUI開發(fā)
3、嵌入式Linux高級程序設(shè)計
4、Linux高級網(wǎng)絡(luò)程序設(shè)計
5、數(shù)據(jù)庫開發(fā)
6、C++面向?qū)ο蟾呒壵Z言程序設(shè)計
7、物聯(lián)網(wǎng)
8、CotexA53 Linux平臺驅(qū)動開發(fā)
9、企業(yè)實戰(zhàn)項目
為什么說適合在校大學(xué)生呢,因為在校大學(xué)生時間充裕。而參加工作的人,時間就是金錢,與其花費太長時間自學(xué),還不如報個培訓(xùn)班速成,但是培訓(xùn)班的缺點可能就是基礎(chǔ)不牢(這個是個人見解,如有不同意見也可以看看我寫的自學(xué)經(jīng)歷,根據(jù)自己的基礎(chǔ)跳過相應(yīng)的步驟即可)。
我認(rèn)為學(xué)習(xí)任何東西都是需要分模塊的。各個模塊熟悉了最后串起來(個人經(jīng)驗)
提醒!!
提醒!!
提醒??!
玩嵌入式是有點費錢的。但是有舍有得,這個看你們自己把握了。
下面我說下我的方法
一、嵌入式分為幾個模塊(給自己學(xué)的勇氣)
二、起步學(xué)什么(打基礎(chǔ))
三、進階學(xué)什么(給自己堅持下去的動力)
一、嵌入式分幾個模塊
嵌入式分為軟件、硬件(簡單吧)。軟件,其實可以分的更詳細,但是我們不需要分這么詳細,后面學(xué)習(xí)的過程中你就明白了。
二 、起步學(xué)什么
首先,你最好是計算機、電子、電氣、微電子、電子信息、通信、自動化、信息工程等相關(guān)專業(yè)。
可能有人會問為什么必須這些專業(yè)。因為這些專業(yè)要么編程能力強,要么硬件基礎(chǔ)很熟悉,學(xué)習(xí)嵌入式是天然的優(yōu)勢。比如自動化專業(yè),他們學(xué)習(xí)過電路,模電,數(shù)電,電力電子這些課能讓你們有牢固的硬件基礎(chǔ);還有C++,51單片機,微機讓你們有一定的軟件基礎(chǔ)。特別是51單片機,一旦學(xué)會了,后面學(xué)習(xí)嵌入式會更容易。
接下來仔細說說如何起步(基礎(chǔ)不勞,地動山搖)
第一步,你要懂得硬件的基本知識,這些硬件知識能幫你更好的理解51單片機的內(nèi)部原理,硬件的管腳配置,引腳功能,更重要的是幫你理解放大電路,濾波電路等。(第三步推薦一本我認(rèn)為比價好的關(guān)于51的書,里面有51的內(nèi)部原理)這些懂了,在用51C語言寫程序的時候就會發(fā)現(xiàn)so easy。至于為什么先學(xué)51呢,因為大學(xué)大部分還是開設(shè)51的課,再者51容易理解,教學(xué)視頻豐富。
第二步,你要懂C/C++,c語言是學(xué)習(xí)嵌入式的靈魂。因為大學(xué)都開設(shè)有C課程,所以大家從C開始學(xué)會相對方便和節(jié)約時間。
第三步,有了相關(guān)基礎(chǔ)后開始看51單片機系列的書(見下圖),網(wǎng)上各種各樣的視頻多的很,對著網(wǎng)絡(luò)上的視頻學(xué)習(xí),效果會更好。但是不能只學(xué)不練,買個開發(fā)板(當(dāng)初我們是自己焊的),自己對著視頻練習(xí)。理論和實際結(jié)合效果最好。
當(dāng)然需要用到相應(yīng)的燒錄軟件,和編程軟件。我在這里統(tǒng)一說一下。
燒錄軟件就用STC-ISP(好用),編程的用KEIL c51(keil3也能用),后面玩32了再用KEIL5。
三、進階學(xué)什么
第一步、51單片機玩差不多半個學(xué)期就行啦,半個學(xué)期夠你掌握了,太長浪費時間。我們已經(jīng)玩過51了,已經(jīng)是大孩子了,哈哈哈。但是我們沒有玩過32位的,直接上arm是不行的。
所以我們要開始學(xué)習(xí)32,其實32比51 簡單的多,因為他們有豐富的庫,各種庫。市面上的教學(xué)資源非常非常的豐富,產(chǎn)品也比較成熟,某寶上面各種開發(fā)板(價格300以內(nèi)),自己選一個買就行了。
其實你也可以跳過51學(xué)32,畢竟51太老了,太陳舊了,但是我覺得你學(xué)習(xí)51會幫你牢固知識,幫你形成寫程序的習(xí)慣等。
學(xué)習(xí)32 的周期,根據(jù)自己情況安排,一般一個到一個半學(xué)期。
第二步、現(xiàn)在咱們對32比較了解了,輪到學(xué)習(xí)嵌入式系統(tǒng)了,對,沒錯就是系統(tǒng),是不是很興奮。。
想學(xué)習(xí)嵌入式系統(tǒng)Linux/WIN等 ,首先你需要買個arm學(xué)習(xí)版,在淘寶上面買的話,不太貴S3C2440,500+元。資料非常多,建議買arm9,因為ram11的資料太少,不適于自學(xué)。或者你們預(yù)算非常充足,可以考慮Cortex-A8/A9的開發(fā)板。
我相信你們學(xué)到這里已經(jīng)有了自己的想法和見解了。到這個過程的時候,知乎上的大佬回答的很詳細和網(wǎng)上的資源也非常豐富,多看看大家寫的共同學(xué)習(xí)。
最后,做下總結(jié)
看懂電路圖、看懂芯片手冊(更牛皮的要求是會自己繪制PCB板,會器件選型,會自己調(diào)試自己設(shè)計板子,直至可以量產(chǎn))
有編寫,移植驅(qū)動的能力
懂內(nèi)核的實現(xiàn)機制
懂C語言,C++等
下面列有詳細的要求,你們自己把握下。
等到找工作的時候,有嵌入式硬件,嵌入式軟件,嵌入式等,甚至可以觸類旁通,要看你們的學(xué)習(xí)水平了, 哈哈哈。
嵌入式硬件要求:
1、熟練使用Allegro Cadence等EDA工具進行硬件原理圖及PCB的設(shè)計,精通PCB布線流程、具備多層板布線經(jīng)驗規(guī)范及信號完整性分析,熟悉至少一種高速通信接口,如PCIE、SRIO、10GBE等。
2、精通嵌入式處理器設(shè)計,具有大型CPU或者DSP的板級硬件設(shè)計調(diào)試經(jīng)驗,例如P系列或者T系列PowerPC,C6678、C6655等DSP,以及FPGA設(shè)計經(jīng)驗者等。
3、負(fù)責(zé)硬件產(chǎn)品的需求調(diào)研、方案設(shè)計,熟練使用各類電子儀器儀表進行測試。
。。。。。。
嵌入式軟件要求:
1、熟悉Linux操作系統(tǒng)內(nèi)核,有Linux內(nèi)核和驅(qū)動開發(fā)經(jīng)驗。
2、精通C/C++開發(fā)語言,shell腳本。
3、精通C語言,能獨立編寫、調(diào)試硬件驅(qū)動程序和功能程序。
4、熟悉多線程的開發(fā),精通ucosII嵌入式系統(tǒng)移植、驅(qū)動和應(yīng)用開發(fā)。
。。。。。。
嵌入式硬件的工作:
嵌入式軟件的工作:
嵌入式的工作:
那你可以以“低端單片機-高端單片機-低端ARM-高端ARM”來學(xué)。我現(xiàn)在就是工作中用STM32,晚上回去自學(xué)ARM9。
學(xué)習(xí)嵌入式Linux一般有兩個方向一個是應(yīng)用層,另一個是底層。
應(yīng)用層是在嵌入式設(shè)備上實現(xiàn)一些功能(此時設(shè)備已經(jīng)將系統(tǒng)跑起來),像網(wǎng)絡(luò)通信,人機交互界面,設(shè)備管理和監(jiān)控等等。
底層要做的是將系統(tǒng)在設(shè)備上跑起來,我們需要移植bootloader、Linux內(nèi)核、文件系統(tǒng),編寫外設(shè)驅(qū)動等。
學(xué)習(xí)嵌入式Linux的話,以我個人經(jīng)歷來說的話,我覺得你最好有單片機開發(fā)的經(jīng)歷這樣你對于底層的知識有更容易理解。
首先選擇一款Linux系統(tǒng)的發(fā)行版作為平臺來學(xué)習(xí)基本的系統(tǒng)操作和一些應(yīng)用層知識,進程間通信,時間編程,網(wǎng)絡(luò)編程等,平臺可以選擇redhat,Ubuntu,debian等。此時我們就可以做一些系統(tǒng)應(yīng)用層的練習(xí),玩一些開源項目。
之后就看你的意愿了,喜歡做應(yīng)用層就繼續(xù)做應(yīng)用層,學(xué)習(xí)一門高級語言,了解下內(nèi)核機制就可以,可以不用更深入的了解底層。
如果要做底層,可以選擇一個一款arm板來學(xué)習(xí)底層,推薦經(jīng)典的s3c2440,資料豐富,容易入門??梢韵葟腷ootloader、內(nèi)核、文件系統(tǒng)的移植開始,然后再學(xué)習(xí)驅(qū)動的編寫。
自學(xué)嗎?有點難哦。需要學(xué)的知識比較多。
當(dāng)年大學(xué)里的時候也折騰過。
首先要了解計算機底層硬件的工作原理、bootloader、操作系統(tǒng)及其裁剪和移植、匯編和c、交叉編譯。然后還要學(xué)習(xí)平臺相關(guān)的知識,比如arm、mips之類。挺多的知識點。
我當(dāng)年也沒折騰出來,工作也沒走這條路。講不太多,希望能對你有幫助。
1)先選擇一個主流的平臺,比如NXP I.MX6UL,買一塊好的廠家(用戶多,資料多、技術(shù)支持好)的開發(fā)板。
2)對照著提供的實驗動手操作
建議
i) 初學(xué)者先做應(yīng)用層,以完成某個應(yīng)用功能為導(dǎo)向。不要過早的陷入到某個具體的不懂的知識點中,因為Linux太復(fù)雜深奧了,你想完全的搞明白一個知識點太難了。
ii) 隨著逐步的熟悉,可以慢慢的去了解和學(xué)習(xí)驅(qū)動、移植、裁剪等相關(guān)內(nèi)容
簡要回答下學(xué)習(xí)嵌入式的方法與步驟。
1、學(xué)習(xí)STM32肯定需要理論結(jié)合實踐,只是紙上談兵肯定不行,因此需要擁有一塊STM32學(xué)習(xí)板和下載器,方便實踐,順便在淘寶上買就行,目前價格也挺便宜的,商家和網(wǎng)上都有很多學(xué)習(xí)資料,足夠大家入門,學(xué)習(xí)STM32可以說是嵌入式開發(fā)行業(yè)的入門,工作中低端項目使用到STM32芯片的機會還是挺多的,比較高端的項目使用ZYNQ系列芯片比較多;
2、安裝開發(fā)環(huán)境,如MDK5,下載驅(qū)動,Cubemx等;
3、推薦原子學(xué)習(xí)資料按照各個功能模塊逐個學(xué)習(xí),推薦資料芯片手冊和中文參考手冊,建議使用HAL庫上手更快,比如學(xué)習(xí)串口、定時器、IIC、SPI、CAN、ADC、DAC、網(wǎng)口、輸入捕獲、PWM、FLASH等;
4、不斷終結(jié)所學(xué)內(nèi)容,形成文檔,找機會將所學(xué)用于實際項目,多交流和實踐,理解工作原理,比如串口,學(xué)習(xí)查詢、中斷、DMA模式發(fā)送和接收數(shù)據(jù),熟悉各個寄存器功能;
5、目標(biāo)是硬件原理圖,PBC,軟件設(shè)計都可以獨立承擔(dān)。
物聯(lián)網(wǎng)越來越火熱,隨著人工智能的發(fā)展,物聯(lián)網(wǎng)行業(yè)將是接下來高薪就業(yè)的趨勢,物聯(lián)網(wǎng)技術(shù)培訓(xùn)課程學(xué)哪些內(nèi)容呢?接下來讓你全方面了解物聯(lián)網(wǎng),學(xué)到時下新潮的技術(shù)。
一、嵌入式高級C語言
linux系統(tǒng),恰如是C語言高級編程,數(shù)據(jù)結(jié)構(gòu)及算法
二、嵌入式設(shè)備及GUI開發(fā)
嵌入式環(huán)境配置與開發(fā)工具學(xué)習(xí),GUI圖形界面開發(fā)
三、嵌入式linux高級程序設(shè)計
嵌入式linux系統(tǒng)編程
四、linux高級網(wǎng)絡(luò)程序設(shè)計
linux高級網(wǎng)絡(luò)編程
五、數(shù)據(jù)庫開發(fā)
數(shù)據(jù)庫開發(fā)
六、C++面向?qū)ο蟾呒壵Z言程序設(shè)計
C++語言高級語言開發(fā)
七、物聯(lián)網(wǎng)
物聯(lián)網(wǎng)開發(fā)
八、CotexA53linux平臺驅(qū)動開發(fā)
物聯(lián)網(wǎng)開發(fā)
物聯(lián)網(wǎng)開發(fā)學(xué)科實戰(zhàn)項目內(nèi)容包括:
1、智能家居項目
2、智能人臉識別項目
3、RFID智能門禁項目
4、多媒體播放項目
5、智能手機設(shè)計項目
6、智慧教室項目
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答