當前位置:才華齋>範例>心得體會>

嵌入式實訓心得體會(精選10篇)

心得體會 閱讀(8.91K)

在平日裡,心中難免會有一些新的想法,可以將其記錄在心得體會中,它可以幫助我們瞭解自己的這段時間的學習、工作生活狀態。那麼要如何寫呢?以下是小編為大家收集的嵌入式實訓心得體會,歡迎閱讀與收藏。

嵌入式實訓心得體會(精選10篇)

嵌入式實訓心得體會 篇1

學期開始,我們開始學習《嵌入式系統及應用》,由於初次接觸嵌入式系統,感覺蠻難的,所以收穫不是很大,很多的概念都比較模糊,等到學期結束開始做嵌入式課程設計時,真是茫然無從下手,自從拿到設計主題後,我就像熱鍋上的螞蟻,一個字"急"。最後實在沒有辦法,逼著自己去學習,查資料,總算對嵌入式有了淺層理解。

嵌入式系統本身是一個相對模糊的定義,一個手持的Mp3和一個pC104的微型工業控制計算機都可以認為是嵌入式系統。總體來說,嵌入式系統是"用於控制,監視或者輔助操作機器和裝置的裝備"。

一個典型的桌面Linux系統包括3個主要的軟體層———linux核心、C庫和應用程式程式碼。核心是唯一可以完全控制硬體的層,核心驅動程式代表應用程式與硬體之間進行會話。核心之上是C庫,負責把pOSIXApI轉換為核心可以識別的形式,然後呼叫核心,從應用程式向核心傳遞引數。應用程式依靠驅動核心來完成特定的任務。

在瞭解了基礎知識之後,我開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,又沒有別人在旁邊指導操作,完全憑藉自己去摸索練習。其中的困難可想而知。

然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收穫還是蠻多的。可能我對於嵌入式的知識學習的還是不太多,但是這之外的東西收穫頗豐。

它讓我學會了如何通過自己的努力去認知一個新事物,更重要的是端正自己的學習態度,只有真正下功夫去學習,才能有收穫,正所謂"一份耕耘,一份收穫。"沒有付出,何談回報呢?

再者,通過本次實驗,我也學會了如何去分析問題,如何找出自己設計中的不足,繼而去排除解決問題,這就是一個自我學習的過程。當我們通過實驗去學習理論知識時,自己動手得出的結論,不僅能加深我們對嵌入式的理解,更能加深我們對此的記憶。

當然,在這其中,我也發現自己的許多不足之處,由於學期伊始我沒有好好學習,才落到如此地步,這也可以說是一個教訓吧!我相信在以後的學習工作中,我一定會端正自己的學習態度,一絲不苟的去對待每一件事。只有做好足夠的準備,才能事半功倍!

嵌入式實訓心得體會 篇2

20xx年8月我參加了學校安排的課題實訓,基地在北京,學院安排我們集體坐火車一同前去,浩浩蕩蕩的隊伍開始出發了。剛來北京的時候,映入眼綿的都是高樓大廈,一直想到的地方終於到了,好多以前的同學聽說我要去北京實訓都很羨慕不已,我自己也隱隱感到自豪。

我參加的課題實訓是嵌入式方向的,開課的內容主要是嵌入式開發方面的,C語言,資料結構,LINUX基本操作,網路程式設計,作業系統和組合語言,這些都是嵌入式不可缺少的。每個專業技能都決定了你以後找工過。我們班分了很多小組,每組都有小組長,小組長直接對我們負責。教課老師很認真,都是從很基礎的開始講;同學們聽課也很認真,由於程式碼操作比較多,鍵盤的聲音源源不斷的在響。好久沒有感覺到這種濃重的學習氣氛了,而在這緊張而充實的學習氛圍中我獲益匪淺,感受頗多。

授課過程中老師們也傳授了一些找工作方面的經驗,比如簡介的樣式和寫法,面試中的一些著裝,禮貌用語和技巧,對此基地的老師還精心的為我們安排了一場模擬面試,在其中我們學到了很多有關於面試方面的經驗。

通過這幾個月的實訓我學到了很多,同時也讓我們意識到我們要學的更多。從程式的設計到編寫、畫圖、除錯、修改、完善、到最後的實訓報告,每個人都付出了時間和精力去做好自己的任務幫助隊友,所以團隊的合作和隊友之間的相互協助非常重要。通過實訓讓我們更深一步的對自己的專業,對自己的能力,對自己所學的有正確的認識,並且能在以後的學習工作中不斷提高和完善自己。特別是講C語言和程序通訊中老師給了我們每個小組的幾個小專案,讓我學到了更多專案經驗,這在學校之前是沒有的。這次實訓也碰到了些問題,比如專案文件的寫法,程式碼的規範,流程圖的畫法,這些都有講究,在老師和同學的幫助下,我不斷的提高了在這些方面的學習。

生活上班主任郭老師和王老師對我們關懷備至,讓我們沒有感覺在外面的那種不適感,同學們也互幫互助,所以生活上大致沒什麼問題,這讓我們更好的去學專業。很感謝學校有這樣的實訓安排。

總的來說,這次實訓還是比較成功的,無論是個人動手能力還是團隊協作能力都得到了很好的鍛鍊。在實訓過程中老師也交給我們很多簡單實用的技巧。我們也學到了,做好做對一個專案固然重要,同時美觀程度也是必不可少的,無論是從參觀者的角度還是自己看的角度都很重要。

嵌入式實訓心得體會 篇3

我們學習的課本是嵌入式系統應用教程。我學習的體會是這樣的:

