本人大學學的是電子信息科學與技術專業(yè),其實這個專業(yè)和嵌入式沒有多大的關系,要說有關系就是簡單的講了下C語言語法,學完之后還不知道什么是C語言,只記住了,char,int,string等占幾個字節(jié),if, for, while循環(huán)什么的,感覺也就能算一些小學就會的題目,全國計算機等級二級也就糊涂的過了。我這個專業(yè)沒學過C++,一開始不知道什么是向對象,什么叫面向過程,這可能讓大家笑話了。不過這說的是實話,大學的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。
在大一的時候就聽學長說,單片機很難學,在沒事的時候就從圖書管借了本關于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當我把51的結構看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結構圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結構也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學習51芯片,是為了以后的打基礎,知道是怎么通過配置寄存器來實現功能。
大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《AVR單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。
大學也聽說過嵌入式這個詞,不過不太明白是什么意思,09年的時候從網上找到中嵌視頻,有四張DVD(大約13G),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發(fā)板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用XP習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區(qū),所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰(zhàn)勝了擔心,買了張redhat 9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。
所以我認為,買一個開發(fā)板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。
后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機啊。
如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構嵌入式學習心得體會5篇心得體會。
大三下學期開始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學院通信專業(yè),當時就是想一定要上個好學校好專業(yè),也沒想太多,結果考了的成績差了點,沒有被錄取,也不想調劑一個二流的學校,然后就參加工作了,工作中每天都用的到開發(fā)板,當我看到一個小板上還可以跑系統的時候感覺很不可思議,以為要很大工程。后來邊工作邊學習,每天都要看電腦看到眼發(fā)疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進步
閑話有點多了,說了很多都是自己大學那點破事。
聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
首先,嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式有如下幾個突出的有點1.系統內核小,2專用性強,3系統精簡4高實時性OS5嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行,6嵌入式系統需要開發(fā)工具和環(huán)境。
嵌入式系統是近幾年才風靡起來的,但是這個概念并非新近才出現。從20世紀七十年代單片機(最早的單片機是Intel公司的 8048,出現在1976年)的出現到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應用,嵌入式系統已經有了近30年的發(fā)展歷史。經過30年的發(fā)展,嵌入式技術已經日趨成熟,在中國嵌入式機一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統無疑是當前最熱門最有發(fā)展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。
嵌入式系統是軟硬結合的學科,通常有兩類人會去專研嵌入式:一類是學電子工程、通信工程等偏硬件專業(yè)的,另一類是學軟件、計算機專業(yè)出身的人,主要從事嵌入式操作系統和應用軟件的開發(fā)。我是軟件專業(yè)的學習嵌入式,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。嵌入式應用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統,POS網絡及電子商務,環(huán)境工程與自然,機器人,機電產品方面應用等方面。其中目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優(yōu)勢。例外還有很多地方用到了嵌入式系統,最近飛利浦和ARM共同推出32位RISC嵌入式控制器,適用于工業(yè)控制,采用最先進的0.18微米CMOS嵌入式閃存處理技術,操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領域中對最終用戶而言是一套極具成本效益的解決方案。
現在的嵌入式工作是越來越盛行,而這方面的人員卻是越來越少,所以學習嵌入式是解決找工作難的一個比較有效的途徑。因為我開始踏上學習嵌入式的道路。聽別人說嵌入式ARM相比于其他的嵌入式FPGA,DSP等都要難點,而且學習的內容量也是比較多。因此在學習嵌入式ARM的初級階段是隨處碰壁,每天都在遭受打擊,例如在移植bootloader時,雖然按照網上的一些方法移植成功了,但只知道復制和粘貼要修改的代碼,卻不知道為何要這么做。我覺得這樣的學習態(tài)度是不對的,學習不是只求結果,而是要注重解決問題的過程!為了學習嵌入式Linux我也在網上查閱了很多的書籍,還下載了很多的視頻,但都不是很讓人如意。它們大多是講的很淺顯,都是泛泛之談,沒有講到最核心的東西。到了最后是浪費了我們學習者的時間和精力。之后看見師兄有一本韋東山老師編輯的《嵌入式Linux應用開發(fā)完全手冊》,我就借了幾天看了看,發(fā)現韋老師對嵌入式Linux的極其深度的分析,讓我一下子找到了能帶我入門的一本書!并且還有配套的視頻教學更是講解地非常到位,將教材和視頻相互配合的學習,更加大大的提供了學習效率,尤其是視頻上講解的內容,都是韋東山老師自己親自授教,完全沒有按照教材上的內容一一讀出來,而是根據內核代碼分析的教我如何編寫自己的代碼,尤其是在Linux內核中占比例最重的一部分—內核驅動時,更是讓我知道用戶是如何通過應用程序來訪問底層硬件的,解決了我長久以來都無法攻克的難題!!例如在編寫LCD驅動時,我對于書上LCD硬件工作原理不是理解的很透徹,通過觀看韋東山老師的第二期視頻中的“LCD驅動程序”,老師就像是站在我面前,在屏幕上用電子筆細細給我講解,寫出更加形象的LCD的硬件驅動,重要的是在整個視頻中老師都沒有按著教材念,而是一個教學經驗豐富的老師在給同學們授課一樣。編寫代碼也是親自編寫,沒有完全復制別人的代碼,編寫的同時不斷的說明每條語句的作用、編程思想和設計程序的經驗,還有閱讀大量代碼的技巧!在視頻中老師教會了許多其他書本中沒有提及到的重要知識。
學期開始,我們開始學習《嵌入式系統及應用》,由于初次接觸嵌入式系統,感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題后,我就像熱鍋上的螞蟻,一個字“急”。最后實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。
嵌入式系統本身是一個相對模糊的定義,一個手持的MP3和一個PC104的微型工業(yè)控制計算機都可以認為是嵌入式系統??傮w來說,嵌入式系統是“用于控制,監(jiān)視或者輔助操作機器和設備的裝備”。一個典型的桌面Linux系統包括3個主要的軟件層---linux內核、C庫和應用程序代碼。內核是唯一可以完全控制硬件的層,內核驅動程序代表應用程序與硬件之間進行會話。內核之上是C庫,負責把POSIX API轉換為內核可以識別的形式,然后調用內核,從應用程序向內核傳遞參數。應用程序依靠驅動內核來完成特定的任務。
在了解了基礎知識之后,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑借自己去摸索練習。其中的困難可想而知。然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的可能我對于嵌入式的知識學習的還是不太多,但是這之外的東西收獲頗豐。它讓我學會了如何通過自己的努力去認知一個新事物,更重要的是端正自己的學習態(tài)度,只有真正下功夫去學習,才能有收獲,正所謂“一份耕耘,一份收獲?!睕]有付出,何談回報呢?再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
當然,在這其中,我也發(fā)現自己的許多不足之處,由于學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以后的學習工作中,我一定會端正自己的學習態(tài)度,一絲不茍的去對待每一件事。只有做好足夠的準備,才能事半功倍!