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