開始時,由於是剛剛入門,對老師說的好多東西很好奇,列如C語言也是新鮮的,不過不太懂什麼意思。但是慢慢的,瞭解深入後讓我有了更深的感觸和體會。在嵌入式的學習過程中,讓我瞭解了什麼是嵌入式系統。它就是以應用為中心,以計算機技術為基礎,軟硬體可定製,適用於不同應用場合,對功能、可靠性、成本、體積、功耗有嚴格要求的計算機系統。他一般由嵌入式微處理器、外圍硬體裝置、嵌入式作業系統、使用者應用程式四個部分組成,用於實現對其他裝置的控制、監視或管理功能。嵌入式系統已經應用於科學研究、工業控制、軍事技術、交通通訊、醫療衛生、消費娛樂等領域,人們日常使用的手機、PDA、汽車、智慧家電、GPS等均是嵌入式系統的典型代表。

在學習命令的過程中,只要你認真的看著老師操作還有認真聽著他講,你就會發現有些命令的操作還是很簡單的,不過在操作的過程中,有時也會遇到困難,有時你按照書上學習的例子,命令輸入終端時會出現你不想要的結果,也就是錯誤的結果。這是問問旁邊的同學或是懂得的同學就可以解決了。

在對於這部分的學習中,讓我知道了命令對於嵌入式的重要性。它是linux的重要內容,linux中所有的功能都是通過命令執行。在實際應用中,為了減少系統開銷,經常不使用圖形介面,此時,對系統的所有操作都需要以命令方式來執行。在嵌入式系統開發過程中,由於目標機的效能和配置比較低,因此,一般情況下標機僅具有命令視窗而沒有圖形介面,對目標機的所有操作都通過命令來實現。還有的那就是進一步學習與嵌入式系統開發相關的linux的服務,他們的啟動、設定等的操作和應用。而在學習之中,我們主要介紹的是嵌入式系統中開發工程使用的TFTP、Telent和NFS服務。第一個實現的是上機位與下機位之間檔案的傳輸、無磁碟網路裝置的啟動等功能;第二個實現的是遠端登入功能;第三個實現的是網路檔案系統功能。

從以上的內容之中,並不難感受到我們的學習過程是由淺入深的,這對於我們的學習也有了較好的幫助。當然,我們學習的不僅僅是這麼幾個內容,其中還有相關的實驗內容。在我們基礎的學習過程之中,我有了這麼一點的感受,總的來說就是概念加專業名詞還有介紹加實驗。不過你絕對不能小看那些概念和介紹,它對我們有著很重要的指導作用哦!實驗那就更不用說了,它提高我們的動手能力,在實驗的過程中還能讓你更加理解書中的理念,這就是我學習嵌入式的感受。

學習是可貴的,培訓是精彩的。通過這次可貴而精彩的培訓學習,我們向嵌入式邁進了一步。感嘆與憧憬之餘,我想我們只有靠自己的聰明與才智、努力與勤奮去追求我們的美好生活。

嵌入式實訓心得體會 篇4

現在嵌入式做為計算機發展的一個新的方向越來越得到社會的重視。隨之而來的是很多培訓班的誕生,但是如何能在琳琅滿目的培訓機構中找到一個能真正學到東西的培訓班呢,這是擺在眾多想學嵌入式的人面前的第一個問題。我在瞭解了眾多培訓機構並且試聽之後,最終選擇了Tocore嵌入式培訓,之所以選擇,是因為我看重老師的實際能力和認真負責的態度。我非常榮幸能夠成為Tocore中的一員。

嵌入式開發,做為一個新的計算機發展方向,已經越來越受到社會的重視,社會上的需要也十分巨大,可是真正懂得嵌入式開發的人才缺不是很多,歸結去原因主要是一下幾個方面:

一、因為它是新興的一個發展方向,懂得的人自然不多。

二、學習嵌入式需要比較龐雜的知識結構。作業系統、微機原理、C/C++語言、資料結構等。

三、嵌入式學習,上手很困難,不知道從哪裡著手去學習。

在剛開始接觸的時候,我也是抱著本書,自己摸索,可是越看越迷茫,連很多書裡的名詞都不知道是什麼意思,去網上查也沒有得到答案。可是在Tocore我得到了很好的指點,在這裡,由於老師都是十分有經驗的專案經理,他們懂得如何去學習,從哪裡開始入手,這對於我這樣的背景知識比較薄弱又接觸時間比較短的人來說實在是太有幫助了。

雖然課程還沒有完,可是在這段時間的學習中,我按照老師的指導在完善的課程體系下進行系統的學習,已經掌握了U-boot、kernel以及linux移植的基本框架,(我想在今後的學習中一定會對這些知識更加熟悉以至精通!)這對於2個月前什麼都不懂的我來說已經是很大的提高了!用得是ARM9的板子,這也是市場上現在比較新的,比較流行的板子,很多公司在實際的產品開發中就用的是ARM9。在課堂上,老師的講解和我們的練習相結合,理論聯絡實際。老師除了講解知識外,還結合了大量的實際案例和操作,這對於我對問題的理解和知識的記憶有很大幫助。

最後談談對學習態度的一點看法。嵌入式學習,是比較耗時的,前期需要很多知識做鋪墊,有很多人在這個過程中走了不少彎路,於是開始失去耐心、失去信心,以至最終放棄學習。所以我想有必要強調一下問題,在剛開始的時候,自己什麼都不懂,可是學習的願望很強烈,每次上課都希望上完課就能如何如何,可是下來發現自己好像離自己原本的目標還很遠,於是心裡著急,自己跑到網上搜了很多資料,每天亂看,可是並沒有很大的幫助。我想說的是,學習嵌入式一定要有耐心和毅力,不能急躁,按照課程的安排自己多做一些總結和練習,等到知識慢慢的積累下來就會有一種豁然開朗的感覺。

嵌入式實訓心得體會 篇5

本人大學學的是電子資訊科學與技術專業,其實這個專業和嵌入式沒有多大的關係,要說有關係就是簡單的講了下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全盤就被格式化了,不過最後還是慾望戰勝了擔心,買了張redhat 9的光碟,小心的裝這個系統,裡邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最後裝到我的硬碟的最後空間,重新啟動,竟可以選擇進入哪一個系統了,從這之後,自己就不害怕怎麼裝系統了,應了那句言,紙上得來終覺淺,絕知此事要躬行。

