nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
嵌入式是一個(gè)很流行的開發(fā)模式,前幾年Android還沒出來的時(shí)候那是老火了。這幾年被Android開發(fā)的風(fēng)頭蓋過了。其實(shí)Android的本質(zhì)開發(fā)也是嵌入式開發(fā),只不過人家Goolge強(qiáng)悍,屏蔽的硬件差異,統(tǒng)一的開發(fā)工具,讓大家都能輕輕松松開發(fā)軟件。開發(fā)一般App java就搞定了,但是要開發(fā)高性能游戲等用java開發(fā)就有點(diǎn)跟不上效率了,但Android有jni開發(fā),這個(gè)就完全跟嵌入式開發(fā)一樣了,只是一些調(diào)用方式跟傳統(tǒng)的嵌入式開發(fā)有些不同。
嵌入式開發(fā)首先必備技能c/c++, 沒有之一。c/c++即能很好的跟底層硬件打交道,程序執(zhí)行效率那也是剛剛的;A(chǔ)的東西,那是一定要學(xué)扎實(shí),沒有基礎(chǔ), 那都是花把勢。所以嵌入式學(xué)習(xí)必要學(xué)習(xí)c/c++。我們今天的重點(diǎn)不是強(qiáng)調(diào)和闡述如何學(xué)習(xí)基礎(chǔ),如何學(xué)習(xí)c/c++的。所謂基礎(chǔ)是前提,有前提的后面的才有保障。
學(xué)習(xí)嵌入式有兩個(gè)方向,一是硬件方向,一個(gè)是軟件方向。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
硬件方向:
第一步: PCB設(shè)計(jì),拿個(gè)芯片解決方案公版改改電路,換換零件,設(shè)計(jì)自己的電路,做自己的產(chǎn)品。
第二步: SOPC技術(shù),一般為FPGA,CPLD開發(fā),利用VHDL等硬件描述語言做專用芯片開發(fā),寫出自己的邏輯電路,搞個(gè)簡單的外圍芯片還是可以的。
第三步:整個(gè)arm架構(gòu),學(xué)學(xué)習(xí)習(xí)arm指令,看看芯片手冊,搞搞bootloader。
第四步:玩玩系統(tǒng)移植,寫寫驅(qū)動這個(gè)已經(jīng)上一個(gè)層次了
第五步: SOC設(shè)計(jì),這是硬件設(shè)計(jì)的核心技術(shù):芯片設(shè)計(jì)。能做到這步,已經(jīng)不屬于平凡的技術(shù)人員。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
軟件方向:
嵌入式的核心是什么,軟件。系統(tǒng)驅(qū)動就那些,相對來說已經(jīng)趨于穩(wěn)定,軟件才是硬件的靈魂。那么學(xué)嵌入式到底要學(xué)些什么呢?又啰嗦一遍,嵌入式軟件開發(fā)要學(xué)習(xí)c/c++,除了基礎(chǔ)語言開發(fā)我們還需要學(xué)習(xí)掌握很多東西。
1、會玩linux系統(tǒng)
? ?linux系統(tǒng)博大精深。要想會玩那也是需要下工夫的。基本命令會不會,簡單腳本能不能寫。
2、調(diào)試手段
? ?說道這個(gè)也是一個(gè)重要指標(biāo),嵌入式開發(fā)不同于pc開發(fā),在pc上斷點(diǎn)跟蹤代碼什么的都十分方便,在嵌入設(shè)備上就比較麻煩了,串口,文件等這些是我們常用的調(diào)試手段,找問題基本上是看打印輸出。
3、環(huán)境配置
? 嵌入式開發(fā)要想順利,配置各種環(huán)境也是必需,沒環(huán)境搞啥!學(xué)嵌入式開發(fā)要不停的折騰,環(huán)境配置雖然是個(gè)力氣活,沒它你還真干不了活。
4、開源移植
?為什么它也是嵌入式學(xué)習(xí)必備,前人搞了好多開源的項(xiàng)目,我們拿來為我所用,不僅能加快開發(fā),還能學(xué)習(xí)和借鑒很多東西,讓自己快速成長。好多優(yōu)秀開源項(xiàng)目。你去弄了學(xué)習(xí)了,你就會懂的。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
本文屬原創(chuàng),拒絕轉(zhuǎn)載,謝謝!
如果對編程感興趣,想了解更多的編程知識,解決編程問題,以及入門指導(dǎo),幫你解決編程 中遇到的困惑,我們這里有java高手,C++/C高手,windows/Linux高手,android/ios高手,請大家關(guān)注微信公眾號:程序員互 動聯(lián)盟或者coder_online