在忙碌的工作與生活中,寫心得體會能夠幫助我們抽絲剝繭,梳理思路。7.心得體會應該注重實用性和可操作性,讓讀者可以從中獲得有益的啟示和建議。小編為大家整理了一些實用的心得體會范文,希望可以幫助大家提高寫作水平。
當我們通過實驗去學習嵌入式培訓理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶,分享心得體會。下面是本站小編為大家收集整理的嵌入式。
歡迎大家閱讀。
本人大學學的是電子信息科學與技術專業,其實這個專業和嵌入式沒有多大的關系,要說有關系就是簡單的講了下c語言語法,學完之后還不知道什么是c語言,只記住了,char,int,string等占幾個字節,if,for,while循環什么的,感覺也就能算一些小學就會的題目,全國計算機等級二級也就糊涂的過了。我這個專業沒學過c++,一開始不知道什么是向對象,什么叫面向過程,這可能讓大家笑話了。不過這說的是實話,大學的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。
在大一的時候就聽學長說,單片機很難學,在沒事的時候就從圖書管借了本關于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當我把51的結構看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結構圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結構也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學習51芯片,是為了以后的打基礎,知道是怎么通過配置寄存器來實現功能。
大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《avr單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。
大學也聽說過嵌入式這個詞,不過不太明白是什么意思,20xx年的時候從網上找到中嵌視頻,有四張dvd(大約13g),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用xp習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區,所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰勝了擔心,買了張redhat9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。
所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。
后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機啊。
如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構嵌入式學習心得體會5篇心得體會。
閑話有點多了,說了很多都是自己大學那點破事。
聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
首先,嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式有如下幾個突出的有點1.系統內核小,2專用性強,3系統精簡4高實時性os5嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行,6嵌入式系統需要開發工具和環境。
嵌入式系統是近幾年才風靡起來的,但是這個概念并非新近才出現。從20世紀七十年代單片機(最早的單片機是intel公司的8048,出現在1976年)的出現到今天各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。經過30年的發展,嵌入式技術已經日趨成熟,在中國嵌入式機一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。
其次,嵌入式系統無疑是當前最熱門最有發展前途的it應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。
嵌入式系統是軟硬結合的學科,通常有兩類人會去專研嵌入式:一類是學電子工程、通信工程等偏硬件專業的,另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。我是軟件專業的學習嵌入式,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。嵌入式應用在很多方面,具體的可以分為工業控制,交通管理,信息家電,家庭智能管理系統,pos網絡及電子商務,環境工程與自然,機器人,機電產品方面應用等方面。其中目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優勢。例外還有很多地方用到了嵌入式系統,最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業控制,采用最先進的0.18微米cmos嵌入式閃存處理技術,操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業領域中對最終用戶而言是一套極具成本效益的解決方案。
學期開始,我們開始學習《嵌入式系統及應用》,由于初次接觸嵌入式系統,感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題后,我就像熱鍋上的螞蟻,一個字“急”。最后實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。
嵌入式系統本身是一個相對模糊的定義,一個手持的mp3和一個pc104的微型工業控制計算機都可以認為是嵌入式系統??傮w來說,嵌入式系統是“用于控制,監視或者輔助操作機器和設備的裝備”。一個典型的桌面linux系統包括3個主要的軟件層---linux內核、c庫和應用程序代碼。內核是唯一可以完全控制硬件的層,內核驅動程序代表應用程序與硬件之間進行會話。內核之上是c庫,負責把posixapi轉換為內核可以識別的形式,然后調用內核,從應用程序向內核傳遞參數。應用程序依靠驅動內核來完成特定的任務。
在了解了基礎知識之后,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑借自己去摸索練習。其中的困難可想而知。然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的可能我對于嵌入式的知識學習的還是不太多,但是這之外的東西收獲頗豐。它讓我學會了如何通過自己的努力去認知一個新事物,更重要的是端正自己的學習態度,只有真正下功夫去學習,才能有收獲,正所謂“一份耕耘,一份收獲?!睕]有付出,何談回報呢?再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
當然,在這其中,我也發現自己的許多不足之處,由于學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以后的學習工作中,我一定會端正自己的學習態度,一絲不茍的去對待每一件事。只有做好足夠的準備,才能事半功倍!
嵌入式技術是近年來迅速發展的一門技術,它在各個領域都有著廣泛的應用,特別是隨著物聯網技術的迅速發展,嵌入式技術也得到了進一步的發展和應用。我在學習嵌入式技術的過程中,積累了不少心得體會,接下來我就來分享一下我的看法和經驗。
一、嵌入式系統是我國未來的發展方向。
近年來,我國芯片大國戰略已經開始啟動,嵌入式系統已經成為了我國的重點發展方向之一。從智能手機到智能家居,從商業物聯網到消費電子,嵌入式系統的應用已經蔓延到了方方面面,成為了現代社會不可或缺的一部分。在這個時代,掌握嵌入式系統的技術是非常重要的,對于我們的未來職業規劃也將起到不小的作用。
二、多實踐,多測試。
在學習嵌入式技術的過程中,我們會涉及到很多的實際應用,這也是我們學習嵌入式技術的重要途徑之一。只有通過實踐,我們才能真正掌握這門技術,理解其中的原理和應用。測試同樣也非常重要,只有經過全面的測試,我們才能夠發現其中存在的問題,并及時解決,從而提高我們代碼的可靠性和安全性。
三、加深對編程語言的理解。
嵌入式系統的編程語言有很多種,包括C語言、C++、匯編等。在學習這些語言的過程中,我們要加深對其原理和規范的理解,同時也要不斷的進行實際應用和測試。只有通過理解這些編程語言的語法和特性,我們才能更好的應用它們來開發嵌入式系統。
四、了解硬件系統。
嵌入式系統與硬件系統之間有著緊密的聯系,了解硬件系統的知識也是我們學習嵌入式技術的重要組成部分。我們需要了解電路原理圖、PCB制作、芯片架構等相關知識,才能夠更好的完成嵌入式系統的設計和開發。
五、和團隊合作。
團隊合作是嵌入式系統開發過程中不可或缺的一部分。在團隊合作中,我們需要協作完成各自的任務,互相溝通問題,共同解決問題,為項目的順利完成做出自己的貢獻。在這個過程中,我們也可以學習到很多與人溝通、協作的技巧,這對我們以后的職業發展也是非常重要的。
總之,學習嵌入式技術需要我們有著堅定的信心和不懈的努力,需要我們不斷的進行實踐和測試,在學習過程中不斷的總結經驗和教訓,以便提高我們的技術水平。同時,我們也需要善于溝通和協作,團隊合作也是我們學習嵌入式技術過程中的一個必要環節,希望大家在學習嵌入式技術的過程中能夠取得更好的成效!
20xx年8月我參加了學校安排的課題實訓,基地在北京,學院安排我們集體坐火車一同前去,浩浩蕩蕩的隊伍開始出發了。剛來北京的時候,映入眼綿的都是高樓大廈,一直想到的地方終于到了,好多以前的同學聽說我要去北京實訓都很羨慕不已,我自己也隱隱感到自豪。
我參加的課題實訓是嵌入式方向的,開課的內容主要是嵌入式開發方面的,c語言,數據結構,linux基本操作,網絡編程,操作系統和匯編語言,這些都是嵌入式不可缺少的。每個專業技能都決定了你以后找工過。我們班分了很多小組,每組都有小組長,小組長直接對我們負責。教課老師很認真,都是從很基礎的開始講;同學們聽課也很認真,由于代碼操作比較多,鍵盤的聲音源源不斷的'在響。好久沒有感覺到這種濃重的學習氣氛了,而在這緊張而充實的學習氛圍中我獲益匪淺,感受頗多。
授課過程中老師們也傳授了一些找工作方面的經驗,比如簡介的樣式和寫法,面試中的一些著裝,禮貌用語和技巧,對此基地的老師還精心的為我們安排了一場模擬面試,在其中我們學到了很多有關于面試方面的經驗。
通過這幾個月的實訓我學到了很多,同時也讓我們意識到我們要學的更多。從程序的設計到編寫、畫圖、調試、修改、完善、到最后的實訓報告,每個人都付出了時間和精力去做好自己的任務幫助隊友,所以團隊的合作和隊友之間的相互協助非常重要。通過實訓讓我們更深一步的對自己的專業,對自己的能力,對自己所學的有正確的認識,并且能在以后的學習工作中不斷提高和完善自己。特別是講c語言和進程通信中老師給了我們每個小組的幾個小項目,讓我學到了更多項目經驗,這在學校之前是沒有的。這次實訓也碰到了些問題,比如項目文檔的寫法,代碼的規范,流程圖的畫法,這些都有講究,在老師和同學的幫助下,我不斷的提高了在這些方面的學習。
生活上班主任郭老師和王老師對我們關懷備至,讓我們沒有感覺在外面的那種不適感,同學們也互幫互助,所以生活上大致沒什么問題,這讓我們更好的去學專業。很感謝學校有這樣的實訓安排。
總的來說,這次實訓還是比較成功的,無論是個人動手能力還是團隊協作能力都得到了很好的鍛煉。在實訓過程中老師也交給我們很多簡單實用的技巧。我們也學到了,做好做對一個項目固然重要,同時美觀程度也是必不可少的,無論是從參觀者的角度還是自己看的角度都很重要。
上嵌的嵌入式培訓,給我最大的感受就是:充實與緊張。充實是因為自從培訓以來,我從早到晚的課程排的滿滿的,時間安排上的充實;緊張是因為上嵌的學習氛圍比較緊張,因為我們的基礎水平和能力有所差別,所以說,我感到在學習上有一種你追我趕的氛圍,雖然現在體現的還不是那么的強烈。
上嵌的課程安排緊湊,每節的課程目標明確,注重我們的時間動手能力。在這一點上,培訓比大學里純粹的講授要好的多。
剛開始,學習linux的時候,雖然我們剛學習過,但是一點也不輕松;安裝虛擬機的時候,由于版本和系統的原因,我就裝了三四遍;隨著課程的深入,我感到有一點吃緊,有一些東西雖然弄懂了,但是在實現的時候沒能很好的實現出來;linux課程的最后,朱老師教我們用開發板,第一次沒明白,講了第二次之后才弄清楚整個過程。還有一點感受比較深的是,上課時一定要跟著老師的節奏進行,并且要重視每一個老師講的重點和細節,因為稍不留神,忽視了某一個細節后,就會導致很大甚至很嚴重額錯誤。
第二次上課前,我預習了一下,感覺上課起來就比較輕松了。學習c語言最大的感觸就是要多動手,當然這要建立在你理解程序的情況下。先編寫一些簡單的程序實現簡單的功能,然后,在此基礎上進行添加修改,來加強我們的動手編程能力。
前一段的學習,雖然感覺比較累,比較辛苦,但是,我認為還是比較值得的。先有苦才會有甜,先有付出,然后才會有收獲。fighting!
嵌入式系統技術是電類專業技術的.載體和核心基礎技術。作為本專業的學生當然知道嵌入式的重要性,但在學校接受的嵌入式學習太少,滿足不了自己的需要。一開始也是抱著書本自己鉆研,但發現很多東西自己很難理解,不僅浪費了時間也影響了自己學習本專業的信心。
后來看到了牛耳教育有關于嵌入式系統學習的培訓課程,抱著試一試的心態報了名。但是學習一段時間以后,我發現,牛耳的每一位授課老師不止是有教學經驗,更有著豐富的軟件公司項目開發經驗。每次授課,老師不僅會對知識進行系統性的講解還會結合自己的實際開發經驗進行演示,綜合了大量的實際案例和操作以幫助我們避開技術方面的“雷區”。他們懂得如何去教,該從哪里入手,并且有針對性的對每位學生做出正確的引導。這種理論與實踐相結合的教學方式,對于我這種基礎知識薄弱接觸時間又短的人來說實在是大有幫助,讓我對問題的理解和知識的記憶更加的深刻。
學習的過程,是一個成長的過程,是一個為實現自我價值的準備過程。就嵌入式這行來說,短暫的半年的時間,剛踏入充滿向往的領域--嵌入式行業的我還是個很“菜”的小角色,但是,值得慶幸的是,牛耳所學可以說是前進的保障,是工作的基石。在牛耳不僅能學到相應的基礎知識,更能提高分析問題、解決問題的基本能力,還有分享各位培訓老師的成功經驗,這些都對我的學習乃至于工作產生了重大的影響,甚至可以說是我人生的一筆財富。
然后談一談我對學習態度的一點看法。嵌入式學習,是比較耗時的,前期需要很多知識做鋪墊,有很多人在這個過程中走了不少彎路,于是開始失去耐心、失去信心,以至最終放棄學習。但是我想告訴大家的是,學習嵌入式就一定要有耐心和毅力,不能急躁,按照課程的安排,自己多做一些練習并且總結出經驗,當經驗積累到一定的程度你就會發現,嵌入式并沒有你想象中的那么難學。
我覺得這次嵌入式系統的學習非常的值得。在這段學習的時間中我收獲了很多也感悟了很多。對嵌入式行業我有了更加深入的了解,對自己今后的職業規劃以及未來的發展方向也有了更加明確的目標。
既然選擇了嵌入式,便要風雨兼程。路,在腳下延伸,該何去何從心中自知。沒有合適與不合適,只有做與不做。開始你可以一無所知,但在學習后, 你必須得有所收獲。抓住現有的平臺,努力學習,否則你還是從前的你,沒有任何收獲。別人怎么看你并不重要,重要的是你是否知道自己要什么,并且該如何努力去得到它。
最后誠摯地感謝**教育為所有想學習或者想從事嵌入式這個職業的朋友提供這樣一個好的學習的平臺,非常感謝牛耳的各位老師在我學習過程中的譐譐教誨與不遺余力的指導!
這學期才接觸嵌入式系統感覺還稱不上入門,我通過學習知道了嵌入式的發展前景很大,各個領域都用到了嵌入式,學好嵌入式不愁沒飯吃。
廣義上講,凡是帶有微處理器的專用軟硬件系統都是嵌入式系統。如各類單片機和dsp系統。從狹義上講,那些使用嵌入式微處理器構成獨立系統,具有自己操作系統,具有特定功能,用于特定場合的專用軟硬件系統稱為嵌入式系統。嵌入式系統由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設備內部。
理解“嵌入”的概念主要從三個方面上來理解。
1、從硬件上,將基于cpu的處圍器件,整合到cpu芯片內部,比如早期基于x86體系結構下的計算機,cpu只是有運算器和累加器的功能,一切芯片要造外部橋路來擴展實現,象串口之類的都是靠外部的16c550/2的串口控制器芯片實現,而目前的這種串口控制器芯片早已集成到cpu內部,還有pc機有顯卡,而多數嵌入式處理器都帶有lcd控制器,但其種意義上就相當于顯卡。比較高端的arm類intelxscale架構下的ixp網絡處理器cpu內部集成pci控制器(可配成支持4個pci從設備或配成自身為cpi從設備);還集成3個npe網絡處理器引擎,其中兩個對應于兩個mac地址,可用于網關交換用,而另外一個npe網絡處理器引擎支持dsl,只要外面再加個phy芯片即可以實現dsl上網功能。ixp系列最高主頻可以達到1.8g,支持2g內存,1g×10或10g×1的以太網口或febrechannel的光通道。ixp系列應該是目標基于arm體系統結構下由intel進行整合后成xscale內核的最高的處理器了。
2、從軟件上前,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到rom中。而在定制操作系統內核時所選擇的應用程序組件就是完成了軟件的“嵌入”,比如wince在內核定制時,會有相應選擇,其中就是wordpad,pdf,mediaplay等等選擇,如果我們選擇了,在ce啟動后,就可以在界面中找到這些東西,如果是以前pc上將的windows操作系統,多半的東西都需要我們得新再裝。
3、把軟件內核或應用文件系統等東西燒到嵌入式系統硬件平臺中的rom中就實現了一個真正的“嵌入”。。
嵌入式系統分為4層,硬件層、驅動層、操作系統層和應用層。
1、硬件層,是整個嵌入式系統的根本,如果現在單片機及接口這塊很熟悉,并且能用c和匯編語言來編程的話,從嵌入式系統的硬件層走起來相對容易,硬件層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬件的電路圖和自行完成cpld的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉的。但硬件平臺是基礎,增值還要靠軟件。硬件層比較適合于,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有,單片機原理及接口技術、微機原理及接口技術、c語言。
2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導至其它任務不能動行,不懂操作系統內核架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用調用時就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅動人員沒有三、四年功底,操作系統內核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。
驅動層比較適合于電子、通信、自動化、機電一體、信息工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬件層所具備的基礎學科外,還要對數據結構與算法、操作系統原理、編譯原理都要十分精通了解。
3、操作系統層,對于操作系統層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統,或者寫出缺胳膊少腿的操作系統來,這部分工作大都由驅動工程師來完成。操作系統是負責系統任務的調試、磁盤和文件的管理,而嵌入式系統的實時性十分重要。據說,xp操作系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧hopen操作系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應用層,相對來講較為容易的,如果會在windows下如何進行編程接口函數調用,到操作系統下只是編譯和開發環境有相應的變化而已。如果涉及java方面的編程也是如此的。嵌入式系統中涉及算法的由專業算法的人來處理的,不必歸結到嵌入式系統范疇內。但如果涉及嵌入式系統下面嵌入式數據庫、基于嵌入式系統的網絡編程和基于某此應用層面的協議應用開發(比如基于sip、h.323、astrisk)方面又較為復雜,并且有難度了。
通過網上查詢我發現目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業it人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如arm處理器、嵌入式操作系統等),掌握這些新技術的人當然很少。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。我們軟件系的人學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面。對于搞嵌入式軟件的人,最重要的技術顯然是掌握主流嵌入式微處理器的結構與原理,必須掌握一個嵌入式操作系統,必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
然而我們都沒有做過一個嵌入式軟件項目,甚至連嵌入式的開發流程我也不清楚,我只了解了使用簡單工具做一個簡單的實驗。只有去專研才能在嵌入式的領域站住腳,只有知道的比別人多才會更有競爭力。通過網上了解,我查詢了嵌入式的入門和所需要的知識,其中c語言尤為重要,不管是做嵌入式軟件還是硬件開發的人員,對c語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用c語言。其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的;知道了c語言和操作系統之后,再來看看嵌入式系統,我們主要學的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關知識之后才能稱得上嵌入式已經入門了。與嵌入式有關的知識我也學了不少就是不能夠綜合在一起運用,組成原理,數據結構,操作系統,c++,這3門與嵌入式密切相關的學科都系統的學了一遍,但由于長時間沒用到都有點忘記了,從網上得知嵌入式的學習與這些書有很大關系之后,我把嵌入式與以前學過的知識結合起來發現嵌入式的實驗中很多都是共通的,我對嵌入式有了初步的理解。
我以為學習嵌入式應該分為2個部分:軟件和硬件。關于硬件方面我接觸到了數字電路教材和模擬電路方面的知識,但由于沒有嵌入式cpu很難親自動手來實現嵌入式的相關理論;嵌入式入門則需要不斷地實驗與分析,我只在實驗課時做幾個與所給的程序相關的小程序來實現一下;而軟件方面則學過c語言,里面通常的語法曾今熟悉過;我通過下列方法來適應c語言在嵌入式中應用:首先重新翻看了下c的教材,看了些常見的語法,接著在編譯器的角度來看待c,編譯原理我剛學過,其中將高級語言與低級語言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來看待c。嵌入式的核心包括嵌入式操作系統,嵌入式軟件開發平臺及工具以及嵌入式應用軟件。這些決定怎樣才能開發一個好的嵌入式系統。下面談談我了解的嵌入式的相關知識與應用:
首先,嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式有如下幾個突出的有點1.系統內核小,2專用性強,3系統精簡4高實時性os5嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行,6嵌入式系統需要開發工具和環境。
嵌入式系統是近幾年才風靡起來的,但是這個概念并非新近才出現。從20世紀七十年代單片機(最早的單片機是intel公司的8048,出現在1976年)的出現到今天各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。經過30年的發展,嵌入式技術已經日趨成熟,在中國嵌入式機一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。
其次,嵌入式系統無疑是當前最熱門最有發展前途的it應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。嵌入式系統是軟硬結合的學科,通常有兩類人會去專研嵌入式:一類是學電子工程、通信工程等偏硬件專業的,另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。我是軟件專業的學習嵌入式,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。嵌入式應用在很多方面,具體的可以分為工業控制,交通管理,信息家電,家庭智能管理系統,pos網絡及電子商務,環境工程與自然,機器人,機電產品方面應用等方面。其中目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優勢。例外還有很多地方用到了嵌入式系統,最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業控制,采用最先進的0.18微米cmos嵌入式閃存處理技術,操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業領域中對最終用戶而言是一套極具成本效益的解決方案。
那么該如何學好嵌入式我覺得應該從以下幾點入手:
首先c語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發的人員,對c語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用c語言,你說不掌握它可以嗎?至于如何學習c語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,c語言要學到怎么樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念后,就該寫代碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關系,多看看,結合以后的項目經驗,會有更好的理解的。
還有應該學習下linux或者wince下的編程,這些對以后做應用的編程很有幫助,當然,如果做手機的話,那可以學習mtk、塞班、android等操作系統,android是以后發展的趨勢,現在很熱門,android也是基于linux系統封裝的,所以建議先學習下linux。
還有,應該學習下單片機或者arm或者mips,很多人說我沒有單片機的經驗,直接學arm可以嗎?我覺得那完全沒有問題的,當然如果你學習過單片機,那最好不過了,以后學習arm就更簡單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優秀的代碼,比如結合arm芯片手冊學習去學習下uboot的源代碼,了解下最小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源代碼,當然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux代碼早期的版本,比如0.12的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
以上就是我在本學期學習嵌入式后的心得及感想。
本人大學學的是電子信息科學與技術專業,其實這個專業和嵌入式沒有多大的關系,要說有關系就是簡單的講了下c語言語法,學完之后還不知道什么是c語言,只記住了,char,int,string等占幾個字節,if,for,while循環什么的,感覺也就能算一些小學就會的題目,全國計算機等級二級也就糊涂的過了。我這個專業沒學過c++,一開始不知道什么是向對象,什么叫面向過程,這可能讓大家笑話了。不過這說的是實話,大學的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。
在大一的時候就聽學長說,單片機很難學,在沒事的時候就從圖書管借了本關于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當我把51的結構看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結構圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結構也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學習51芯片,是為了以后的打基礎,知道是怎么通過配置寄存器來實現功能。
大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《avr單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。
大學也聽說過嵌入式這個詞,不過不太明白是什么意思,20xx年的時候從網上找到中嵌視頻,有四張dvd(大約13g),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用xp習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區,所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰勝了擔心,買了張redhat9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。
所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。
后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機啊。
如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構嵌入式學習心得體會5篇心得體會。
閑話有點多了,說了很多都是自己大學那點破事。
聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
8月我參加了學校安排的課題實訓,基地在北京,學院安排我們集體坐火車一同前去,浩浩蕩蕩的隊伍開始出發了。剛來北京的時候,映入眼綿的都是高樓大廈,一直想到的地方終于到了,好多以前的同學聽說我要去北京實訓都很羨慕不已,我自己也隱隱感到自豪。
我參加的課題實訓是嵌入式方向的,開課的內容主要是嵌入式開發方面的,c語言,數據結構,linux基本操作,網絡編程,操作系統和匯編語言,這些都是嵌入式不可缺少的。每個專業技能都決定了你以后找工過。我們班分了很多小組,每組都有小組長,小組長直接對我們負責。教課老師很認真,都是從很基礎的開始講;同學們聽課也很認真,由于代碼操作比較多,鍵盤的聲音源源不斷的在響。好久沒有感覺到這種濃重的學習氣氛了,而在這緊張而充實的學習氛圍中我獲益匪淺,感受頗多。
授課過程中老師們也傳授了一些找工作方面的經驗,比如簡介的樣式和寫法,面試中的一些著裝,禮貌用語和技巧,對此基地的老師還精心的為我們安排了一場模擬面試,在其中我們學到了很多有關于面試方面的經驗。
通過這幾個月的實訓我學到了很多,同時也讓我們意識到我們要學的更多。從程序的設計到編寫、畫圖、調試、修改、完善、到最后的實訓報告,每個人都付出了時間和精力去做好自己的任務幫助隊友,所以團隊的合作和隊友之間的相互協助非常重要。通過實訓讓我們更深一步的對自己的專業,對自己的能力,對自己所學的有正確的認識,并且能在以后的學習工作中不斷提高和完善自己。特別是講c語言和進程通信中老師給了我們每個小組的幾個小項目,讓我學到了更多項目經驗,這在學校之前是沒有的。這次實訓也碰到了些問題,比如項目文檔的.寫法,代碼的規范,流程圖的畫法,這些都有講究,在老師和同學的幫助下,我不斷的提高了在這些方面的學習。
生活上班主任郭老師和王老師對我們關懷備至,讓我們沒有感覺在外面的那種不適感,同學們也互幫互助,所以生活上大致沒什么問題,這讓我們更好的去學專業。很感謝學校有這樣的實訓安排。
總的來說,這次實訓還是比較成功的,無論是個人動手能力還是團隊協作能力都得到了很好的鍛煉。在實訓過程中老師也交給我們很多簡單實用的技巧。我們也學到了,做好做對一個項目固然重要,同時美觀程度也是必不可少的,無論是從參觀者的角度還是自己看的角度都很重要。
學期開始,我們開始學習《嵌入式系統及應用》,由于初次接觸嵌入式系統,感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題后,我就像熱鍋上的螞蟻,一個字"急"。最后實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。
嵌入式系統本身是一個相對模糊的定義,一個手持的mp3和一個pc104的微型工業控制計算機都可以認為是嵌入式系統??傮w來說,嵌入式系統是"用于控制,監視或者輔助操作機器和設備的裝備"。一個典型的桌面linux系統包括3個主要的軟件層---linux內核、c庫和應用程序代碼。內核是唯一可以完全控制硬件的層,內核驅動程序代表應用程序與硬件之間進行會話。內核之上是c庫,負責把posixapi轉換為內核可以識別的形式,然后調用內核,從應用程序向內核傳遞參數。應用程序依靠驅動內核來完成特定的任務。
在了解了基礎知識之后,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑借自己去摸索練習。其中的困難可想而知。然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的??赡芪覍τ谇度胧降闹R學習的還是不太多,但是這之外的東西收獲頗豐。它讓我學會了如何通過自己的努力去認知一個新事物,更重要的是端正自己的學習態度,只有真正下功夫去學習,才能有收獲,正所謂"一份耕耘,一份收獲。"沒有付出,何談回報呢?再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
當然,在這其中,我也發現自己的許多不足之處,由于學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以后的學習工作中,我一定會端正自己的學習態度,一絲不茍的去對待每一件事。只有做好足夠的準備,才能事半功倍!
在當今科技發展日新月異的時代,嵌入式系統在人類的生產生活中得到了廣泛的應用。嵌入式系統是由軟件和硬件相交織而成的,能夠完成專用的、完成特定功能的計算機系統。嵌入式系統的開發需要涉及到多種技術,如多種硬件的單片機或嵌入式處理器、驅動開發、軟件設計等等。在學習嵌入式的過程中,我深刻體會到了嵌入式學習的艱辛和付出的努力,但我也更堅定了我一直以來想走嵌入式方向的決心。
我選擇學習嵌入式是因為我對軟件和硬件的交叉領域很有興趣。但是真正開始學習嵌入式后,我才發現嵌入式并不是一個輕松的事情。首先是硬件方面的問題。硬件不像軟件一樣可以通過打印信息或調試工具來定位問題。要查找問題,需要通過各種硬件儀器來進行測試和分析。而且,單片機的各種規格與性能之間有很多差異,對于初學者來說,首先要先了解每個單片機的體系結構,特點和性能規格,這需要花費大量的時間和精力。
第三段:嵌入式學習的實踐經驗。
在嵌入式系統學習的過程中,我犯了很多錯誤。在硬件調試的過程中,我曾經遇到過一些疑難雜癥,例如連線錯誤、外設配置錯誤等等。這時候,我需要重新查看硬件連接,能否發現問題,或者重新編寫完整的軟件代碼。而這同樣是很耗費時間和精力的。所以,在嵌入式系統學習中,精益求精是很重要的,也是最能提高自己開發質量的方法。
嵌入式系統的開發不僅能夠幫助我們制作出自己想象的東西,而且可以將我們的學習成果應用到實際生活中,如家居自動化、物聯網等等。在學習嵌入式到今天,我已經制作了很多小型的嵌入式系統,并將其應用到了自己的實際生活中。
第五段:總結。
總體來說,學習嵌入式的理路并不簡單,需要花費大量時間和精力,所以我希望每一位學生都能夠有耐心、堅持下去,不放棄自己。嵌入式學習需要不斷的對硬件和軟件的深入了解,提升自己的思維能力和實踐能力。只有不斷的努力,才能走出自己的路,實現自己的夢想。
我們學習的課本是嵌入式系統應用教程。我學習的體會是這樣的:
開始時,由于是剛剛入門,對老師說的好多東西很好奇,列如c語言也是新鮮的,不過不太懂什么意思。但是慢慢的,了解深入后讓我有了更深的感觸和體會。在嵌入式的學習過程中,讓我了解了什么是嵌入式系統。它就是以應用為中心,以計算機技術為基礎,軟硬件可定制,適用于不同應用場合,對功能、可靠性、成本、體積、功耗有嚴格要求的計算機系統。他一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統、用戶應用程序四個部分組成,用于實現對其他設備的控制、監視或管理功能。嵌入式系統已經應用于科學研究、工業控制、軍事技術、交通通信、醫療衛生、消費娛樂等領域,人們日常使用的手機、pda、汽車、智能家電、gps等均是嵌入式系統的典型代表。
在學習命令的過程中,只要你認真的看著老師操作還有認真聽著他講,你就會發現有些命令的操作還是很簡單的,不過在操作的過程中,有時也會遇到困難,有時你按照書上學習的例子,命令輸入終端時會出現你不想要的結果,也就是錯誤的結果。這是問問旁邊的同學或是懂得的同學就可以解決了。
在對于這部分的學習中,讓我知道了命令對于嵌入式的重要性。它是linux的重要內容,linux中所有的功能都是通過命令執行。在實際應用中,為了減少系統開銷,經常不使用圖形界面,此時,對系統的所有操作都需要以命令方式來執行。在嵌入式系統開發過程中,由于目標機的性能和配置比較低,因此,一般情況下標機僅具有命令窗口而沒有圖形界面,對目標機的所有操作都通過命令來實現。還有的那就是進一步學習與嵌入式系統開發相關的linux的服務,他們的啟動、設置等的操作和應用。而在學習之中,我們主要介紹的是嵌入式系統中開發工程使用的tftp、telent和nfs服務。第一個實現的是上機位與下機位之間文件的傳輸、無磁盤網絡設備的啟動等功能;第二個實現的是遠程登錄功能;第三個實現的是網絡文件系統功能。
從以上的內容之中,并不難感受到我們的學習過程是由淺入深的,這對于我們的學習也有了較好的幫助。當然,我們學習的不僅僅是這么幾個內容,其中還有相關的實驗內容。在我們基礎的學習過程之中,我有了這么一點的感受,總的來說就是概念加專業名詞還有介紹加實驗。不過你絕對不能小看那些概念和介紹,它對我們有著很重要的指導作用哦!實驗那就更不用說了,它提高我們的動手能力,在實驗的過程中還能讓你更加理解書中的理念,這就是我學習嵌入式的感受。
學習是可貴的,培訓是精彩的。通過這次可貴而精彩的培訓學習,我們向嵌入式邁進了一步。感嘆與憧憬之余,我想我們只有靠自己的聰明與才智、努力與勤奮去追求我們的美好生活。
學期開始,我們開始學習《嵌入式系統及應用》,由于初次接觸嵌入式系統,感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題后,我就像熱鍋上的螞蟻,一個字"急"。最后實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。
嵌入式系統本身是一個相對模糊的定義,一個手持的mp3和一個pc104的微型工業控制計算機都可以認為是嵌入式系統??傮w來說,嵌入式系統是"用于控制,監視或者輔助操作機器和設備的裝備"。
一個典型的桌面linux系統包括3個主要的軟件層———linux內核、c庫和應用程序代碼。內核是唯一可以完全控制硬件的層,內核驅動程序代表應用程序與硬件之間進行會話。內核之上是c庫,負責把posixapi轉換為內核可以識別的形式,然后調用內核,從應用程序向內核傳遞參數。應用程序依靠驅動內核來完成特定的任務。
在了解了基礎知識之后,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑借自己去摸索練習。其中的困難可想而知。
然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的??赡芪覍τ谇度胧降闹R學習的還是不太多,但是這之外的東西收獲頗豐。
再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
當然,在這其中,我也發現自己的許多不足之處,由于學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以后的學習工作中,我一定會端正自己的學習態度,一絲不茍的去對待每一件事。只有做好足夠的準備,才能事半功倍!
首先我聲明,我是基于嵌入式系統平臺級設計的,硬件這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。
對于硬件來講有幾個方向,就單純信號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了模擬電路數字化,比如手機的modem射頻模塊,都采用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模塊,只要達到一般程度可能月薪都在15k以上。
另一類就是數字部分了,在大方向上又可分為51/arm的單片機類,dsp類,fpga類,國內fpga的工程師大多是在ic設計公司從事ip核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個ic前端驗證工程師,也要搞上幾年才能勝任。dsp硬件接口比較定型,如果不向驅動或是算法上靠攏,前途也不會太大。而arm單片機類的內容就較多,業界產品占用量大,應用人群廣,因此就業空間極大,而硬件設計最體現水平和水準的就是接口設計這塊,這是各個高級硬件工程師相互pk,判定水平高低的依據。而接口設計這塊最關鍵的是看時序,而不是簡單的連接,比如pxa255處理器i2c要求速度在100kbps,如果把一個i2c外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在總線接lcd,但為什么這種lcd就不能掛在arm的總線上,還有arm7總線上可以外接個winband的sd卡控制器,但為什么這種控制器接不到arm9或是xscale處理器上,這些都是問題。因此接口并不是一種簡單的連接,要看時序,要看參數。一個優秀的硬件工程師應該能夠在沒有參考方案的前提下設計出一個在成本和性能上更加優秀的產品,靠現有的方案,也要進行適當的可行性裁剪,但不是胡亂的來,我遇到一個工程師把方案中的5v變1。8v的dc芯片,直接更換成ldo,有時就會把cpu燒上幾個。前幾天還有人希望我幫忙把他們以前基于pxa255平臺的手持gps設備做下程序優化,我問了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間采用的spi接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程序的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個優秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計pcb繪制,邏輯設計這塊。這是指的硬件設計工程師,從上面的硬件設計工程師中還可以分出ecad工程師,就是專業的畫pcb板的工程師,和emc設計工程師,幫人家解決emc的問題。硬件工程師再往上就是板級測試工程師,就是c語功底很好的硬件工程師,在電路板調試過程中能通過自已編寫的測試程序對硬件功能進行驗證。然后再交給基于操作系統級的驅動開發人員。
大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《avr單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。
大學也聽說過嵌入式這個詞,不過不太明白是什么意思,20xx年的時候從網上找到中嵌視頻,有四張dvd(大約13g),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用xp習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區,所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰勝了擔心,買了張redhat9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機埃如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構。
大三下學期開始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學院通信專業,當時就是想一定要上個好學校好專業,也沒想太多,結果考了的成績差了點,沒有被錄取,也不想調劑一個二流的學校,然后就參加工作了,工作中每天都用的到開發板,當我看到一個小板上還可以跑系統的時候感覺很不可思議,以為要很大工程。后來邊工作邊學習,每天都要看電腦看到眼發疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進步。
閑話有點多了,說了很多都是自己大學那點破事。
聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
下面給嵌入式初學者一些自己的我個人建議。
c語言,關于c語言要知道基本的語法,什么是結構體,什么是共用體,有什么區別,不用強記一些二級考的東西,因在實際中用的很少。
c++要知道什么是類,怎么定義,繼承,接口,要深刻理解,當然基本語法也是必不可少的。
操作系統原理也應該知道基本的原理的,我記得我大學沒這個課還是去電信學院蹭別的專業的課呢,后來學習發現很多的東西都是在這個課上學到的。什么時間片啊,任務調度啊,都是在那里知道的。
linux基本命令的使用(vi編輯器必須會用,因為在終端改文件的時候只能用這個),我們現在很多的人都習慣用鼠標了,很少用到命令,我們學習嵌入linux可要改改這個習慣了,linux用命令操作一是效率高,二是功能非常強大,遠非圖形界面能比的了的,其實我們用圖形界面的操作都要轉化為命令傳給硬件的。
linux文件系統的管理要清楚,哪個目錄存放是什么東西,有什么用,文件權限管理等shell編程也要了解一些,在這給大家推薦一個教程,周朝劍的shell編程,也就七八講吧,講的很全面。初學者看前4講就可以了。
linux設備驅動的架構要了解,初學者可以以飛凌的ok6410開發板上的led驅動分析一下,結合原理圖和linux設備驅動相關書籍把每一行代碼都分析明白。關于驅動給大家推薦一本書《linux社備驅動程序》中國電力出版社出版的,很經典的,初學者看可能看不太明白,不過要堅持看,最次也得把前6章看完了。
2看書不要希望一次就會,一次就明白是什么意思,也不要死記硬背,看不明白也沒關系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的`,忘記也就忘記了。還有,不要直接閱讀linux內核源代碼,看一些自己把頭撞破也想不明白的事,會打擊初學者的積極性,要循序漸進,今天學個做個led,明天做個串口,后天說不定就做硬件編解碼了。
3、你可以不接受培訓,但是不能不買開發板。
如果你想學習嵌入式一定要買塊學習板,現在的開發板很便宜了,給我們初學者減輕了很多經濟負擔??丛俣嗟囊曨l,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題找到原因,解決問題,只有這樣才能學到東西,記得我第一次寫led的驅動,想自己試一下,網上也有人寫過相關的代碼,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。
還有關于培訓,現在的培訓機構很多,講的也不錯,老師也很好,但是有一個問題,太集中了,而且學生動手的機會也不太多,記得我們公司還招了一個在北京某個培訓機構培訓半年的員工呢,花了一萬多,來了之后也沒感覺有多高,問他都學了什么,也就是我前邊說的那些基礎知識,很多的東西還是不知道的,照著書弄個helloworld模塊驅動兩天沒搞定。不是培訓不好,但我個人見解效果并不是很好。記?。褐挥凶约簞邮肿鲞^的東西才是自己的。
錯,但是不適合初學者,因為他的很多的東西是不給代碼的,用過友善的板子的同學經常有這樣的痛苦,想學一個東西,去找他的代碼的時候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學者想要找代碼的時候就不知道怎么辦了。
4不要好高騖遠,要腳踏實地。
5多看代碼,多寫代碼。
見多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來。自己平時也要多寫代碼,多練習(這一點我做的不好,寫的少)。
寫完已經晚上兩點了,思路有些亂,有些也是個人的見解,在有些人看來可能是錯誤的,每個人有每個人的學習方法,但是我們的目的只有一個——希望我們學到更多的知識。
本人大學學的是電子信息科學與技術專業,其實這個專業和嵌入式沒有多大的關系,要說有關系就是簡單的講了下c語言語法,學完之后還不知道什么是c語言,只記住了,char,int,string等占幾個字節,if, for, while循環什么的,感覺也就能算一些小學就會的題目,全國計算機等級二級也就糊涂的過了。我這個專業沒學過c++,一開始不知道什么是向對象,什么叫面向過程,這可能讓大家笑話了。不過這說的是實話,大學的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。在大一的時候就聽學長說,單片機很難學,在沒事的時候就從圖書管借了本關于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當我把51的結構看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結構圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結構也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學習51芯片,是為了以后的打基礎,知道是怎么通過配置寄存器來實現功能。
大二下學期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網上買了本馬潮老師《avr單片機嵌入式系統原理與應用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現一個點陣屏,實現滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來,備以后用,那時還挺自豪的呢,同學們都很羨慕,不過現在想想其實也沒什么了。
大學也聽說過嵌入式這個詞,不過不太明白是什么意思,09年的時候從網上找到中嵌視頻,有四張dvd(大約13g),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個44b0的開發板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學期才有的自己電腦,不過電腦的配置比較低,1g內存,跑虛擬機就像個蝸牛,所以就想著怎么才能裝個linux,自己用xp習慣了,如果全換了又舍不得,那時從書上知道linux的文件系統和windows不一樣,只有一個根分區,所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰勝了擔心,買了張redhat 9的光盤,小心的裝這個系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進入哪一個系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。
所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。
后來也想學學arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關于arm的大體結構,看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機啊。
如果想做linux設備驅動的同學應該對arm硬件有一些了解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結構。
大三下學期開始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學院通信專業,當時就是想一定要上個好學校好專業,也沒想太多,結果考了的成績差了點,沒有被錄取,也不想調劑一個二流的學校,然后就參加工作了,工作中每天都用的到開發板,當我看到一個小板上還可以跑系統的時候感覺很不可思議,以為要很大工程。后來邊工作邊學習,每天都要看電腦看到眼發疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進步。
閑話有點多了,說了很多都是自己大學那點破事。
聽很多的初學者說不知道從哪里開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
下面給嵌入式初學者一些自己的我個人建議。
1嵌入式涉及到很多的基礎知識:
c語言,關于c語言要知道基本的語法,什么是結構體,什么是共用體,有什么區別,不用強記一些二級考的東西,因在實際中用的很少。
c++要知道什么是類,怎么定義,繼承,接口,要深刻理解,當然基本語法也是必不可少的。
操作系統原理也應該知道基本的原理的,我記得我大學沒這個課還是去電信學院蹭別的專業的課呢,后來學習發現很多的東西都是在這個課上學到的。什么時間片啊,任務調度啊,都是在那里知道的。
linux基本命令的使用(vi編輯器必須會用,因為在終端改文件的時候只能用這個),我們現在很多的人都習慣用鼠標了,很少用到命令,我們學習嵌入linux可要改改這個習慣了,linux用命令操作一是效率高,二是功能非常強大,遠非圖形界面能比的了的,其實我們用圖形界面的操作都要轉化為命令傳給硬件的。
shell編程也要了解一些,在這給大家推薦一個教程,周朝劍的 shell編程,也就七八講吧,講的很全面。初學者看前4講就可以了。
linux設備驅動的架構要了解,初學者可以以飛凌的ok6410開發板上的led驅動分析一下,結合原理圖和linux設備驅動相關書籍把每一行代碼都分析明白。關于驅動給大家推薦一本書《linux社備驅動程序》中國電力出版社出版的,很經典的,初學者看可能看不太明白,不過要堅持看,最次也得把前6章看完了。
2 看書不要希望一次就會,一次就明白是什么意思,也不要死記硬背,看不明白也沒關系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀linux內核源代碼,看一些自己把頭撞破也想不明白的事,會打擊初學者的積極性,要循序漸進,今天學個做個led,明天做個串口,后天說不定就做硬件編解碼了。
3、你可以不接受培訓,但是不能不買開發板。
如果你想學習嵌入式一定要買塊學習板,現在的開發板很便宜了,給很我們初學者減輕了經濟負擔??丛俣嗟囊曨l,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題找到原因,解決問題,只有這樣才能學到東西,記得我第一次寫led的驅動,想自己試一下,網上也有人寫過相關的代碼,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。
還有關于培訓,現在的培訓機構很多,講的也不錯,老師也很好,但是有一個問題,太集中了,而且學生動手的機會也不太多,記得我們公司還招了一個在北京某個培訓機構培訓半年的員工呢,花了一萬多,來了之后也沒感覺有多高,問他都學了什么,也就是我前邊說的那些基礎知識,很多的東西還是不知道的,照著書弄個helloworld模塊驅動兩天沒搞定。不是培訓不好,但我個人見解效果并不是很好。記?。褐挥凶约簞邮肿鲞^的東西才是自己的。
現在買一塊開發板很便宜,飛凌的ok6410的開發板就不錯,源碼完全開放,而且資料也很豐富,完全能滿足初學者學習用,有人說友善的板子也不錯,我個人覺得友善的板子不 錯,但是不適合初學者,因為他的很多的東西是不給代碼的,用過友善的板子的同學經常有這樣的痛苦,想學一個東西,去找他的代碼的時候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學者想要找代碼的時候就不知道怎么辦了。
4 不要好高騖遠,要腳踏實地
對于初學者,還有一點小建議,我們拿到一個開發板,很興奮也很激動,想法自然也很多,想用開發板實現自己的這個想法,實現那個想法,然后又不知道從何下手,然后就去論壇中發一個貼, “那個什么什么怎么實現啊,哪位大俠能詳細說一下啊,跪求!!”然后等著別人去回復。見沒人回復就抱怨。有想法是好的,我們要實現自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問題,再去發貼問,這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。
5 多看代碼,多寫代碼
見多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來。自己平時也要多寫代碼,多練習(這一點我做的`不好,寫的少)。
寫完已經晚上兩點了,思路有些亂,有些也是個人的見解,在有些人看來可能是錯誤的,每個人有每個人的學習方法,但是我們的目的只有一個——希望我們學到更多的知識。
學期開始,我們開始學習《嵌入式系統及應用》,由于初次接觸嵌入式系統,感覺蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題后,我就像熱鍋上的螞蟻,一個字“急”。最后實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。
嵌入式系統本身是一個相對模糊的定義,一個手持的mp3和一個pc104的微型工業控制計算機都可以認為是嵌入式系統??傮w來說,嵌入式系統是“用于控制,監視或者輔助操作機器和設備的裝備”。一個典型的桌面linux系統包括3個主要的軟件層---linux內核、c庫和應用程序代碼。內核是唯一可以完全控制硬件的層,內核驅動程序代表應用程序與硬件之間進行會話。內核之上是c庫,負責把posix api轉換為內核可以識別的形式,然后調用內核,從應用程序向內核傳遞參數。應用程序依靠驅動內核來完成特定的任務。
在了解了基礎知識之后,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑借自己去摸索練習。其中的困難可想而知。然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的??赡芪覍τ谇度胧降闹R學習的還是不太多,但是這之外的東西收獲頗豐。它讓我學會了如何通過自己的努力去認知一個新事物,更重要的是端正自己的學習態度,只有真正下功夫去學習,才能有收獲,正所謂“一份耕耘,一份收獲?!睕]有付出,何談回報呢?再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。
當然,在這其中,我也發現自己的許多不足之處,由于學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以后的學習工作中,我一定會端正自己的學習態度,一絲不茍的去對待每一件事。只有做好足夠的準備,才能事半功倍!
嵌入式學習心得時間過的緊快,在粵嵌教育已經培訓,有5個月了培訓期間贏來很多,也認識了班上的自學大神,經過系統的學習,老師的細心指導,我的付出努力,對于嵌入式上,學到很多實用的知識在動手操作能力也加強了,不僅在專業領域技術方而有了很大進步,而且在實踐操作方面我也對嵌入式有了更深入的了解。也許這5個月是這兒我在外而學習和生活最寶貴的時間。
在校兩年,讀于電子信息韋爾泰宗工程技術專業的我,就覺得這研習專業領域學的知識太廣了,不管基礎還是動手操作,都要比較靈活。在校期間,學習單片機,傳感器,c語言,嵌入式應用技術等課程。感覺學起來,對我來說接受還是比較快的,那時就有想過:學的多不如學的短萼,也許高中學生對課程多于理論為主,理解它的原理和基本計算機程序方法方式。其實,我還是有努力去學的,可以說,在??迫卫蠋煻冀虝液芏鄬I知識,為我將來的學習和發展打好基礎。
在大三期間,為了更為拉著明確自己要走的方向,去培訓嵌入式軟件技術開發。也許將要投身嵌入式行業的我,就注定代價這條路要付出不少時間和精力,但如果我好求比較強,接受還行,就不停給自己送祝福,努力!要去培訓嵌入式,時,我從網上也對它有更加的想像也看下大學的嵌入式應用技術書,嵌入式系統是軟件和硬件的綜合體,以應用為中心,以科學計算為基礎,軟硬件可裁剪,改變應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用負載計算機系統。
剛開始嵌入式學習,對linux系統的專業知識加于鞏固。一些簡單的代碼,c語言,對于嵌入式軟件還是硬件開發的人員,對c語言的掌握這個是沃蘇什,卡的,特別是對于以后致力于嵌入式軟件開發的人現在絕大部分全都是用c語言。在下來兩個月就對linux系統,數據結構、系統移植的方法、a8的體系結構、linux內核及驅動設計、androidc+java的jni應用編程的系統學習。在每學個階段就作一個考試,基本知識對前面所學的知識進行復習,有些會做一個簡單的小項目,學以致用。知識量還是比較多,但教學也比較快,有些知識還沒消化完,第二天又接受新知識,對于能在課上基本上就可以對知識完全懂的并不多,晚上都用一個半小時來復習。經過5個月系統的.學習,嵌入式技術方面有了很大進步,實踐操作方而也對嵌入式有了更深入的了解。在最后一個月,基于a8(s5pv210)的嵌入式智能家居系統制作。
下而我談談在粵疊砌教育的培訓感受,我培訓的地點是在科學城粵嵌教育培訓中心的多媒體課室里,這里有研習環境非常好,在緊張的學習的整個過程中,你可以得到名師的督促,也可以體會到第一流企業高質量的培訓。在課堂上,老師們認真的演說,以及手把手地教導,使每個學生都能夠扎實地掌握到嵌入式的各方而的知識。而粵嵌幼兒教育教育的老師也是操作實踐為主,實踐是非常重要的,只有把知識掌握到位,才能達到學習的目的。
感謝粵嵌教育機構,感謝粵嵌教育老師。
首先,嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式有如下幾個突出的有點1.系統內核小,2專用性強,3系統精簡4高實時性os5嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行,6嵌入式系統需要開發工具和環境。
嵌入式系統是近幾年才風靡起來的,但是這個概念并非新近才出現。從20世紀七十年代單片機(最早的單片機是intel公司的8048,出現在1976年)的出現到今天各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。經過30年的發展,嵌入式技術已經日趨成熟,在中國嵌入式機一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。
其次,嵌入式系統無疑是當前最熱門最有發展前途的it應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。
嵌入式系統是軟硬結合的學科,通常有兩類人會去專研嵌入式:一類是學電子工程、通信工程等偏硬件專業的,另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。我是軟件專業的學習嵌入式,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。嵌入式應用在很多方面,具體的可以分為工業控制,交通管理,信息家電,家庭智能管理系統,pos網絡及電子商務,環境工程與自然,機器人,機電產品方面應用等方面。其中目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優勢。例外還有很多地方用到了嵌入式系統,最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業控制,采用最先進的0.18微米cmos嵌入式閃存處理技術,操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業領域中對最終用戶而言是一套極具成本效益的解決方案。
這學期才接觸嵌入式系統感覺還稱不上入門,我通過學習知道了嵌入式的發展前景很大,各個領域都用到了嵌入式,學好嵌入式不愁沒飯吃。
廣義上講,凡是帶有微處理器的專用軟硬件系統都是嵌入式系統。如各類單片機和dsp系統。從狹義上講,那些使用嵌入式微處理器構成獨立系統,具有自己操作系統,具有特定功能,用于特定場合的專用軟硬件系統稱為嵌入式系統。嵌入式系統由嵌入式硬件與嵌入式軟件組成;嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設備內部。
理解“嵌入”的概念主要從三個方面上來理解。
1、從硬件上,將基于cpu的處圍器件,整合到cpu芯片內部,比如早期基于x86體系結構下的計算機,cpu只是有運算器和累加器的功能,一切芯片要造外部橋路來擴展實現,象串口之類的都是靠外部的16c550/2的串口控制器芯片實現,而目前的這種串口控制器芯片早已集成到cpu內部,還有pc機有顯卡,而多數嵌入式處理器都帶有lcd控制器,但其種意義上就相當于顯卡。比較高端的arm類intelxscale架構下的ixp網絡處理器cpu內部集成pci控制器(可配成支持4個pci從設備或配成自身為cpi從設備);還集成3個npe網絡處理器引擎,其中兩個對應于兩個mac地址,可用于網關交換用,而另外一個npe網絡處理器引擎支持dsl,只要外面再加個phy芯片即可以實現dsl上網功能。ixp系列最高主頻可以達到1.8g,支持2g內存,1g×10或10g×1的以太網口或febrechannel的光通道。ixp系列應該是目標基于arm體系統結構下由intel進行整合后成xscale內核的最高的處理器了。
2、從軟件上前,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到rom中。而在定制操作系統內核時所選擇的應用程序組件就是完成了軟件的“嵌入”,比如wince在內核定制時,會有相應選擇,其中就是wordpad,pdf,mediaplay等等選擇,如果我們選擇了,在ce啟動后,就可以在界面中找到這些東西,如果是以前pc上將的windows操作系統,多半的東西都需要我們得新再裝。
3、把軟件內核或應用文件系統等東西燒到嵌入式系統硬件平臺中的rom中就實現了一個真正的“嵌入”。。
嵌入式系統分為4層,硬件層、驅動層、操作系統層和應用層。
1、硬件層,是整個嵌入式系統的根本,如果現在單片機及接口這塊很熟悉,并且能用c和匯編語言來編程的話,從嵌入式系統的硬件層走起來相對容易,硬件層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬件的電路圖和自行完成cpld的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉的。但硬件平臺是基礎,增值還要靠軟件。硬件層比較適合于,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有,單片機原理及接口技術、微機原理及接口技術、c語言。
2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導至其它任務不能動行,不懂操作系統內核架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用調用時就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅動人員沒有三、四年功底,操作系統內核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。
驅動層比較適合于電子、通信、自動化、機電一體、信息工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬件層所具備的基礎學科外,還要對數據結構與算法、操作系統原理、編譯原理都要十分精通了解。
3、操作系統層,對于操作系統層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統,或者寫出缺胳膊少腿的操作系統來,這部分工作大都由驅動工程師來完成。操作系統是負責系統任務的調試、磁盤和文件的管理,而嵌入式系統的實時性十分重要。據說,xp操作系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧hopen操作系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應用層,相對來講較為容易的,如果會在windows下如何進行編程接口函數調用,到操作系統下只是編譯和開發環境有相應的變化而已。如果涉及java方面的編程也是如此的。嵌入式系統中涉及算法的由專業算法的人來處理的,不必歸結到嵌入式系統范疇內。但如果涉及嵌入式系統下面嵌入式數據庫、基于嵌入式系統的網絡編程和基于某此應用層面的協議應用開發(比如基于sip、h.323、astrisk)方面又較為復雜,并且有難度了。
通過網上查詢我發現目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業it人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如arm處理器、嵌入式操作系統等),掌握這些新技術的人當然很少。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。我們軟件系的人學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面。對于搞嵌入式軟件的人,最重要的技術顯然是掌握主流嵌入式微處理器的結構與原理,必須掌握一個嵌入式操作系統,必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
然而我們都沒有做過一個嵌入式軟件項目,甚至連嵌入式的開發流程我也不清楚,我只了解了使用簡單工具做一個簡單的實驗。只有去專研才能在嵌入式的領域站住腳,只有知道的比別人多才會更有競爭力。通過網上了解,我查詢了嵌入式的入門和所需要的知識,其中c語言尤為重要,不管是做嵌入式軟件還是硬件開發的人員,對c語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用c語言。其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的`管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的;知道了c語言和操作系統之后,再來看看嵌入式系統,我們主要學的是arm,用的是arm7,深入理解arm不是件容易的事,只有在知道arm相關知識之后才能稱得上嵌入式已經入門了。與嵌入式有關的知識我也學了不少就是不能夠綜合在一起運用,組成原理,數據結構,操作系統,c++,這3門與嵌入式密切相關的學科都系統的學了一遍,但由于長時間沒用到都有點忘記了,從網上得知嵌入式的學習與這些書有很大關系之后,我把嵌入式與以前學過的知識結合起來發現嵌入式的實驗中很多都是共通的,我對嵌入式有了初步的理解。
我以為學習嵌入式應該分為2個部分:軟件和硬件。關于硬件方面我接觸到了數字電路教材和模擬電路方面的知識,但由于沒有嵌入式cpu很難親自動手來實現嵌入式的相關理論;嵌入式入門則需要不斷地實驗與分析,我只在實驗課時做幾個與所給的程序相關的小程序來實現一下;而軟件方面則學過c語言,里面通常的語法曾經熟悉過;我通過下列方法來適應c語言在嵌入式中應用:首先重新翻看了下c的教材,看了些常見的語法,接著在編譯器的角度來看待c,編譯原理我剛學過,其中將高級語言與低級語言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來看待c。嵌入式的核心包括嵌入式操作系統,嵌入式軟件開發平臺及工具以及嵌入式應用軟件。這些決定怎樣才能開發一個好的嵌入式系統。下面談談我了解的嵌入式的相關知識與應用:
首先,嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬件可裁減,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式有如下幾個突出的有點1.系統內核小,2專用性強,3系統精簡4高實時性os5嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行,6嵌入式系統需要開發工具和環境。
嵌入式系統是近幾年才風靡起來的,但是這個概念并非新近才出現。從20世紀七十年代單片機(最早的單片機是intel公司的8048,出現在1976年)的出現到今天各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。經過30年的發展,嵌入式技術已經日趨成熟,在中國嵌入式機一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。
其次,嵌入式系統無疑是當前最熱門最有發展前途的it應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。嵌入式系統是軟硬結合的學科,通常有兩類人會去專研嵌入式:一類是學電子工程、通信工程等偏硬件專業的,另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。我是軟件專業的學習嵌入式,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。嵌入式應用在很多方面,具體的可以分為工業控制,交通管理,信息家電,家庭智能管理系統,pos網絡及電子商務,環境工程與自然,機器人,機電產品方面應用等方面。其中目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優勢。例外還有很多地方用到了嵌入式系統,最近飛利浦和arm共同推出32位risc嵌入式控制器,適用于工業控制,采用最先進的0.18微米cmos嵌入式閃存處理技術,操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業領域中對最終用戶而言是一套極具成本效益的解決方案。
那么該如何學好嵌入式我覺得應該從以下幾點入手:
首先c語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發的人員,對c語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用c語言,你說不掌握它可以嗎?至于如何學習c語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,c語言要學到怎么樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念后,就該寫代碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關系,多看看,結合以后的項目經驗,會有更好的理解的。
還有應該學習下linux或者wince下的編程,這些對以后做應用的編程很有幫助,當然,如果做手機的話,那可以學習mtk、塞班、android等操作系統,android是以后發展的趨勢,現在很熱門,android也是基于linux系統封裝的,所以建議先學習下linux。
還有,應該學習下單片機或者arm或者mips,很多人說我沒有單片機的經驗,直接學arm可以嗎?我覺得那完全沒有問題的,當然如果你學習過單片機,那最好不過了,以后學習arm就更簡單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優秀的代碼,比如結合arm芯片手冊學習去學習下uboot的源代碼,了解下最小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源代碼,當然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux代碼早期的版本,比如0.12的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
這個題目很大,給人一種感覺我好像很成功,其實不然。實際上自己水平不高,甚至很低,但是做過了一些曲折的學習道路,同時把自己真實的學習歷程表達出來,希望對后來者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我xx年畢業于華中地區的一個理工科大學,專業是機械電子,我當時已經簽了一家內陸某個省級機關工作,家里八輩是農民,并且很偏遠,能夠進入這樣的地方是祖墳有風水。但在畢業前夕有個進入it的機會,我本想進去的,家里人極力反對,阻力可想而知。同時要交4000元的違約金,對我來說是天文數字。大學里的費用很多是借的,幾乎將近一半的費用是在大學勤工儉學掙的,為了省錢,高中一個學期回家一次,大學一年回去一次。并且我個人也有特殊的人生背景(悲景更確切),這里不多說了,寫十篇也寫不完,同時偏離主題。這樣我就參加了工作。一張報紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺。在工作中雖然是與自己專業有點關系,但是很少。專業幾乎荒廢。我自己也思考,如果再不出去,自己將會成廢人,只好讓國家養了。兩年后決定出去,但是幾成廢人,誰要呢,只好到學校去鍍金。這是中國教育和社會的悲哀!
出自 faNWen.chAzIdIAn.com
至于專業就改為計算機方面,聽說好找工作,我說實話不是很對計算機特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績出來,超過了國家線幾十分。那個方向要兩個,我第三,但是那年非碘,不面試就按分數來排,自然我落選了。其實給我面試機會也不一定要我,哈哈,自己幾斤幾兩很清楚。
最后調劑到另外一個學校,交錢,咬咬牙,交吧!現在仍然債臺高筑!
進入學校前夕。
為什么要把這段列出,看后就知道了。
前也自學過數據結構,計算機組成原理等。c語言在大學就學了。哈哈這就是我的家底。
我知道自己的基礎差,于是我就拿操作系統,數據庫、數據結構、c++來看,機關有這個好處,空余時間多,于是平常就看書,很痛苦,沒有人請教。
另外就上網到論壇上去,我就到各個專業的技術論壇,其實是電子論壇和嵌入式論壇。我幾乎沒有發帖,幾乎把幾個大型的出名的論壇的帖子翻遍了,雖然有很多重復的,我才知道嵌入式是個什么東東。這些帖子對我以后的學習產生了極大的影響。
最關鍵兩點:1、嵌入式是什么?
知道了這兩點,好辦!我就開始規劃學習路線。計算機的基本理論不能丟,于是重點看組成原理,數據機構,操作系統、c++。同時論壇上了解到,實時操作系統ucos是一個很好的嵌入式操作系統,對初學者很好。于是我就買了一本書,但是代碼在電腦里調不通,網上也有很多相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門,才知道什么是進程。原來看操作系統書時,根本就不知道進程是個什么東西。
在這段時間掌握的東西不多,但是,對我以后的影響很大,我想起了大學時一個同學跟我說過了一句話:大學里最重要的不是學到了什么,最重要的是學會怎么學!大概是這個意思。
進入我的避難所。
對我來講,再次進入大學不再是大學,而是避難所。希望這次進入給我喘氣和養精蓄銳的機會和時間。我是這樣認為和實踐的。
在學校我有三件事:上課,上圖書館,上網。
對于上課,學校開了很多課程,非常好,很多是名人名師講解,于是很多同學都想學,都去聽。我也考慮過,最后放棄。我是這樣認為的,時間是有限的,什么都想學,什么都學不成。于是我把我自己學的課進行了分化,一般的課程通過就行,重要的一定好好學。我希望不要什么爭論學習課程多和少的問題,這僅僅是我的看法。所以我的成績應該是很差的。分數低。好在后來的單位沒有要我的成績單,否則就慘了。
我個人感覺是上圖書館的效率比在寢室里高多了,這是我的經驗。
文檔為doc格式。
版權聲明:此文自動收集于網絡,若有來源錯誤或者侵犯您的合法權益,您可通過郵箱與我們取得聯系,我們將及時進行處理。
本文地址:http://www.springy.cn/fanwendaquan/qitafanwen/947942.html