所以我認為,買一個開發板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。

後來也想學學arm,但不知道arm是什麼東西,所以就買了本《從51到arm》,講的是關於arm的大體結構,看完後感覺,原來arm就是一個速度更快,介面更豐富的微控制器啊。

如果想做linux裝置驅動的同學應該對arm硬體有一些瞭解。如果對驅動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更瞭解arm結構嵌入式學習。

大三下學期開始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學院通訊專業,當時就是想一定要上個好學校好專業,也沒想太多,結果考了的成績差了點,沒有被錄取,也不想調劑一個二流的學校,然後就參加工作了,工作中每天都用的到開發板,當我看到一個小板上還可以跑系統的時候感覺很不可思議,以為要很大工程。後來邊工作邊學習,每天都要看電腦看到眼發疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進步,閒話有點多了,說了很多都是自己大學那點破事。

聽很多的初學者說不知道從哪裡開始,學習嵌入都要學哪些東西,從網上搜了一下,一大堆的東西要學,一下就推薦十幾本書,說看完這本書怎麼怎麼樣,看完那本書怎麼怎麼樣,一下子就給初學者給嚇住了,其實完全沒必要把網上的那些東西全部看一遍,那樣又費時,又感覺工程太大,讓初學者沒有信心去把每一種都看完。網上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當然會的越多越好。今天學點這個明天學點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收穫。

嵌入式實訓心得體會 篇6

這學期才接觸嵌入式系統感覺還稱不上入門,我通過學習知道了嵌入式的發展前景很大,各個領域都用到了嵌入式,學好嵌入式不愁沒飯吃。

廣義上講,凡是帶有微處理器的專用軟硬體系統都是嵌入式系統。如各類微控制器和DSP系統。從狹義上講,那些使用嵌入式微處理器構成獨立系統,具有自己作業系統,具有特定功能,用於特定場合的專用軟硬體系統稱為嵌入式系統。嵌入式系統由嵌入式硬體與嵌入式軟體組成; 嵌入式硬體以晶片、模板、元件、控制器形式埋藏於裝置內部。

理解“嵌入”的概念 主要從三個方面上來理解。

1、從硬體上,將基於CPU的處圍器件,整合到CPU晶片內部,比如早期基於X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切晶片要造外部橋路來擴充套件實現,象串列埠之類的都是靠外部的16C550/2的串列埠控制器晶片實現,而目前的這種串列埠控制器晶片早已整合到CPU內部,還有PC機有顯示卡,而多數嵌入式處理器都帶有LCD控制器,但其種意義上就相當於顯示卡。比較高階的ARM類Intel Xscale架構下的IXP網路處理器CPU內部整合PCI控制器(可配成支援4個PCI從裝置或配成自身為CPI從裝置);還整合3個NPE網路處理器引擎,其中兩個對應於兩個MAC地址,可用於閘道器交換用,而另外一個NPE網路處理器引擎支援DSL,只要外面再加個PHY晶片即可以實現DSL上網功能。IXP系列最高主頻可以達到1.8G,支援2G記憶體,1Gx10或10Gx1的乙太網口或Febre channel的光通道。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.高實時性OS

5.嵌入式系統的應用程式可以沒有作業系統直接在晶片上執行

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 的程式碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。

嵌入式實訓心得體會 篇7

一、嵌入式系統開發與應用概述

在今日,嵌入式ARM 技術已經成為了一門比較熱門的學科,無論是在電子類的什麼領域,你都可以看到嵌入式ARM 的影子。如果你還停留在微控制器級別的學習,那麼實際上你已經落下時代腳步了,ARM 嵌入式技術正以幾何的倍數高速發展,它幾乎滲透到了幾乎你所想到的領域。本章節就是將你領入ARM 的學習大門,開始嵌入式開發之旅。以嵌入式計算機為技術核心的嵌入式系統是繼網路技術之後,又一個IT領域新的技術發展方向。由於嵌入式系統具有體積小、效能強、功耗低、可靠性高以及面向行業具體應用等突出特徵, 目前已經廣泛地應用於軍事國防、消費電子、資訊家電、網路通訊、工業控制等各個領域。嵌入式的廣泛應用可以說是無所不在。

嵌入式微處理器技術的基礎是通用計算機技術。現在許多嵌入式處理器也是從早期的PC 機的應用發展演化過來的,如早期PC 諸如TRS-80、Apple II 和所用的Z80 和6502 處理器,至今仍為低 端的嵌入式應用。在應用中,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優點。嵌入式處理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM 等系列。

在早期實際的嵌入式應用中,晶片選擇時往往以某一種微處理器核心為核心,在晶片內部整合必要的ROM/EPROM/Flash/EEPROM、SRAM、介面匯流排及匯流排控制邏輯、定時/計數器、WatchDog、I/O、序列口、脈寬調製輸出、A/D、D/A 等各種必要的功能和外設。

二、實習裝置

硬體:Embest EduKit-IV實驗平臺、ULINK2模擬器套件、PC機

軟體:mu;Vision IDE for ARM整合開發環境、Windows 98/2000/NT/XP

三、實習目的

1.初步掌握液晶屏的使用及其電路設計方法;掌握S3C2410X處理器的LCD控制器的使用;掌握通過任務呼叫的方法把液晶顯示函式新增到uC/OS-II中;通過實驗掌握液晶顯示文字及圖形的方法與程式設計。

2.瞭解S3C2410X處理器UART相關控制暫存器的使用; 熟悉ARM處理器系統硬體電路中UART介面的設計方法:掌握ARM處理器序列通訊的軟體程式設計方法。

3.掌握有關音訊處理的基礎知識;通過實驗瞭解IIS音訊介面的工作原理;通過實驗掌握對處理器S3C2410X中IIS模組電路的控制方法;通過實驗掌握對常用IIS介面音訊晶片的控制方法。

