嵌入式,當(dāng)我第一次、第二次、第n次聽(tīng)到這個(gè)詞的時(shí)候,我也很難理解它的意思,對(duì)它的理解只在學(xué)習(xí)的過(guò)程。
還記得第二個(gè)學(xué)期上C語(yǔ)言的課,第一次接觸這種東西,難以接受、難以理解,因?yàn)槎疾恢烙盟茏鍪裁。到學(xué)期末買了一塊51單片機(jī)開(kāi)發(fā)板,這個(gè)東西太好玩了,從此至今我的嵌入式學(xué)習(xí)也開(kāi)始沒(méi)日沒(méi)夜了。買了51開(kāi)發(fā)板后,終于到了C語(yǔ)言的用處,那時(shí)候太瘋狂,一個(gè)星期就把C51的實(shí)驗(yàn)做了一遍,但還是不知道單片機(jī)是什么,用來(lái)做什么。只能說(shuō)了解了C語(yǔ)言,沒(méi)有寫到十萬(wàn)行的C不能說(shuō)會(huì)C,不是會(huì)C語(yǔ)法就是會(huì)了。寫C是要用腦子的。
有基礎(chǔ)才會(huì)事半功倍,雖然學(xué)51時(shí)不需要太多模電和數(shù)電的基礎(chǔ),但是有了基礎(chǔ)才能學(xué)得更好更快、體會(huì)更深刻。如果數(shù)字電路都學(xué)不好,就說(shuō)明你不合適這個(gè)人專業(yè)。學(xué)習(xí)是自己的,別人也只是給你指點(diǎn)方向,我們剛接觸這些東西入門是比較困難,完事開(kāi)頭難,要堅(jiān)持跨過(guò)這個(gè)門檻。剛開(kāi)始是很多問(wèn)題沒(méi)辦法解釋、沒(méi)有為什么,只有天天對(duì)著它,久了自然就會(huì)明白。會(huì)流水燈、數(shù)碼管,能寫個(gè)電子時(shí)鐘的時(shí)候,對(duì)51來(lái)說(shuō)就可以飛了。
想要有更大的發(fā)展,基礎(chǔ)知識(shí)一定要學(xué)好(模電、數(shù)電、C)。學(xué)數(shù)字電路最終是要能夠看懂芯片手冊(cè),使用芯片設(shè)計(jì)自己需要的功能的電路。CPU它也是一塊數(shù)字集成芯片,只是它比其它邏輯芯片功能強(qiáng)大到無(wú)法比較。因此,CPU也是不難搞的。
入門最好從51開(kāi)始。在眾多微處理器中,51是比較簡(jiǎn)單,也是學(xué)習(xí)的經(jīng)典。如果直接去學(xué)ARM9之類的,那會(huì)非常困難,往往就是學(xué)不下去,即使學(xué)下去了,可能有很多底層的東西不知道。學(xué)51時(shí),不要學(xué)會(huì)了C51差不多就以為學(xué)會(huì)51了,C51學(xué)會(huì)了那A51呢?搞單片機(jī)要會(huì)匯編才是真正的會(huì),要把51學(xué)得徹底才行。
51單片機(jī)徹底篇:
C51 : C語(yǔ)言、基礎(chǔ)實(shí)驗(yàn)、外圍電路設(shè)計(jì)、其它硬件驅(qū)動(dòng)
A51 : 匯編語(yǔ)言、內(nèi)部結(jié)構(gòu)、用C能做的,用匯編也能做到
利用51單片機(jī)的總線外部擴(kuò)展ROM或RAM,結(jié)合其它輔助電路在系統(tǒng)總線上任意掛接設(shè)備及編寫驅(qū)動(dòng)。
對(duì)于CPU,會(huì)使用它的總線,就是已經(jīng)非常了解它了。接下來(lái)就是移植操作系統(tǒng)了。
開(kāi)源嵌入式操作系統(tǒng)內(nèi)核,如UCOS-2、Linux操作系統(tǒng)。Linux太龐大,不適合初學(xué)者。
UCOS-2 才一萬(wàn)多行源代碼,去除注釋和其它,所剩的也不多。把它移植到51上面,剛開(kāi)始做的時(shí)候會(huì)遇到無(wú)數(shù)的問(wèn)題,等你把這寫問(wèn)題都解決了,你就已經(jīng)對(duì)那些東西熟透了,遇到的問(wèn)題都不再是問(wèn)題了。
問(wèn)題解決方法:
我們遇到的問(wèn)題別人早就遇到過(guò),去百度一下就很快有答案了,或者去論壇看看,里面有很多很好的資料和別人的經(jīng)驗(yàn)。網(wǎng)絡(luò)很重要,一定要會(huì)利用它查自己要的東西,如果不會(huì)利用網(wǎng)絡(luò)學(xué)習(xí),等著完蛋吧!
有了前面完美的基礎(chǔ)可以向更高端的ARM、Linux走去了。
當(dāng)我們拿到一個(gè)微處理器,先看它的開(kāi)發(fā)文檔,這部分內(nèi)容要仔細(xì),對(duì)一個(gè)CPU的熟悉程度決定了你的開(kāi)發(fā)水平,在學(xué)習(xí)和工作過(guò)程中很多的開(kāi)發(fā)文檔都是英文,也就是說(shuō)英文水平?jīng)Q定了你的一切。看完開(kāi)發(fā)文檔,對(duì)處理器的架構(gòu)和編程要點(diǎn)了解后,建立開(kāi)發(fā)環(huán)境。
建立開(kāi)發(fā)環(huán)境也是很繁瑣的,開(kāi)發(fā)工具鏈,需要安裝好幾個(gè)軟件甚至更多,要學(xué)會(huì)每個(gè)軟件的配置和用法,這里一定要拿些例子玩玩,玩一段時(shí)間熟悉了開(kāi)發(fā)環(huán)境就可以玩轉(zhuǎn)CPU了。
接下來(lái)又是操作系統(tǒng),都是這個(gè)模式了。
Linux操作系統(tǒng)內(nèi)核學(xué)習(xí):…驅(qū)動(dòng).....編程…移植……等等等等等等等等………………
還可以玩玩QT 之類的東東 、 畫畫PCB刻電路板。
這整個(gè)學(xué)習(xí)和工作過(guò)程是艱難的,內(nèi)容很多,一輩子也學(xué)不玩,簡(jiǎn)要概括了。