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