4.瞭解mu;C/OS-II移植條件和核心基本結構;掌握將mu;C/OS-II核心移植到ARM9處理器上的方法和步驟。

四、實習要求

通過對mu;C/OS-II移植實驗、mu;C/OS-II LCD顯示實驗、串列埠通訊實驗、IIS音訊實驗、液晶顯示實驗的學習,並將各部分內容合併,最終得出實習結果,實習要求在鍵盤上輸入學號,在液晶顯示屏上顯示相應的學生資訊。學生資訊包括顯示每個人的照片和姓名系別等,並用鍵控設定學生輸出的順序,輸入學號就顯示那個學生的資訊,然後過一段時間就順序迴圈播放。

移植mu;C/OS-II核心到ARM處理器S3C2410,在IDE中觀察其執行狀況編寫S3C2410X處理器的串列埠通訊程式;監視序列口UART1動作;將從UART1接收到的字串回送顯示。將從UART1接收到的字串回送顯示。

通過使用Embest EduKit-IV實驗板的彩色液晶屏(800*480)進行電路設計,掌握液晶屏作為人機介面介面的設計方法,並編寫任務函式在uC/OS-II系統中實現點陣圖顯示。在uC/OS-II中建立五個任務Tast1和Tast2,其中Tast1順序熄滅四個LED,延遲一會在順序點亮四個LED。Tast2在LCD螢幕上迴圈顯示三幅圖片,並列印一些文字資訊和背景音樂。過使用Embest EduKit-III實驗板的256 色彩色液晶屏(320x240)進行電路設計,掌握液晶屏作為人機介面介面的設計方法,並編寫程式實現:畫出多個矩形框;顯示ASCII字元;顯示漢字字元;顯示彩色點陣圖。

五、實習步驟

1. 準備實驗環境

使用ULINK2模擬器連線Embest EduKit-IV實驗平臺的主機板JTAG介面;使用Embest EduKit-IV實驗平臺附帶的交叉串列埠線,連線實驗平臺主機板上的COM2和PC機的串列埠(一般PC只有一個串列埠,如果有多個請自行選擇,筆記本沒有串列埠裝置的可購買USB轉串列埠介面卡擴充);使用Embest EduKit-IV實驗平臺附帶的電源介面卡,連線實驗平臺主機板上的電源介面。

2. 串列埠接收設定

在PC機上執行windows自帶的超級終端串列埠通訊程式,或者使用實驗平臺附帶光碟內設定好了的超級終端,設定超級終端:波特率115200、1位停止位、無校驗位、無硬體流控制,或者使用其它串列埠通訊程式。(注:超級終端串列埠的選擇根據使用者的PC串列埠硬體不同,請自行選擇,如果PC機只有一個串列埠,一般是COM1)

3. 開啟實驗例程

1)開啟實驗程式

2)執行mu;Vision IDE for ARM軟體

3)預設開啟的工程在原始碼編輯視窗會顯示實驗例程的說明檔案,詳細閱讀並理解實驗內容。

4)工程提供了兩種執行方式:一是下載到SDRAM中除錯執行,二是固化到Nor Flash中執行。使用者可以在工具欄Select Target下拉框中選擇在RAM中除錯執行還是固化Flash中執行。下面實驗將介紹下載到SDRAM中除錯執行,所以我們在Select Target下拉框中選擇UART Test IN RAM。

5)接下來開始編譯連結工程,在選單欄“Projiet”選擇“Build target”或者“Rebuild all target files”編譯整個工程。

6)編譯完成後,在輸出視窗可以看到編譯提示資訊,比如“"MUART " - 0 Error(s), 1 Warning(s).”,如果顯示“0 Error(s)”即表示編譯成功。

7)撥動實驗平臺電源開關,給實驗平臺上電,單擊選單欄Debug->Start/Stop Debug Session項將編譯出來的映像檔案下載到SDRAM中,或者單擊工具欄“”按鈕來下載。

8)下載完成後,單擊選單欄Debug->Run項執行程式,或者單擊工具欄“”按鈕來全速執行程式。使用者也可以使用進行單步除錯程式。

9)全速執行後,使用者可以在超級終端看到程式執行的資訊。

10)使用者可以Stop程式執行,使用mu;Vision IDE for ARM的一些除錯視窗跟蹤檢視程式執行的資訊。 注:如果在第4)步使用者選擇在Flash中執行,則編譯連結成功後,單擊選單欄Flash->Download項將程式固化到NorFlash中,從實驗平臺的主機板拔出JTAG線,給實驗平臺重新上電,程式將自動執行。

部分程式圖:

串列埠通訊實驗:

IIS音訊實驗:

六、實習體會

在嵌入式系統中,除了課本上的基礎知識外,還學會了軟體程式設計的基本思路,掌握了液晶屏的使用及其電路設計方法;掌握有關音訊處理的基礎知識;掌握液晶顯示文字及圖形的方法與程式設計。

通過這次設計,掌握了液晶顯示實驗、mu;C/OS-II移植、mu;C/OS-IILCD顯示的工作原理及串列埠通訊實驗的工作過程,學會了使用模擬軟體Embest EduKit-IV實驗平臺及ULINK2模擬器套件,並學會通過應用軟體模擬來實現各種通訊系統的設計,對以後的學習和工作都起到了一定的作用,加強了動手能力和學業技能。雖然花了很長時間編寫軟體程式設計,但這一切還是理論上的。希望學校能提供機會和條件,讓我們能夠去真正地將理論和實踐相結合。通過這次程式,感覺自己所掌握的知識是那麼的有限,還有許多需要改進和不足的地方,同時也幫助了我怎樣學好這門課程,增加了我對這門學科的興趣。總體來說,這次實習我受益匪淺。在摸索該如何設計電路使之實現所需功能的過程中特別有趣,培養了我的設計思維,增加了實際操作能力。在讓我體會到了設計電路的艱辛的同時,更讓我體會到成功的喜悅和快樂。通過這次實習通訊系統的設計,使我更加清楚以後的發展及學習的方向。

嵌入式實訓心得體會 篇8

一、嵌入式的概述:

隨著資訊化技術的發展和數字化產品的普及,以計算機技術、晶片技術和軟體技術為核心的嵌入式系統再度成為當前研究和應用的熱點,通訊、計算機、消費電子技術(3C)合一的趨勢正在逐步形成,無所不在的網路和無所不在的計算(everything connecting, everywhere computing)正在將人類帶入一個嶄新的資訊社會。

二、實習目的

學習和了解了嵌入式在生活中的重要作用和發展過程,熟練掌握ARM硬體體系結構,熟悉linux下的嵌入式程式設計流程,積累自己的軟體編寫經驗,能夠參與並實現一個真實和完整的嵌入式專案,為今後的學習和將從事的技術工作打下堅實的基礎。

三、實習任務

第一階段Linux操作和程式設計基礎

主要介紹Linux的基本命令和基礎程式設計知識,包括Linux的檔案操作和目錄操作命令,VI編輯器,GCC編譯器,GDB偵錯程式和Make專案管理工具等知識。

第二階段 嵌入式C語言程式設計基礎

主要介紹在嵌入式開發程式設計中C語言的重要概念和程式設計技巧中的重點難點,以複習串講和例項分析的形式,重點介紹包括函式與程式結構,指標、陣列和連結串列,庫函式的使用等知識。

第三階段Linux上C強化程式設計訓練

主要包括整數演算法訓練,遞迴和棧程式設計訓練,位操作訓練,指標訓練,字串訓練和常用C庫函式程式設計介面實踐,強化學員對Linux下基本程式設計開發的理解和編碼除錯的能力。

第四階段 Linux環境高階程式設計及專案開發程式設計實踐

主要包括系統程式設計(訊號/系統呼叫/管道/FIFO/訊息佇列/共享記憶體等),檔案I/O程式設計(檔案描述符/檔案讀寫介面/原子操作/阻塞與非阻塞IO等,多工和多執行緒程式設計(程序標識/ 使用者標識/fork與vfork/多執行緒概念/執行緒同步等),網路程式設計(網路基本概念/套介面程式設計/網路位元組次序/Client/Server結構/UDP程式設計);掌握Linux下Socket程式設計的開發流程,熟悉網路程式設計的呼叫介面函式和相關資料結構,使學員初步具備在Linux上進行系統程式設計開發的能力。同時綜合之前所學內容和程式設計技術,以小組為單位進行一個團隊合作專案的開發,考核內容包括檔案I/O程式設計,多執行緒程式設計,網路程式設計和專案文件編寫。

第五階段嵌入式處理器體系結構及程式設計實踐

主要介紹ARM體系結構及其基本程式設計知識,包括指令分類,定址方式、指令集、儲存系統、異常中斷處理、組合語言以及CC++和組合語言的混合程式設計等知識。同時結合ARM嵌入式開發板硬體設計原理和基本硬體設計流程,分析各種外設的工作原理和驅動機制,並自己動手實踐完成一個ARM開發板上的程式設計大作業。

第六階段嵌入式Linux開發基礎及高階應用

主要介紹嵌入式Linux開發應用程式的基本流程和知識,包括嵌入式Linux基本概念和開發流程、Bootloader工作原理、核心裁減配置和交叉編譯、根檔案系統製作、網路程式設計以及圖形介面和資料庫開發等知識。同時獨立完成一個基於嵌入式Linux GUI的應用程式設計大作業。

第七階段嵌入式 Linux驅動理論及驅動程式開發實踐

主要介紹嵌入式Linux上驅動程式開發規範,包括裝置驅動程式概念、字元裝置驅動程式、塊裝置與網路裝置、網絡卡驅動以及常用嵌入式裝置驅動開發等知識。同時獨立實現兩種嵌入式裝置驅動程式的編寫,包括驅動模組的除錯和載入以及完整的專案開發文件的編寫。

第八階段嵌入式Linux專案團隊開發實踐鍛鍊

主要包括設計並實現一個真實和完整的嵌入式專案的開發流程,涉及到資料採集、網路通訊、圖形使用者介面顯示以及嵌入式資料庫儲存系統等多種嵌入式Linux程式設計技術。要求學員建立起團隊開發和協同工作的企業專案開發模式的概念和流程,強化學員對編寫專案概要設計文件和詳細設計文件的理解,為就業前的職業技能和素質訓練做好充分準備。

嵌入式實訓心得體會 篇9

從實習到現在搞嵌入式開發快一年了,驀然回首好像一年過得挺快,挺順利的。細細品味,發現這一年還是有很多值得回憶和總結的東西。至少這一年看書挺多,大概二十幾本,當然和那些一年看一百多本書的人沒法比,但是我已經超越了自己。這是我大學畢業的第一年,初次走上社會,很想一展身手,可是.....其實也不用可是了,和很多朋友一樣碰了很多釘子,現在我和老闆的關係就挺一般的,只是我性格還不錯,做優秀員工看來還得慢慢學。

今年最大的收穫就是做了一個半專案,是在uClinux下面跑的。半個是SNMP-Agent的實現,因為我去的時候snmpd已經跑起來了,我只是實現部分管理功能;一個是基於Web的管理系統,使公司的主打產品微波通訊裝置上網。這個專案是我一手策劃,一手實現(介面設計是一位女同事,很優秀的程式設計師),從中學到的東西也最多,感情不可謂不深。

SNMP即簡單網路管理協議,其實一點都不簡單。在我所知的網路協議裡面,它僅僅比OSI的CMIP簡單一點,而CMIP直到現在還沒得到廣泛應用。我們能夠實現SNMP-Agent不能不感謝CarnegieMellon大學免費釋出的ucd-snmp軟體包。它使得開發人員專注於實現對特定裝置的管理功能。

我在專案中的工作主要是擴充套件MIB,實現相應的管理功能以及網路功能的擴充套件。我們公司的MIB庫比較龐大,但是程式執行還是挺快的。因為ucd-snmp軟體包中大量使用回撥函式,而且它將MIB樹以二叉樹形式表示,但是每個結點不是單個的MIB結點,而是一個表,包括了多個結點。回撥函式和兩層表示法的使用是操作快速的主要因素。

基於Web的管理系統我原本是打算在裝置外實現SNMP-Manager的功能,因為裝置中已經嵌入了Agent。這樣管理人員可以在世界各地通過WWW登入公司的管理平臺,實現對所有裝置的管理。但是老闆想在裝置中嵌入一個管理系統,可以通過www管理單個裝置就行,這樣工作又輕鬆了一點,就按老闆的意思做了。

我用的http伺服器是BOA,它比現在市場佔有率第一的Apache速度要快。目前還只支援CGI,我就用C寫CGI程式,古老了點。但是在開發過程中感覺用CGI比用現在流行的ASP,JSP要爽,可以隨心所欲,而且這也是用CC++語言的優點。CGI程式很簡單,它的輸入就是標準輸入,它的輸出就是標準輸出。BOA在uClinux上面跑總要出點問題的,出問題好,出了問題我就能找到問題,一來一往,我對socket程式設計,I/O多路等程式設計技術瞭解也就越來越深了。

在Linux下面搞了一年,不愛上Linux都難,個人認為軟體開發人員在Linux下面進步是最快的。那麼多優秀的開原始碼供我們研究,猶如每天與世界上最優秀的程式設計師打交道,進步於不經意間。正所謂“熟讀唐詩三百首,不會作詩也會吟”。GCC編譯器的優秀不用多說,我覺得寫Makefile也是很件開心的事。不推薦程式設計師搞開發都用IDE,隔靴捎癢很不爽。但是Linux缺點也很明顯,聽歌、看碟、玩遊戲不如Windows。恰巧公司的電腦沒音箱,乾脆我就懶得用Windows了。

用Linux而不講開源是不道德的,我們程式設計師享受著開源的好處,自然也要為開源做點貢獻。我開發的所有軟體都開源,但是我也有個“怪癖”:不喜歡別人在我程式碼未完成的時候問我要原始碼。

做嵌入式開發一年,稍稍有點心得。總結了一下,有以下幾點經驗:

1.不要玩Linux。這一點主要是對像我這樣在Linux下面開發的程式設計師來說的。因為Linux對程式設計師的吸引力很大,但它下面可以直接用的軟體還是比較少。於是我們總想到網上找一些開源的軟體裝到我們的機器上,從無到有讓人很有成就感的。要是裝上的不是最新版本的還不滿意,於是又開始忙升級。在Windows下這個過程大概沒什麼意思,全都next了。在Linux下就不一樣了,直接拿過來的原始碼很多編譯都不能通過,最新版本更是這樣,得我們自己改,而且往往時改了又改。這個過程很花時間,我就在這方面浪費了很多時間,本來有個月工作比較輕鬆,打算閱讀Linuxkernel程式碼(也想成高手),當時我機子上沒有好的閱讀工具,於是先弄了個sourcenavigator,覺得不夠又裝了個openoffice,然後又找來了幾份不同版本的kernel程式碼。結果一個月過去了,一個資料夾還沒看完。後面工作緊了,只能把看kernel當休息,直到現在才粗略看完fs,mm兩個資料夾。

2.不要滿足於C語言。C語言很優秀,也很簡單。程式設計能力不等同於用C語言能力。嵌入式開發程式設計師要有紮實的資料結構基礎,要積極的學習作業系統,積極的學習網路程式設計,要是想進行驅動開發還需要積極的學習硬體知識。

3.瞭解幾種晶片體系結構。嵌入式不像PC領域x86一統天下,在嵌入式領域ARM、MIPS、M68k等各顯神通。例如ARM7是沒有MMU的,uClinux在它上面跑是最合適了,但是沒有MMU我們也必須實現簡單的MM功能,同時沒有MMU一些常用庫函式是不能實現的,這些嵌入式開發程式設計師必須要了解。

4.編寫無錯的C程式。關於這一點建議閱讀SteveMaguire的《WritingCleanCode》。我對MS沒有好感,但這不影響我對MS裡面大牛們的尊敬。嵌入式的除錯是非常麻煩的,很耗時。雖然有gdbserver這類工具,但是你用的開發工具鏈中不一定包括它,而且就算用上了除錯仍然是很花時間的。所以要是不想天天通宵調程式呢,那就要時時以編寫無錯程式為目標。

5.瞭解一點編譯知識。這對編寫高效能程式很有幫助。

6.學習設計模式。設計模式一般在高階語言中討論較多,但是好東西應該大家一起分享。學習設計模式對提高我們的設計能力非常有幫助。用C語言也可以實現一些模式思想,例如我們常用的回撥函式,就可看作是Command模式的C語言版本。

7.要有前瞻性,要積極學習新技術。目前的嵌入式開發一般都是將PC應用加以剪裁,移植到嵌入式系統中。但是隨著通訊技術的發展,IPv6的廣泛應用,裝置上網是大勢所趨。許多新技術有可能在嵌入式領域率先應用。把握住這個趨勢,嵌入式程式設計師大有可為。

現在很多公司招程式設計師要求有嵌入式開發經驗,其實本質上嵌入式開發和我們平常的開發沒什麼不同,只是要求嚴格一點。我寫下這些希望對學習嵌入式開發的朋友們有所幫助。

嵌入式ARM軟體開發設計流程:

一、專案總體任務描述:

設計GPS/北斗接收顯示終端平臺,為資料的接收(NEMA格式),處理,圖形顯示等後端應用軟體提供平臺支援。

二、專案功能要求:

1.以PXA270微處理器配合LCD模組開發出獨立的接收顯示終端硬體平臺;

2.在該硬體平臺架構LINUX,

E作業系統

三、嵌入式軟體開發上手知識儲備和開發流程

(注:由於我們開發時買了一個樣機,這樣可以節省我們專案開發中的許多時間和降低了開發的複雜度,我們在看資料的時候,作為學習時,可以認真仔細的看每個細節,但作為開發時,有時會碰到一些無關緊要的細節問題,這時可以採用黑匣子辦法,只要會用就行了,我的理解是做專案時並不一定需要知道每個具體細節,要學會分清“系統學習”和“實踐應用”的範疇。比方說,作業系統,我們只需要拿別人的一個樣板來修改達到自己需要的要求就可以,而沒必要自己去編作業系統,一般來講,一個人自己去編寫那東西是不大現實的。所以以下我都是從實用的角度出發,總節我這段時間ARM的學習體會,從而讓對嵌入式不瞭解的新手如何迅速掌握開發中的重點以及達到開發的能力。總之,我的理解是搞開發就是大量廣泛看好的資料,一份好的資料可以節省你開發中的好多時間。不必等資料都看完再動手,那樣時間不夠,可以一邊動手一邊學習資料,需要什麼方面的知識,不懂的當即查下看懂即可。)

嵌入式軟體開發整體流程:

Uboot啟動程式碼的編寫->各模組驅動程式的開發->作業系統的移植->應用程式的開發

以下是上手的一些基本知識儲備:

1)組合語言的學習可參見資料夾“我的ARM”->“ARM彙編指令”集,不需要都掌握,只要知道有哪些指令功能,用的時候查閱就可以了。這部分的學習對用匯編編寫的“uboot”啟動程式碼的理解比較重要,啟動程式碼的詳細介紹可參見“StudyARMboot”這本書,裡面講的非常詳細。(注:如沒特殊說明,資料指的是都是“我的ARM”資料夾裡的資料)

2)C語言只需我們本科學的就夠用了,大致過一遍應用時去查就可以了。沒必要再深入系統的學習。搞Wince作業系統移植的同學有必要把C++快速學一遍,掌握C++的三大特性(抽象性,繼承和派生,多型),因為作業系統Wince的程式程式碼都是按C++的程式設計格式組織起來的,如果不懂C++的那些特性,比較難看懂程式。這方面的資料請看見資料夾“VC++學習”,裡面資料相當詳細。

3)各模組驅動程式的開發。這方面首先要熟讀晶片資料,要理解軟體程式是怎樣控制硬體的。(簡單的理解就是往暫存器裡寫不同的值以驅使硬體實現不同的功能。)剛開始不必把晶片中的每個模組都搞透,只需熟悉一些常用的模組即可,比方說串列埠,I/O口,IIC匯流排,LCD驅動控制和顯示等等,這些跟我們當前的專案都是緊密聯絡的。看各個模組晶片資料的時候可以對照示例程式結合起來看,首先要理解這個模組的工作原理,然後看程式中每個暫存器所設的引數,邊看邊思考這些程式如果我用在其他的地方該如何修改。其他的模組的學習都是觸類旁通的,關鍵是思路,可以把本科我們所做的微控制器,DSP等實驗聯想結合起來。資料可參見資料夾“44b0實驗資料”和“實驗指導書”。

4)作業系統的移植。主要是理解作業系統的一些基本概念(如對訊號量,鎖,程序同步,程序間的通訊,臨界資源使用,驅動管理,檔案儲存等等),然後知道這些概念在程式中是如何反映出它們的功能的。我們以UCOS-II這個作業系統作為理解學習,具體資料參見資料夾“uCOSII-en”,裡面資料講得非常詳細。專案中要求的是用Wince和Linux兩套作業系統,由於我們買了成套開發板,程式碼都有,我們要做的工作就是對它們進行修改和移植,所以只有當你瞭解了作業系統的一些基本概念,你才可能對它們進行修改。Linux開發難度要大些,不僅操作複雜些,而且開發用的命令列的方式,這方面的資料可參考資料夾“linux學習”和“ucLinux核心(中文手冊)”,由於嵌入式大部分用的是嵌入式linux作業系統,從學習的角度來講,這方面要多下功夫。

至於應用程式的開發,那就要看具體的應用了,這個難度不是很大。

嵌入式實訓心得體會 篇10

大二下學期,大學裡的同學都面臨著一次選擇,考研或者就業,培訓機構紛紛到學校來招生,很多人都猶豫了,也包括我。因為要花一部分費用,而且自己還沒畢業,考慮到父母的經濟能力,在反覆和家裡商量後,因為就業形勢嚴峻,而自己又不想考研,我意識到了這是自己走向社會一個關鍵的轉折點,也可能是人生的轉折點,所以我選擇參加了培訓。

剛出來的時候對這些行業我們也不是很瞭解,以前甚至都不知道嵌入式是什麼,通過老師的介紹和自己在網上看到的一些資料,發現嵌入式軟體開發的前景很好,目前嵌入式軟體工程師也是緊缺人才,通訊工程從事這方面也有專業優勢,自己大學裡學習的知識都可以在以後的工作中得到應用,於是我們選擇了來港灣做嵌入式軟體工程師的培訓。這裡有非常濃厚的學習氛圍。這裡能夠感受到社會上工作的壓力,來這裡學習的同學不全是大學剛畢業或者是還沒有畢業的大學生,有的是在工作幾年之後又回來學習的,可能他們也感覺社會在快速發展,自己也應該多學點有用的知識,以便更好地立足社會。從他們身上我能感覺到壓力,能感覺到自己的不足,讓我感覺自己學習不再只是為了一場考試,而是今後工作和生活的實力與能力。

嵌入式技術的掌握是需要一個過程的。實事求是的說,嵌入式技術的全面掌握是有相當難度的。可以輕輕鬆鬆學會嵌入式技術的說法是誇大其詞了。這個就像學英語一樣,學英語無論怎樣學,不管是“瘋狂學”還是用新理念來學,真正掌握的話還是需要一步步積累才能熟練掌握。要想在幾天內學會嵌入式,成為這方面的高手。這些想法本身是不太現實的。

現在我需要主意的是:

第一:把心踏實下來,做好打硬仗的準備。

第二:注意學習方法。儘量不要走彎路,爭取一鼓作氣入門。一旦入門了以後呢就好辦了。嵌入式技術的掌握,本身呢就比較難,要是再走些彎路,時間上會浪費,甚至會影響學習的信心。

第三:不能影響我平時的課程。不能拿了芝麻,丟了西瓜。

根據我在論壇的瞭解,我選擇學習嵌入式linux,剛好我們學校也重視嵌入式linux,有一些專業課也是相關的。

暑假的時間十分寶貴。當培訓沒有開始時,我電腦就裡安裝了linux就開始看linux核心方面的書了。我就開始看那本說,大家說linux核心情景分析不錯,我就買了上下冊,後來又買了 《深入理解linux核心》,最後也買了毛德操的《嵌入式系統》也是分析linux核心程式碼的,主要講arm相關的。

看核心期間是個非常痛苦的過程,看情景分析有種在森林中找出路,其間我組織了一些同學學習核心,幾乎沒有幾個能堅持下來的。我認為我是堅持下來了。情景分析在看第一、第二遍是幾乎沒有摸到門道,我分析有三個方面的原因:

1、自己的基礎差,這是最要害的。

2、核心本身很難。

3、沒有交流和高人指點。到了第三遍時我才摸到門,才差不多知道個linux的大概脈絡,很多細節也是稀裡糊塗。

學習linux總結,學習嵌入式的重點和難點要害在作業系統,假如沒有把握作業系統,我認為很難把握一個嵌入式系統。即使在做嵌入式開發中,作應有層的開發幾乎可以不知道作業系統也可以開發,我認為那是浮在表面的。很難深入和提高自己的層次。學習嵌入式,兩個重點,cpu和作業系統,目前比較流行arm,所以學習arm.作業系統很多,但是我在實踐中發現,做linux的技術路線很難,在windows幾乎不會有的問題,在linux開發中幾乎遍地陷阱。一掉進去劃很長時間出來,一旦解決自己又長進了!

在剛開始接觸的時候,我也是抱著本書,自己摸索,可是越看越迷茫,連很多書裡的名詞都不知道是什麼意思 ,去網上查也沒有得到答案。可是在培訓的時候我得到了很好的指點,在這裡,由於老師都是十分有經驗的專案經理,他們懂得如何去學習,從哪裡開始入手,這對於我這樣的背景知識比較薄弱又接觸時間比較短的人來說實在是太有幫助了。

學習嵌入式,XX 很重要,以前在學校的時候,XX學得並不紮實,一開始老師帶著我們把XX 從頭過了一遍,才感覺到自己確實基礎不行,於是又認真的把XX 過了一遍,在暑假的這些日子裡,學習一直很緊張,進度很快,不過老師們很負責,我們遇到的問題都會認真得給解決,學習過程中我接觸到了很多新鮮的知識和技術,確實開了不少眼界,瞭解了嵌入式開發的基本流程,學習過程中,可能是第一次接觸到這些以前根本沒見過的知識,一開始學很吃力,好多東西都聽不懂,更別說把它們聯絡起來,所以一開始一直很苦惱。

嵌入式學習,是比較耗時的,前期需要很多知識做鋪墊,有很多人在這個過程中走了不少彎路,於是開始失去耐心、失去信心,以至最終放棄學習。所以我想有必要強調一下問題,在剛開始的時候,自己什麼都不懂,可是學習的願望很強烈,每次上課都希望上完課就能如何如何,可是下來發現自己好像離自己原本的目標還很遠,於是心裡著急,自己跑到網上搜了很多資料,每天亂看,可是並沒有很大的幫助。我想說的是,學習嵌入式一定要有耐心和毅力,不能急躁,按照課程的安排自己多做一些總結和練習,等到知識慢慢的積累下來就會有一種豁然開朗的感覺。

雖然課程還沒有完,可是在這段時間的學習中,我按照老師的指導在完善的課程體系下進行系統的學習,已經掌握了U-boot、kernel以及linux移植的基本框架,(我想在今後的學習中一定會對這些知識更加熟悉以至精通!)這對於2個月前什麼都不懂的我來說已經是很大的提高了!用得是ARM9的板子,這也是市場上現在比較新的,比較流行的板子,很多公司在實際的產品開發中就用的是ARM9。在課堂上,老師的講解和我們的練習相結合,理論聯絡實際。老師除了講解知識外,還結合了大量的實際案例和操作,這對於我對問題的理解和知識的記憶有很大幫助。開學後我還需要繼續參加培訓學習。一個暑假有意義的培訓實踐,我相信在我以後的求職,工作中,這個暑假給與我的,不僅僅只是個好工作,還有各種學習熱情,方法:通過培訓,使我認識到:新課程標準下教師是學生學習的合作者,參與者,引導者。21世紀是資訊網路時代,學生很容易從學校外部資源中獲得資訊和知識,教師角色不再主要是資訊和知識的傳播者、講授者,而是學生學習的合作者。

傳統的教學方法以教師為中心,教師提問,學生回答。學生被動接受,頭腦幾乎成了知識倉庫,而新課標要求以學生為主體,以培養能力為主線。

1.課堂上努力營造一個民主平等、寬鬆和諧的學習氛圍

2.創設情境,激勵學生主動參與教學過程

3.課堂上變教師講授為學生討論、合作學習,還學生學習的主動權

4.教師應努力培養學生的學習興趣,培養學生終身學習的觀念

5.教師應關注學生的個體差異,使每個學生都得到充分的發展

6.教師應充分利用現代教育技術輔助教學,提高教學效益

幫助學生確立適當的學習目標,指導學生形成良好的學習習慣,為學生服務,建立良好融洽的課堂氣氛。

總之無論我們多麼習慣和喜歡從前的教學模式,無論有多大的艱難險阻,新課標已經為我們指明瞭新的方向,只有跟著新課標的方向,我們也才不會迷失自己的方向。