- 相關(guān)推薦
嵌入式系統學(xué)習心得總結(精選10篇)
在平日里,心中難免會(huì )有一些新的想法,可以尋思將其寫(xiě)進(jìn)心得體會(huì )中,這樣可以幫助我們分析出現問(wèn)題的原因,從而找出解決問(wèn)題的辦法。那么心得體會(huì )怎么寫(xiě)才能感染讀者呢?下面是小編為大家整理的嵌入式系統學(xué)習心得總結,希望能夠幫助到大家。
嵌入式系統學(xué)習心得總結 1
嵌入式系統用在一些特定專(zhuān)用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時(shí)對實(shí)時(shí)響應要求很高等。特別是隨著(zhù)消費家電的智能化,嵌入式更顯重要。像我們平常常見(jiàn)到的手機、PDA、電子字典、可視電話(huà)、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車(chē)電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。
看到了嵌入式系統的范圍,你也應該知道嵌入式系統工程師是做什么的,就是開(kāi)發(fā)上面的那些電子產(chǎn)品的工程師。
關(guān)于如何學(xué)習嵌入式?
學(xué)習嵌入式,該學(xué)習什么基本的知識呢?
首先C語(yǔ)言,這個(gè)是毋庸置疑的,不管是做嵌入式軟件還是硬件開(kāi)發(fā)的人員,對C語(yǔ)言的掌握這個(gè)是必需的,特別是對于以后致力于嵌入式軟件開(kāi)發(fā)的人,現在絕大部分都是用C語(yǔ)言,你說(shuō)不掌握它可以嗎?至于如何學(xué)習C語(yǔ)言,我想這些基礎的知識每個(gè)人都有自己的方法,關(guān)鍵要去學(xué)習,看書(shū)也好,網(wǎng)上找些視頻看也好。很多人會(huì )問(wèn),C語(yǔ)言要學(xué)到怎么樣,我覺(jué)得這沒(méi)有標準的答案。我想至少你在明白了一些基礎的概念后,就該寫(xiě)代碼了,動(dòng)手才是最重要的,當你動(dòng)手了,遇到問(wèn)題了,再反過(guò)來(lái)學(xué)習,反過(guò)來(lái)查查課本,那時(shí)的收獲就不是你死看書(shū)能得到的。
其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進(jìn)程、線(xiàn)程,系統如何來(lái)分配資源的,系統如何來(lái)管理硬件的,當然,不是看書(shū)就能把這些理解透,如果不是一時(shí)能理解,沒(méi)關(guān)系,多看看,結合以后的項目經(jīng)驗,會(huì )有更好的理解的。
還有應該學(xué)習嵌入式系統,如linux或者wince下的編程,這些對以后做應用的編程很有幫助,當然,如果做手機的話(huà),那可以學(xué)習MTK、塞班、Android等操作系統,Android是以后發(fā)展的.趨勢,現在很熱門(mén),Android也是基于linux系統封裝的,所以建議先學(xué)習下linux。
還有,應該學(xué)習下單片機或者ARM或者M(jìn)IPS,很多人說(shuō)我沒(méi)有單片機的經(jīng)驗,直接學(xué)ARM可以嗎?我覺(jué)得那完全沒(méi)有問(wèn)題的,當然如果你學(xué)習過(guò)單片機,那最好不過(guò)了,以后學(xué)習ARM就更簡(jiǎn)單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結合arm芯片手冊學(xué)習去學(xué)習下UBOOT的源代碼,了解下最小的系統開(kāi)發(fā),那對你整個(gè)嵌入式開(kāi)發(fā)的非常有幫助的,可以的話(huà),還可以學(xué)習下linux的源代碼,當然如果你直接閱讀2.6的代碼,我想你會(huì )很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
至于上面說(shuō)的知識如何學(xué)習呢?每個(gè)人都應該去找自己最好的方法,所謂的最好的方法就是最適合自己的方法。很多人看不進(jìn)書(shū),那就去看看視頻吧。視頻也應該要選擇,不是隨便看看,應該要有所選擇,有所挑選。我也是這樣一路走過(guò)來(lái)的,不過(guò)我這人比較懶,我看不進(jìn)書(shū),一看書(shū)我就想睡覺(jué),所以這幾年我都是看視頻過(guò)來(lái)的,現在也算學(xué)有所成,但也不敢說(shuō)是高手吧。
我在網(wǎng)上看到,有人把自己學(xué)習嵌入式的視頻總結出來(lái),嵌入式系列實(shí)踐和視頻教程,大家可以看看網(wǎng)址我仔細看了覺(jué)得很不錯,我本來(lái)也想整理下,可是奈何我自己的電腦硬盤(pán)空間才40G,沒(méi)有辦法,時(shí)間也是不夠,心有余而力不足,我不是在幫他做廣告,雖然要花錢(qián),我覺(jué)得算不錯,至少自己不用去整理和花大量的時(shí)間去找資源,當然如果網(wǎng)上有的下,你網(wǎng)速和硬盤(pán)都夠的話(huà),我建議大家自己網(wǎng)上下也好。想想我自己該開(kāi)始學(xué)的時(shí)候,那時(shí)視頻資源少之又少,我買(mǎi)書(shū)和買(mǎi)視頻至少花了幾千塊,但是我覺(jué)得那很值,至少我現在賺回來(lái)了很多知識。
最后,希望這篇文章對熱愛(ài)嵌入式,想致力于嵌入式開(kāi)發(fā)的朋友有所幫助。送給大家一句簡(jiǎn)單而又樸素的話(huà),堅持就是勝利,貴在堅持,也可以看看如何堅持嵌入式學(xué)習!
嵌入式系統學(xué)習心得總結 2
首先我聲明,我是基于嵌入式系統平臺級設計的,硬件這個(gè)方向我相對來(lái)講比較有發(fā)言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專(zhuān)業(yè)級講師溝通。他們的方面上我只能說(shuō)是知道些,但不是太多,初級的問(wèn)題也可以問(wèn)我。
對于硬件來(lái)講有幾個(gè)方向,就單純信號來(lái)分為數字和模擬,模擬比較難搞,一般需要很長(cháng)的經(jīng)驗積累,單單一個(gè)阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著(zhù)技術(shù)的發(fā)展,出現了模擬電路數字化,比如手機的Modem射頻模塊,都采用成熟的套片,而當年國際上只有兩家公司有此技術(shù),自我感覺(jué)模擬功能不太強的人,不太適合搞這個(gè),如果真能搞定到手機的射頻模塊,只要達到一般程度可能月薪都在15K以上。
另一類(lèi)就是數字部分了,在大方向上又可分為51/ARM的單片機類(lèi),DSP類(lèi),FPGA類(lèi),國內FPGA的工程師大多是在IC設計公司從事IP核的前端驗證,這部分不搞到門(mén)級,前途不太明朗,即使做個(gè)IC前端驗證工程師,也要搞上幾年才能勝任。DSP硬件接口比較定型,如果不向驅動(dòng)或是算法上靠攏,前途也不會(huì )太大。而ARM單片機類(lèi)的內容就較多,業(yè)界產(chǎn)品占用量大,應用人群廣,因此就業(yè)空間極大,而硬件設計最體現水平和水準的`就是接口設計這塊,這是各個(gè)高級硬件工程師相互較量,判定水平高低的依據。而接口設計這塊最關(guān)鍵的是看時(shí)序,而不是簡(jiǎn)單的連接,比如PXA255處理器I2C要求速度在100Kbps,如果把一個(gè)I2C外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在總線(xiàn)接LCD,但為什么這種LCD就不能掛在A(yíng)RM的總線(xiàn)上,還有ARM7總線(xiàn)上可以外接個(gè)Winband的SD卡控制器,但為什么這種控制器接不到ARM9或是Xscale處理器上,這些都是問(wèn)題。因此接口并不是一種簡(jiǎn)單的連接,要看時(shí)序,要看參數。 一個(gè)優(yōu)秀的硬件工程師應該能夠在沒(méi)有參考方案的前提下設計出一個(gè)在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現有的方案,也要進(jìn)行適當的可行性裁剪,但不是胡亂的來(lái),我遇到一個(gè)工程師把方案中的5V變1.8V的DC芯片,直接更換成LDO,有時(shí)就會(huì )把CPU燒上幾個(gè)。前幾天還有人希望我幫忙把他們以前基于PXA255平臺的手持GPS設備做下程序優(yōu)化,我問(wèn)了一下情況,地圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間采用的SPI接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程序的問(wèn)題,因此我提了幾條建議,讓他們更新試下再說(shuō)。因此想成為一個(gè)優(yōu)秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話(huà)說(shuō),給你一套電路圖你終究能看明白多少,看不明白80%以上的話(huà),說(shuō)明你離優(yōu)秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計PCB繪制,邏輯設計這塊。這是指的硬件設計工程師,從上面的硬件設計工程師中還可以分出ECAD工程師,就是專(zhuān)業(yè)的畫(huà)PCB板的工程師,和EMC設計工程師,幫人家解決EMC的問(wèn)題。硬件工程師再往上就是板級測試工程師,就是C語(yǔ)功底很好的硬件工程師,在電路板調試過(guò)程中能通過(guò)自已編寫(xiě)的測試程序對硬件功能進(jìn)行驗證。然后再交給基于操作系統級的驅動(dòng)開(kāi)發(fā)人員。
總之,硬件的內容很多很雜,硬件那方面練成了都會(huì )成為一個(gè)高手,我時(shí)常會(huì )給人家做下方案評估,很多高級硬件工程師設計的東西,經(jīng)常被我一句話(huà)否定,因此工程師做到我這種地步,也會(huì )得罪些人,但硬件的確會(huì )有很多不為人知的東西,讓很多高級硬件工程師也摸不到頭腦。
那么高級硬件件工程師技術(shù)技能都要具備那些東西哪,首先要掌握EDA設計的輔助工具類(lèi)如ProtelORCADPowperPCBMaplux2ISE、VDHL語(yǔ)言,要能用到這些工具畫(huà)圖畫(huà)板做邏輯設計,再有就是接口設計審圖能力,再者就是調試能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。
硬件是要靠經(jīng)驗,也要靠積累的,十年磨一劍,百年磨一針。
把一個(gè)月前想寫(xiě)的東西,今天終于用一上午的進(jìn)間整理完了,希望對喜愛(ài)嵌入式系統開(kāi)發(fā)的工程師和學(xué)生們有所幫助。
嵌入式系統學(xué)習心得總結 3
時(shí)間過(guò)的緊快,在粵嵌教育已經(jīng)培訓,有5個(gè)月了培訓期間贏(yíng)來(lái)很多,也認識了班上的自學(xué)大神,經(jīng)過(guò)系統的學(xué)習,老師的細心指導,我的付出努力,對于嵌入式上,學(xué)到很多實(shí)用的知識在動(dòng)手操作能力也加強了,不僅在專(zhuān)業(yè)領(lǐng)域技術(shù)方而有了很大進(jìn)步,而且在實(shí)踐操作方面我也對嵌入式有了更深入的了解。也許這5個(gè)月是這兒我在外而學(xué)習和生活最寶貴的時(shí)間。
在校兩年,讀于電子信息韋爾泰宗工程技術(shù)專(zhuān)業(yè)的我,就覺(jué)得這研習專(zhuān)業(yè)領(lǐng)域學(xué)的知識太廣了,不管基礎還是動(dòng)手操作,都要比較靈活。在校期間,學(xué)習單片機,傳感器,C語(yǔ)言,嵌入式應用技術(shù)等課程。感覺(jué)學(xué)起來(lái),對我來(lái)說(shuō)接受還是比較快的,那時(shí)就有想過(guò):學(xué)的多不如學(xué)的短萼,也許高中學(xué)生對課程多于理論為主,理解它的原理和基本計算機程序方法方式。其實(shí),我還是有努力去學(xué)的,可以說(shuō),在?迫卫蠋煻冀虝(huì )我很多專(zhuān)業(yè)知識,為我將來(lái)的學(xué)習和發(fā)展打好基礎。
在大三期間,為了更為拉著(zhù)明確自己要走的方向,去培訓嵌入式軟件技術(shù)開(kāi)發(fā)。也許將要投身嵌入式行業(yè)的我,就注定代價(jià)這條路要付出不少時(shí)間和精力,但如果我好求比較強,接受還行,就不停給自己送祝福,努力!要去培訓嵌入式,時(shí),我從網(wǎng)上也對它有更加的想像也看下大學(xué)的嵌入式應用技術(shù)書(shū),嵌入式系統是軟件和硬件的綜合體,以應用為中心,以科學(xué)計算為基礎,軟硬件可裁剪,改變應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專(zhuān)用負載計算機系統。
剛開(kāi)始嵌入式學(xué)習,對Linux系統的專(zhuān)業(yè)知識加于鞏固。一些簡(jiǎn)單的代碼,C語(yǔ)言,對于嵌入式軟件還是硬件開(kāi)發(fā)的人員,對C語(yǔ)言的掌握這個(gè)是沃蘇什,卡的,特別是對于以后致力于嵌入式軟件開(kāi)發(fā)的人現在絕大部分全都是用C語(yǔ)言。在下來(lái)兩個(gè)月就對Linux系統,數據結構、系統移植的方法、A8的體系結構、Linux內核及驅動(dòng)設計、 android> C+Java的JNI應用編程的系統學(xué)習。在每學(xué)個(gè)階段就作一個(gè)考試,基本知識對前面所學(xué)的知識進(jìn)行復習,有些會(huì )做一個(gè)簡(jiǎn)單的小項目,學(xué)以致用。知識量還是比較多,但教學(xué)也比較快,有些知識還沒(méi)消化完,第二天又接受新知識,對于能在課上基本上就可以對知識完全懂的并不多,晚上都用一個(gè)半小時(shí)來(lái)復習。經(jīng)過(guò)5個(gè)月系統的學(xué)習,嵌入式技術(shù)方面有了很大進(jìn)步,實(shí)踐操作方而也對嵌入式有了更深入的了解。在最后一個(gè)月,基于A(yíng)8(S5PV210)的嵌入式智能家居系統制作。
下而我談?wù)勗诨洴B砌教育的培訓感受,我培訓的地點(diǎn)是在科學(xué)城粵嵌教育培訓中心的`多媒體課室里,這里有研習環(huán)境非常好,在緊張的學(xué)習的整個(gè)過(guò)程中,你可以得到名師的督促,也可以體會(huì )到第一流企業(yè)高質(zhì)量的培訓。在課堂上,老師們認真的演說(shuō),以及手把手地教導,使每個(gè)學(xué)生都能夠扎實(shí)地掌握到嵌入式的各方而的知識。而粵嵌幼兒教育教育的老師也是操作實(shí)踐為主,實(shí)踐是非常重要的,只有把知識掌握到位,才能達到學(xué)習的目的。
感謝粵嵌教育機構,感謝粵嵌教育老師。
嵌入式系統學(xué)習心得總結 4
首先,我們學(xué)習的課本是嵌入式系統應用教程。我學(xué)習的體會(huì )是這樣的:開(kāi)始時(shí),由于是剛剛入門(mén),對老師書(shū)的好多東西是好奇的,好多名詞也是新鮮的,不過(guò)不太懂什么意思。但是慢慢的,了解的深入讓我有了更深的感觸和體會(huì )。
在嵌入式的學(xué)習過(guò)程中,讓我了解了什么是嵌入式系統。它就是以應用為中心,以計算機技術(shù)為基礎,軟硬件可定制,適用于不同應用場(chǎng)合,對功能、可靠性、成本、體積、功耗有嚴格要求的計算機系統。他一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統、用戶(hù)應用程序四個(gè)部分組成,用于實(shí)現對其他設備的控制、監視或管理功能。嵌入式系統已經(jīng)應用于科學(xué)研究、工業(yè)控制、軍事技術(shù)、交通通信、醫療衛生、消費娛樂(lè )等領(lǐng)域,人們日常使用的手機、PDA、汽車(chē)、智能家電、GPS等均是嵌入式系統的典型代表。
一開(kāi)始我們就學(xué)習嵌入式的系統的基礎部分,那很簡(jiǎn)單,就是一些定義或是介紹之類(lèi)的。在進(jìn)入第二章時(shí),就開(kāi)始學(xué)習了嵌入式開(kāi)發(fā)過(guò)程中的主要操作系統——linux,在接下來(lái)的課程中,我發(fā)現嵌入式的學(xué)習過(guò)程還是蠻有趣的。在對linux的學(xué)習中,我們對它有了一點(diǎn)點(diǎn)的了解,接著(zhù)就是學(xué)習一虛擬機的方式安裝linux。對我來(lái)說(shuō)有趣的就是安裝的過(guò)程了,首先我們跟著(zhù)老師的腳步走,學(xué)會(huì )了怎么安裝,在自己動(dòng)手進(jìn)行對它的安裝,這個(gè)過(guò)程是簡(jiǎn)單而有趣的。這樣的開(kāi)始讓我對它充滿(mǎn)了興趣,也對以后的學(xué)習充滿(mǎn)了信心。
其次就是安裝好了之后,老師就更深一步的教我們應用了。在這是老師首先交給我們的.是一些簡(jiǎn)單的命令應用,Linux具有很豐富的命令,絕大多數命令具有大量的參數。
在學(xué)習命令的過(guò)程中,只要你認真的看著(zhù)老師操作還有認真聽(tīng)著(zhù)他講,你就會(huì )發(fā)現有些命令的操作還是很簡(jiǎn)單的,不過(guò)在操作的過(guò)程中,我也有遇到有些困難,會(huì )出現你按照書(shū)上學(xué)習的例子,將命令輸入終端時(shí)會(huì )出現你不想要的結果,也就是錯誤的結果。這是問(wèn)問(wèn)旁邊的同學(xué)或是懂的同學(xué)就可以解決了。
在對于這部分的學(xué)習中,讓我知道了命令對于嵌入式的重要性。它是linux的重要內容,linux中所有的功能都是通過(guò)命令執行。在實(shí)際應用中,為了減少系統開(kāi)銷(xiāo),經(jīng)常不使用圖形界面,此時(shí),對系統的所有操作都需要以命令方式來(lái)執行。在嵌入式系統開(kāi)發(fā)過(guò)程中,由于目標機的性能和配置比較低,因此,一般情況下目標機僅具有命令窗口而沒(méi)有圖形界面,對目標機的所有操作都通過(guò)命令來(lái)實(shí)現。
還有的那就是進(jìn)一步學(xué)習與嵌入式系統開(kāi)發(fā)相關(guān)的linux的服務(wù),他們的啟動(dòng)、設置等的操作和應用。而在學(xué)習之中,我們主要介紹的是嵌入式系統中開(kāi)發(fā)工程使用的TFTP、Telent和NFS服務(wù)。第一個(gè)實(shí)現的事上機位與下機位之間文件的傳輸、無(wú)磁盤(pán)網(wǎng)絡(luò )的設備的啟動(dòng)等功能;第二個(gè)實(shí)現的事遠程登錄功能;第三個(gè)實(shí)現的是網(wǎng)絡(luò )文件系統功能。
從以上的內容之中,并不難感受到我們的學(xué)習過(guò)程是由淺入深的,這對于我們的學(xué)習也有了較好的幫助。
當然,我們學(xué)習的不僅僅是這么幾個(gè)內容,其中還有相關(guān)的實(shí)驗內容。在我們基礎的學(xué)習的過(guò)程之中,我有了這么一點(diǎn)的感受,總的來(lái)說(shuō)就是概念加專(zhuān)業(yè)名詞還有介紹加實(shí)驗。不過(guò)你絕對不能小看那些概念和介紹,它對我們有著(zhù)很重要的指導作用哦!實(shí)驗那就更不用說(shuō)了,它提高我們的動(dòng)手能力,在實(shí)驗的過(guò)程中還能讓你更加理解書(shū)中的理念,這就是我學(xué)習嵌入式的感受。
嵌入式系統學(xué)習心得總結 5
研究嵌入式系統已經(jīng)有快兩年的時(shí)間了。很慶幸自己當初選擇了嵌入式系統作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養和研究能力都有了很大的提高。
在嵌入式系統的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺階,但這段小小的距離讓我受益頗多,現將其中心得奉獻出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫(xiě)之前,想先寫(xiě)一句話(huà),千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認為你是天才,請以天才的標準來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。
。1)學(xué)習與生活心態(tài)
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計算機或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿(mǎn)志,但在大學(xué)的管理機制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。
不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競爭出發(fā),因為這才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì )享受學(xué)習它的時(shí)間,喜歡喬XXX的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。
因為只有你喜歡上了它,享受了它,才不會(huì )被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉換。要抱著(zhù)一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎開(kāi)始,不要為高速開(kāi)發(fā)的一些現象所迷惑,那些都只是軟件的功勞。
我個(gè)人認為搞編程,英語(yǔ)和數學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當然其他的知識也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補充自己。轉換的生活方式。要學(xué)會(huì )生活,在人的一生中,都會(huì )遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰場(chǎng)上要會(huì )將劣勢轉成優(yōu)勢,即最大的'劣勢很可能就是你的優(yōu)勢所在。
一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)幊巢恍?臻e的時(shí)候可以躺下來(lái)看看天,你就會(huì )明白自強不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內的盡力幫之,這對自己不會(huì )損失什么,相反在對方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。
。2)編程語(yǔ)言的選擇語(yǔ)言的爭論。
很多初學(xué)擇,老是在學(xué)習何種語(yǔ)言上舉棋不定,試問(wèn),中國牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話(huà)的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級和大小。
就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎上。放心,技術(shù)再飛躍也不會(huì )今天奔I,明天扣肉的迅速,在學(xué)習的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線(xiàn)的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話(huà),很欣慰。
表明你是從基礎學(xué)起才會(huì )問(wèn)出這樣的話(huà)來(lái)。但換而言之你一開(kāi)始對這門(mén)語(yǔ)言調查的信息不足。廟算者勝,對自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導你的人不夠充分。如果是我對新手交流,我會(huì )花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。
這樣在學(xué)的時(shí)候,對同一條語(yǔ)句上的理解你可能跟別人就不一樣了,因為你知道這門(mén)語(yǔ)言的體系架構,你可以從更多的特性角度去挖掘使用它。提高自己對語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話(huà)的,方法就不具體說(shuō)了。
編程的思維。計算機是充滿(mǎn)誘惑的東西,很多人都說(shuō)熱愛(ài)計算機,那只是它的表面,你熱愛(ài)的只是他的一種擴展性的東西。能學(xué)計算機我很高興,因為計算機從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解決它,可以以一種戰爭狂人的思維來(lái)摧毀它。
你可以將你的這種思維體現在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì )他的思維,比如數學(xué),微積分,離散,無(wú)數的定理,你學(xué)完以后可能永遠都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對了,這就是它思維上的一種運用,一種抽象,一種轉換。
嵌入式系統學(xué)習心得總結 6
就我個(gè)人而言,從最開(kāi)始對嵌入式一竅不通到現在越學(xué)越感興趣,當然相應在嵌入式方面的提高也是很明顯的。學(xué)習嵌入式越來(lái)越成為我學(xué)習中的一部分,現在把我的學(xué)習過(guò)程的心得體會(huì )與大家一起分享,希望那些和我一樣對嵌入式想學(xué)而又迷茫,不知從哪入手的同學(xué)朋友有所幫助。
1 .基礎知識
嵌入式開(kāi)發(fā)很大一部分靠C語(yǔ)言,尤其在底層驅動(dòng)等用的很多,當然在應用開(kāi)發(fā)還用到諸如C++等其他語(yǔ)言,但我想對于一個(gè)初學(xué)者有C基礎就足夠了,等到學(xué)到一定程度再去擴展。所以C基礎是學(xué)嵌入式的前提。
關(guān)于C語(yǔ)言需要知道基本的語(yǔ)法,什么是結構體,什么是共用體,有什么區別,不用強記一些實(shí)際中用的很少的東西。C++要知道什么是類(lèi),怎么定義,繼承,接口,要深刻理解,當然基本語(yǔ)法也是必不可少的。
操作系統原理也需要基本理解和掌握的,我記得我上課的時(shí)候不以為然沒(méi)有認真學(xué)習,后來(lái)發(fā)現很多的東西都是在這個(gè)課上講到的`。什么時(shí)間片啊,任務(wù)調度啊,都是在那里知道的。
Linux基本命令的使用(vi編輯器必須會(huì )用,因為在終端修改文件的時(shí)候只能用這個(gè)),我們現在很多的人都習慣用鼠標了,很少用到命令,我學(xué)習嵌入Linux就強迫自己去改掉這個(gè)習慣了,Linux用命令操作一是效率高,二是功能非常強大,遠非圖形界面能比的了的,其實(shí)我們用圖形界面的操作都要轉化為命令傳給硬件的。Linux文件系統的管理要清楚,哪個(gè)目錄存放是什么東西,有什么用,文件權限管理等。
2.單片機知識的學(xué)習
我覺(jué)得單片機、嵌入式等這一類(lèi)都有很大的相似性,知識功能不一樣,但工作的原理、控制原理都和大的相似。就我個(gè)人而言,能比較快的進(jìn)入嵌入式的學(xué)習與提高,很大一部分依賴(lài)于對單片機的原理有較深入的學(xué)習和理解,單片機比較簡(jiǎn)單,學(xué)習起來(lái)相對比較容易,所以我建議想學(xué)嵌入式的同學(xué),可以和我一樣從單片機入手,那樣不僅可以理解這些微處理器、微控制器的操作與控制原理,當然還可以順便學(xué)學(xué)匯編語(yǔ)言,這對后面的嵌入式學(xué)習都有很大的幫助。
看書(shū)不要希望一次就會(huì ),一次就明白是什么意思,也不要死記硬背,看不明白也沒(méi)關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀Linux內核源代碼,看一些自己把頭撞破也想不明白的事,一開(kāi)始很打擊我的積極性,要循序漸進(jìn),剛開(kāi)始我就從學(xué)習做led開(kāi)始的,接著(zhù)學(xué)習做個(gè)串口,慢慢的就開(kāi)始學(xué)著(zhù)做硬件編解碼了。
3.學(xué)習開(kāi)發(fā)板
我在剛開(kāi)始學(xué)習嵌入式時(shí)就買(mǎi)了一塊學(xué)習板,現在的開(kāi)發(fā)板不是很貴,給很我們初學(xué)者減輕了經(jīng)濟負擔?丛俣嗟囊曨l,看再多的書(shū),也不如自己動(dòng)手試一下,看著(zhù)很簡(jiǎn)單的東西,做起來(lái)就可能遇到很多的問(wèn)題,遇到問(wèn)題找到原因,解決問(wèn)題,只有這樣才能學(xué)到東西,記得我第一次寫(xiě)led的驅動(dòng),想自己試一下,網(wǎng)上也有人寫(xiě)過(guò)相關(guān)的代碼,可是自己一試,就出了好多的問(wèn)題,那個(gè)led弄了我一天才把led燈點(diǎn)亮。所以不要眼高手低。
4.不要好高騖遠,要腳踏實(shí)地
我拿到開(kāi)發(fā)板時(shí),很興奮也很激動(dòng),想法自然也很多,想用開(kāi)發(fā)板實(shí)現自己的這個(gè)想法,實(shí)現那個(gè)想法,然后又不知道從何下手,然后就去論壇中發(fā)一個(gè)貼,“那個(gè)什么什么怎么實(shí)現啊,哪位大俠能詳細說(shuō)一下啊,跪求!”,然后等著(zhù)別人去回復。我覺(jué)得有想法是好的,我們要實(shí)現自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去Google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問(wèn)題,再去發(fā)貼問(wèn),這樣也顯得我們有一點(diǎn)點(diǎn)水平啦。比如自己連串口是什么都不太清楚呢,就問(wèn)串口通信怎么做啊,就是人家把代碼給我們,我們也不明白是怎么回事啊。
5.多看代碼,多寫(xiě)代碼
見(jiàn)多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來(lái)。自己平時(shí)也要多寫(xiě)代碼,多練習(這一點(diǎn)我做的不好,寫(xiě)的少)。
個(gè)人覺(jué)得這是最重要的一種做法。這東西沒(méi)自己親手做,程序沒(méi)親手寫(xiě),沒(méi)有進(jìn)行調試等,都是很難學(xué)到東西,因為很多東西感覺(jué)看的都懂,其實(shí)真正做起來(lái)就什么都不會(huì )了。因此買(mǎi)塊板來(lái)自己做,這樣才能真正將所學(xué)的應用到實(shí)際中去。而且這樣做印象才能深刻,死記硬背原理及規則不但不可行還會(huì )拖垮你的學(xué)習興趣,自然學(xué)不下。
總之,我覺(jué)得,基礎知識很重要,但是動(dòng)手做更重要!
嵌入式系統學(xué)習心得總結 7
這個(gè)題目很大,給人一種感覺(jué)我好像很成功,其實(shí)不然。實(shí)際上自己水平不高,甚至很低,但是做過(guò)了一些曲折的學(xué)習道路,同時(shí)把自己真實(shí)的學(xué)習歷程表達出來(lái),希望對后來(lái)者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業(yè)于華中地區的一個(gè)理工科大學(xué),專(zhuān)業(yè)是機械電子,我當時(shí)已經(jīng)簽了一家內陸某個(gè)省級機關(guān)工作,家里八輩是農民,并且很偏遠,能夠進(jìn)入這樣的地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個(gè)進(jìn)入it的機會(huì ),我本想進(jìn)去的,家里人極力反對,阻力可想而知。同時(shí)要交4000元的違約金,對我來(lái)說(shuō)是天文數字。大學(xué)里的費用很多是借的,幾乎將近一半的費用是在大學(xué)勤工儉學(xué)掙的,為了省錢(qián),高中一個(gè)學(xué)期回家一次,大學(xué)一年回去一次。并且我個(gè)人也有特殊的人生背景(悲景更確切),這里不多說(shuō)了,寫(xiě)十篇也寫(xiě)不完,同時(shí)偏離主題。這樣我就參加了工作。一張報紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺(jué)。在工作中雖然是與自己專(zhuān)業(yè)有點(diǎn)關(guān)系,但是很少。專(zhuān)業(yè)幾乎荒廢。我自己也思考,如果再不出去,自己將會(huì )成廢人,只好讓國家養了。兩年后決定出去,但是幾成廢人,誰(shuí)要呢,只好到學(xué)校去鍍金。這是中國教育和社會(huì )的悲哀!
至于專(zhuān)業(yè)就改為計算機方面,聽(tīng)說(shuō)好找工作,我說(shuō)實(shí)話(huà)不是很對計算機特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績(jì)出來(lái),超過(guò)了國家線(xiàn)幾十分。那個(gè)方向要兩個(gè),我第三,但是那年非碘,不面試就按分數來(lái)排,自然我落選了。其實(shí)給我面試機會(huì )也不一定要我,哈哈,自己幾斤幾兩很清楚。
最后調劑到另外一個(gè)學(xué)校,交錢(qián),咬咬牙,交吧!現在仍然債臺高筑!
進(jìn)入學(xué)校前夕
為什么要把這段列出,看后就知道了。
單位有網(wǎng)絡(luò ),經(jīng)常上網(wǎng)查些英語(yǔ)資料,在那里唯獨英語(yǔ)沒(méi)有丟很多。于是我就在網(wǎng)上查資料,學(xué)什么好呢,最后確定學(xué)嵌入式把,聽(tīng)說(shuō)跟硬件相對比較緊密!而我在大學(xué)里多少學(xué)習了數字電路,單片機等,所以多少也有所利用,不會(huì )真的一無(wú)所知。當然在這之
前也自學(xué)過(guò)數據結構,計算機組成原理等。c 語(yǔ)言在大學(xué)就學(xué)了。哈哈這就是我的家底。
我知道自己的基礎差,于是我就拿操作系統,數據庫、數據結構、c++來(lái)看,機關(guān)有這個(gè)好處,空余時(shí)間多,于是平常就看書(shū),很痛苦,沒(méi)有人請教。
另外就上網(wǎng)到論壇上去,我就到各個(gè)專(zhuān)業(yè)的技術(shù)論壇,其實(shí)是電子論壇和嵌入式論壇。我幾乎沒(méi)有發(fā)帖,幾乎把幾個(gè)大型的出名的論壇的帖子翻遍了,雖然有很多重復的,我才知道嵌入式是個(gè)什么東東。這些帖子對我以后的學(xué)習產(chǎn)生了極大的影響。
最關(guān)鍵兩點(diǎn):
1、嵌入式是什么?
2、嵌入式需要哪些知識?
知道了這兩點(diǎn),好辦!我就開(kāi)始規劃學(xué)習路線(xiàn)。計算機的基本理論不能丟,于是重點(diǎn)看組成原理,數據機構,操作系統、c++。同時(shí)論壇上了解到,實(shí)時(shí)操作系統ucos是一個(gè)很好的嵌入式操作系統,對初學(xué)者很好。于是我就買(mǎi)了一本書(shū),但是代碼在電腦里調不通,網(wǎng)上也有很多相同的問(wèn)題,我就看書(shū),分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門(mén),才知道什么是進(jìn)程。原來(lái)看操作系統書(shū)時(shí),根本就不知道進(jìn)程是個(gè)什么東西。
在這段時(shí)間掌握的東西不多,但是,對我以后的影響很大,我想起了大學(xué)時(shí)一個(gè)同學(xué)跟我說(shuō)過(guò)了一句話(huà):大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會(huì )怎么學(xué)!大概是這個(gè)意思。
進(jìn)入我的避難所
對我來(lái)講,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所。希望這次進(jìn)入給我喘氣和養精蓄銳的機會(huì )和時(shí)間。我是這樣認為和實(shí)踐的。
在學(xué)校我有三件事:上課,上圖書(shū)館,上網(wǎng)。
對于上課,學(xué)校開(kāi)了很多課程,非常好,很多是名人名師講解,于是很多同學(xué)都想學(xué),都去聽(tīng)。我也考慮過(guò),最后放棄。我是這樣認為的,時(shí)間是有限的,什么都想學(xué),什么都學(xué)不成。于是我把我自己學(xué)的.課進(jìn)行了分化,一般的課程通過(guò)就行,重要的一定好好學(xué)。我希望不要什么爭論學(xué)習課程多和少的問(wèn)題,這僅僅是我的看法。所以我的成績(jì)應該是很差的。分數低。好在后來(lái)的單位沒(méi)有要我的成績(jì)單,否則就慘了。
我個(gè)人感覺(jué)是上圖書(shū)館的效率比在寢室里高多了,這是我的經(jīng)驗。
嵌入式系統學(xué)習心得總結 8
現在的嵌入式工作是越來(lái)越盛行,而這方面的人員卻是越來(lái)越少,所以學(xué)習嵌入式是解決找工作難的一個(gè)比較有效的途徑。因為我開(kāi)始踏上學(xué)習嵌入式的道路。聽(tīng)別人說(shuō)嵌入式ARM相比于其他的嵌入式FPGA,DSP等都要難點(diǎn),而且學(xué)習的內容量也是比較多。因此在學(xué)習嵌入式ARM的初級階段是隨處碰壁,每天都在遭受打擊,例如在移植bootloader時(shí),雖然按照網(wǎng)上的一些方法移植成功了,但只知道復制和粘貼要修改的代碼,卻不知道為何要這么做。我覺(jué)得這樣的學(xué)習態(tài)度是不對的,學(xué)習不是只求結果,而是要注重解決問(wèn)題的過(guò)程!為了學(xué)習嵌入式Linux我也在網(wǎng)上查閱了很多的書(shū)籍,還下載了很多的視頻,但都不是很讓人如意。它們大多是講的很淺顯,都是泛泛之談,沒(méi)有講到最核心的東西。到了最后是浪費了我們學(xué)習者的時(shí)間和精力。
之后看見(jiàn)師兄有一本韋東山老師編輯的《嵌入式Linux應用開(kāi)發(fā)完全手冊》,我就借了幾天看了看,發(fā)現韋老師對嵌入式Linux的極其深度的分析,讓我一下子找到了能帶我入門(mén)的一本書(shū)!并且還有配套的視頻教學(xué)更是講解地非常到位,將教材和視頻相互配合的學(xué)習,更加大大的提供了學(xué)習效率,尤其是視頻上講解的內容,都是韋東山老師自己親自授教,完全沒(méi)有按照教材上的內容一一讀出來(lái),而是根據內核代碼分析的教我如何編寫(xiě)自己的代碼,尤其是在Linux內核中占比例最重的一部分—內核驅動(dòng)時(shí),更是讓我知道用戶(hù)是如何通過(guò)應用程序來(lái)訪(fǎng)問(wèn)底層硬件的,解決了我長(cháng)久以來(lái)都無(wú)法攻克的`難題!!例如在編寫(xiě)LCD驅動(dòng)時(shí),我對于書(shū)上LCD硬件工作原理不是理解的很透徹,通過(guò)觀(guān)看韋東山老師的第二期視頻中的“LCD驅動(dòng)程序”,老師就像是站在我面前,在屏幕上用電子筆細細給我講解,寫(xiě)出更加形象的LCD的硬件驅動(dòng),重要的是在整個(gè)視頻中老師都沒(méi)有按著(zhù)教材念,而是一個(gè)教學(xué)經(jīng)驗豐富的老師在給同學(xué)們授課一樣。
編寫(xiě)代碼也是親自編寫(xiě),沒(méi)有完全復制別人的代碼,編寫(xiě)的同時(shí)不斷的說(shuō)明每條語(yǔ)句的作用、編程思想和設計程序的經(jīng)驗,還有閱讀大量代碼的技巧!在視頻中老師教會(huì )了許多其他書(shū)本中沒(méi)有提及到的重要知識。
嵌入式系統學(xué)習心得總結 9
從實(shí)習到現在搞嵌入式開(kāi)發(fā)快一年了,驀然回首好像一年過(guò)得挺快,挺順利的。細細品味,發(fā)現這一年還是有很多值得回憶和總結的東西。至少這一年看書(shū)挺多,大概二十幾本,當然和那些一年看一百多本書(shū)的人沒(méi)法比,但是我已經(jīng)超越了自己。這是我大學(xué)畢業(yè)的第一年,初次走上社會(huì ),很想一展身手,可是.....其實(shí)也不用可是了,和很多朋友一樣碰了很多釘子,現在我和老板的關(guān)系就挺一般的,只是我性格還不錯。呵呵~~,做優(yōu)秀員工看來(lái)還得慢慢學(xué)。
今年最大的收獲就是做了一個(gè)半項目,是在uClinux下面跑的。半個(gè)是SNMP-Agent的實(shí)現,因為我去的時(shí)候snmpd已經(jīng)跑起來(lái)了,我只是實(shí)現部分管理功能;一個(gè)是基于Web的管理系統,使公司的主打產(chǎn)品微波通信設備上網(wǎng)。這個(gè)項目是我一手策劃,一手實(shí)現(界面設計是一位女同事,很優(yōu)秀的程序員),從中學(xué)到的東西也最多,感情不可謂不深。
SNMP即簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議,其實(shí)一點(diǎn)都不簡(jiǎn)單。在我所知的網(wǎng)絡(luò )協(xié)議里面,它僅僅比OSI的CMIP簡(jiǎn)單一點(diǎn),而CMIP直到現在還沒(méi)得到廣泛應用。我們能夠實(shí)現SNMP-Agent不能不感謝CarnegieMellon大學(xué)免費發(fā)布的ucd-snmp軟件包。它使得開(kāi)發(fā)人員專(zhuān)注于實(shí)現對特定設備的管理功能。
我在項目中的工作主要是擴展MIB,實(shí)現相應的管理功能以及網(wǎng)絡(luò )功能的擴展。我們公司的MIB庫比較龐大,但是程序運行還是挺快的。因為ucd-snmp軟件包中大量使用回調函數,而且它將MIB樹(shù)以二叉樹(shù)形式表示,但是每個(gè)結點(diǎn)不是單個(gè)的MIB結點(diǎn),而是一個(gè)表,包括了多個(gè)結點(diǎn);卣{函數和兩層表示法的使用是操作快速的主要因素。
基于Web的管理系統我原本是打算在設備外實(shí)現SNMP-Manager的功能,因為設備中已經(jīng)嵌入了Agent。這樣管理人員可以在世界各地通過(guò)WWW登錄公司的管理平臺,實(shí)現對所有設備的管理。但是老板想在設備中嵌入一個(gè)管理系統,可以通過(guò)www管理單個(gè)設備就行。呵呵~~,這樣工作又輕松了一點(diǎn),就按老板的意思做了。
我用的http服務(wù)器是BOA,它比現在市場(chǎng)占有率第一的Apache速度要快。目前還只支持CGI,我就用C寫(xiě)CGI程序,古老了點(diǎn)。但是在開(kāi)發(fā)過(guò)程中感覺(jué)用CGI比用現在流行的ASP,JSP要爽,可以隨心所欲,哈哈~~,而且這也是用CC++語(yǔ)言的優(yōu)點(diǎn)。CGI程序很簡(jiǎn)單,它的輸入就是標準輸入,它的輸出就是標準輸出。BOA在uClinux上面跑總要出點(diǎn)問(wèn)題的,出問(wèn)題好,出了問(wèn)題我就能找到問(wèn)題,一來(lái)一往,我對socket編程,I/O多路等編程技術(shù)了解也就越來(lái)越深了。
在Linux下面搞了一年,不愛(ài)上Linux都難,個(gè)人認為軟件開(kāi)發(fā)人員在Linux下面進(jìn)步是最快的。那么多優(yōu)秀的開(kāi)源代碼供我們研究,猶如每天與世界上最優(yōu)秀的程序員打交道,進(jìn)步于不經(jīng)意間。哈哈~~。正所謂“熟讀唐詩(shī)三百首,不會(huì )作詩(shī)也會(huì )吟”。GCC編譯器的優(yōu)秀不用多說(shuō),我覺(jué)得寫(xiě)Makefile也是很件開(kāi)心的事。不推薦程序員搞開(kāi)發(fā)都用IDE,隔靴捎癢很不爽。但是Linux缺點(diǎn)也很明顯,聽(tīng)歌、看碟、玩游戲不如Windows。恰巧公司的電腦沒(méi)音箱,干脆我就懶得用Windows了。
用Linux而不講開(kāi)源是不道德的,我們程序員享受著(zhù)開(kāi)源的好處,自然也要為開(kāi)源做點(diǎn)貢獻。我開(kāi)發(fā)的所有軟件都開(kāi)源,但是我也有個(gè)“怪癖”:不喜歡別人在我代碼未完成的時(shí)候問(wèn)我要源代碼。
做嵌入式開(kāi)發(fā)一年,稍稍有點(diǎn)心得?偨Y了一下,有以下幾點(diǎn)經(jīng)驗:
1.不要玩Linux。這一點(diǎn)主要是對像我這樣在Linux下面開(kāi)發(fā)的程序員來(lái)說(shuō)的。因為L(cháng)inux對程序員的吸引力很大,但它下面可以直接用的軟件還是比較少。于是我們總想到網(wǎng)上找一些開(kāi)源的軟件裝到我們的機器上,從無(wú)到有讓人很有成就感的,呵呵~~。要是裝上的不是最新版本的還不滿(mǎn)意,于是又開(kāi)始忙升級。在Windows下這個(gè)過(guò)程大概沒(méi)什么意思,全都next了。在Linux下就不一樣了,直接拿過(guò)來(lái)的源代碼很多編譯都不能通過(guò),最新版本更是這樣,得我們自己改,而且往往時(shí)改了又改。這個(gè)過(guò)程很花時(shí)間,我就在這方面浪費了很多時(shí)間,本來(lái)有個(gè)月工作比較輕松,打算閱讀Linuxkernel代碼(也想成高手,呵呵~~),當時(shí)我機子上沒(méi)有好的閱讀工具,于是先弄了個(gè)sourcenavigator,覺(jué)得不夠又裝了個(gè)openoffice,然后又找來(lái)了幾份不同版本的kernel代碼。結果一個(gè)月過(guò)去了,一個(gè)文件夾還沒(méi)看完。后面工作緊了,只能把看kernel當休息,直到現在才粗略看完fs,mm兩個(gè)文件夾。
2.不要滿(mǎn)足于C語(yǔ)言。C語(yǔ)言很優(yōu)秀,也很簡(jiǎn)單。程序設計能力不等同于用C語(yǔ)言能力。嵌入式開(kāi)發(fā)程序員要有扎實(shí)的數據結構基礎,要積極的學(xué)習操作系統,積極的學(xué)習網(wǎng)絡(luò )編程,要是想進(jìn)行驅動(dòng)開(kāi)發(fā)還需要積極的學(xué)習硬件知識。
3.了解幾種芯片體系結構。嵌入式不像PC領(lǐng)域x86一統天下,在嵌入式領(lǐng)域ARM、MIPS、M68k等各顯神通。例如ARM7是沒(méi)有MMU的,uClinux在它上面跑是最合適了,但是沒(méi)有MMU我們也必須實(shí)現簡(jiǎn)單的MM功能,同時(shí)沒(méi)有MMU一些常用庫函數是不能實(shí)現的,這些嵌入式開(kāi)發(fā)程序員必須要了解。
4.編寫(xiě)無(wú)錯的C程序。關(guān)于這一點(diǎn)建議閱讀SteveMaguire的《WritingCleanCode》。我對MS沒(méi)有好感,但這不影響我對MS里面大牛們的尊敬。嵌入式的調試是非常麻煩的,很耗時(shí)。雖然有g(shù)dbserver這類(lèi)工具,但是你用的開(kāi)發(fā)工具鏈中不一定包括它,而且就算用上了調試仍然是很花時(shí)間的。所以要是不想天天通宵調程序呢,那就要時(shí)時(shí)以編寫(xiě)無(wú)錯程序為目標。
5.了解一點(diǎn)編譯知識。這對編寫(xiě)高性能程序很有幫助。
6.學(xué)習設計模式。設計模式一般在高級語(yǔ)言中討論較多,但是好東西應該大家一起分享。學(xué)習設計模式對提高我們的.設計能力非常有幫助。用C語(yǔ)言也可以實(shí)現一些模式思想,例如我們常用的回調函數,就可看作是Command模式的C語(yǔ)言版本。
7.要有前瞻性,要積極學(xué)習新技術(shù)。目前的嵌入式開(kāi)發(fā)一般都是將PC應用加以剪裁,移植到嵌入式系統中。但是隨著(zhù)通信技術(shù)的發(fā)展,IPv6的廣泛應用,設備上網(wǎng)是大勢所趨。許多新技術(shù)有可能在嵌入式領(lǐng)域率先應用。把握住這個(gè)趨勢,嵌入式程序員大有可為。
現在很多公司招程序員要求有嵌入式開(kāi)發(fā)經(jīng)驗,其實(shí)本質(zhì)上嵌入式開(kāi)發(fā)和我們平常的開(kāi)發(fā)沒(méi)什么不同,只是要求嚴格一點(diǎn)。我寫(xiě)下這些希望對學(xué)習嵌入式開(kāi)發(fā)的朋友們有所幫助。
嵌入式ARM軟件開(kāi)發(fā)設計流程
一.項目總體任務(wù)描述:
設計GPS/北斗接收顯示終端平臺,為數據的接收(NEMA格式),處理,圖形顯示等后端應用軟件提供平臺支持。
二.項目功能要求:
1.以PXA270微處理器配合LCD模塊開(kāi)發(fā)出獨立的接收顯示終端硬件平臺;
2.在該硬件平臺架構LINUX,
3.WINCE操作系統
三.嵌入式軟件開(kāi)發(fā)上手知識儲備和開(kāi)發(fā)流程
(注:由于我們開(kāi)發(fā)時(shí)買(mǎi)了一個(gè)樣機,這樣可以節省我們項目開(kāi)發(fā)中的許多時(shí)間和降低了開(kāi)發(fā)的復雜度,我們在看資料的時(shí)候,作為學(xué)習時(shí),可以認真仔細的看每個(gè)細節,但作為開(kāi)發(fā)時(shí),有時(shí)會(huì )碰到一些無(wú)關(guān)緊要的細節問(wèn)題,這時(shí)可以采用黑匣子辦法,只要會(huì )用就行了,我的理解是做項目時(shí)并不一定需要知道每個(gè)具體細節,要學(xué)會(huì )分清“系統學(xué)習”和“實(shí)踐應用”的范疇。比方說(shuō),操作系統,我們只需要拿別人的一個(gè)樣板來(lái)修改達到自己需要的要求就可以,而沒(méi)必要自己去編操作系統,一般來(lái)講,一個(gè)人自己去編寫(xiě)那東西是不大現實(shí)的。所以以下我都是從實(shí)用的角度出發(fā),總節我這段時(shí)間ARM的學(xué)習體會(huì ),從而讓對嵌入式不了解的新手如何迅速掌握開(kāi)發(fā)中的重點(diǎn)以及達到開(kāi)發(fā)的能力?傊,我的理解是搞開(kāi)發(fā)就是大量廣泛看好的資料,一份好的資料可以節省你開(kāi)發(fā)中的好多時(shí)間。不必等資料都看完再動(dòng)手,那樣時(shí)間不夠,可以一邊動(dòng)手一邊學(xué)習資料,需要什么方面的知識,不懂的當即查下看懂即可。)
嵌入式軟件開(kāi)發(fā)整體流程:
Uboot啟動(dòng)代碼的編寫(xiě)->各模塊驅動(dòng)程序的開(kāi)發(fā)->操作系統的移植->應用程序的開(kāi)發(fā)
以下是上手的一些基本知識儲備:
1)匯編語(yǔ)言的學(xué)習可參見(jiàn)文件夾“我的ARM”->“ARM匯編指令”集,不需要都掌握,只要知道有哪些指令功能,用的時(shí)候查閱就可以了。這部分的學(xué)習對用匯編編寫(xiě)的“uboot”啟動(dòng)代碼的理解比較重要,啟動(dòng)代碼的詳細介紹可參見(jiàn)“StudyARMboot”這本書(shū),里面講的非常詳細。(注:如沒(méi)特殊說(shuō)明,資料指的是都是“我的ARM”文件夾里的資料)
2)C語(yǔ)言只需我們本科學(xué)的就夠用了,大致過(guò)一遍應用時(shí)去查就可以了。沒(méi)必要再深入系統的學(xué)習。搞Wince操作系統移植的同學(xué)有必要把C++快速學(xué)一遍,掌握C++的三大特性(抽象性,繼承和派生,多態(tài)),因為操作系統Wince的程序代碼都是按C++的編程格式組織起來(lái)的,如果不懂C++的那些特性,比較難看懂程序。這方面的資料請看見(jiàn)文件夾“VC++學(xué)習”,里面資料相當詳細。
3)各模塊驅動(dòng)程序的開(kāi)發(fā)。這方面首先要熟讀芯片資料,要理解軟件程序是怎樣控制硬件的。(簡(jiǎn)單的理解就是往寄存器里寫(xiě)不同的值以驅使硬件實(shí)現不同的功能。)剛開(kāi)始不必把芯片中的每個(gè)模塊都搞透,只需熟悉一些常用的模塊即可,比方說(shuō)串口,I/O口,IIC總線(xiàn),LCD驅動(dòng)控制和顯示等等,這些跟我們當前的項目都是緊密聯(lián)系的?锤鱾(gè)模塊芯片資料的時(shí)候可以對照示例程序結合起來(lái)看,首先要理解這個(gè)模塊的工作原理,然后看程序中每個(gè)寄存器所設的參數,邊看邊思考這些程序如果我用在其他的地方該如何修改。其他的模塊的學(xué)習都是觸類(lèi)旁通的,關(guān)鍵是思路,可以把本科我們所做的單片機,DSP等實(shí)驗聯(lián)想結合起來(lái)。資料可參見(jiàn)文件夾“44b0實(shí)驗資料”和“實(shí)驗指導書(shū)”。
4)操作系統的移植。主要是理解操作系統的一些基本概念(如對信號量,鎖,進(jìn)程同步,進(jìn)程間的通信,臨界資源使用,驅動(dòng)管理,文件存儲等等),然后知道這些概念在程序中是如何反映出它們的功能的。我們以UCOS-II這個(gè)操作系統作為理解學(xué)習,具體資料參見(jiàn)文件夾“uCOSII-en”,里面資料講得非常詳細。項目中要求的是用Wince和Linux兩套操作系統,由于我們買(mǎi)了成套開(kāi)發(fā)板,代碼都有,我們要做的工作就是對它們進(jìn)行修改和移植,所以只有當你了解了操作系統的一些基本概念,你才可能對它們進(jìn)行修改。Linux開(kāi)發(fā)難度要大些,不僅操作復雜些,而且開(kāi)發(fā)用的命令行的方式,這方面的資料可參考文件夾“l(fā)inux學(xué)習”和“ucLinux核心(中文手冊)”,由于嵌入式大部分用的是嵌入式linux操作系統,從學(xué)習的角度來(lái)講,這方面要多下功夫。
至于應用程序的開(kāi)發(fā),那就要看具體的應用了,這個(gè)難度不是很大。
嵌入式系統學(xué)習心得總結 10
本人大學(xué)學(xué)的是電子信息科學(xué)與技術(shù)專(zhuān)業(yè),其實(shí)這個(gè)專(zhuān)業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說(shuō)有關(guān)系就是簡(jiǎn)單的講了下C語(yǔ)言語(yǔ)法,學(xué)完之后還不知道什么是C語(yǔ)言,只記住了,char,int,string等占幾個(gè)字節,if, for, while循環(huán)什么的,感覺(jué)也就能算一些小學(xué)就會(huì )的題目,全國計算機等級二級也就糊涂的過(guò)了。我這個(gè)專(zhuān)業(yè)沒(méi)學(xué)過(guò)C++,一開(kāi)始不知道什么是向對象,什么叫面向過(guò)程,這可能讓大家笑話(huà)了。不過(guò)這說(shuō)的是實(shí)話(huà),大學(xué)的時(shí)候比較喜歡動(dòng)手,喜歡硬件方面的東西,也喜歡看書(shū)。在大一的時(shí)候就聽(tīng)學(xué)長(cháng)說(shuō),單片機很難學(xué),在沒(méi)事的時(shí)候就從圖書(shū)管借了本關(guān)于51的書(shū),一開(kāi)始還真是不怎么懂,然后硬著(zhù)頭皮去看,當我把51的結構看完了,就不像一開(kāi)始那樣一頭霧水了,自己在紙上把51的結構圖默畫(huà)一遍,然后再把各個(gè)寄存器功能寫(xiě)一下,各個(gè)功能口的結構也畫(huà)一遍,然后就不覺(jué)得51有什么難了。其實(shí)有些時(shí)候不是這個(gè)東西你不會(huì ),而是在不會(huì )的時(shí)候自己先告訴自己這個(gè)太難了,自己先放棄了。我們學(xué)習51芯片,是為了以后的打基礎,知道是怎么通過(guò)配置寄存器來(lái)實(shí)現功能。
大二下學(xué)期的時(shí)候,我們開(kāi)了51的課,這個(gè)課幾乎就沒(méi)怎么去,因為我認為沒(méi)有必要去聽(tīng)自己會(huì )的東西了。后來(lái)聽(tīng)別人說(shuō)avr的資源會(huì )比51的豐富的很多,所以就想試試,看看有什么難的,就從網(wǎng)上買(mǎi)了本馬潮老師《AVR單片機嵌入式系統原理與應用實(shí)踐》,一邊看書(shū),一邊想自己畫(huà)一個(gè)板了,一開(kāi)始想實(shí)現一個(gè)點(diǎn)陣屏,實(shí)現滾動(dòng)效果,后來(lái)想想做個(gè)板也花不少錢(qián)呢,為什么不多加一些功能呢,還能多學(xué)到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴展口都擴展了出來(lái),備以后用,那時(shí)還挺自豪的呢,同學(xué)們都很羨慕,不過(guò)現在想想其實(shí)也沒(méi)什么了。
大學(xué)也聽(tīng)說(shuō)過(guò)嵌入式這個(gè)詞,不過(guò)不太明白是什么意思,20xx年的時(shí)候從網(wǎng)上找到中嵌視頻,有四張DVD(大約13G),下載下來(lái)后,從頭到尾的看了一遍,沒(méi)什么印象,只記得講一些不知所云的函數,然后莫名其妙的講怎么使用那個(gè)44b0的開(kāi)發(fā)板,不過(guò)聽(tīng)完了,還是有很大收獲的,就有一種想裝一個(gè)linux的沖動(dòng),我是大二下學(xué)期才有的自己電腦,不過(guò)電腦的配置比較低,1g內存,跑虛擬機就像個(gè)蝸牛,所以就想著(zhù)怎么才能裝個(gè)linux,自己用XP習慣了,如果全換了又舍不得,那時(shí)從書(shū)上知道linux的文件系統和windows不一樣,只有一個(gè)根分區,所以也害怕一裝linux全盤(pán)就被格式化了,不過(guò)最后還是欲望戰勝了擔心,買(mǎi)了張redhat 9的光盤(pán),小心的裝這個(gè)系統,里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤(pán)的最后空間,重新啟動(dòng),竟可以選擇進(jìn)入哪一個(gè)系統了,從這之后,自己就不害怕怎么裝系統了,應了那句言,紙上得來(lái)終覺(jué)淺,絕知此事要躬行。所以我認為,買(mǎi)一個(gè)開(kāi)發(fā)板是完全有必要的,拿到實(shí)物操作一下就不會(huì )感覺(jué)太抽象了。后來(lái)也想學(xué)學(xué)arm,但不知道arm是什么東西,所以就買(mǎi)了本《從51到arm》,講的是關(guān)于arm的大體結構,看完后感覺(jué),原來(lái)arm就是一個(gè)速度更快,接口更豐富的單片機埃如果想做linux設備驅動(dòng)的同學(xué)應該對arm硬件有一些了解。如果對驅動(dòng)不感興趣,完全沒(méi)有必要去看。交叉編譯器會(huì )幫我們做好這些事情,他比我們更了解arm結構。
大三下學(xué)期開(kāi)始準備考研了,所以自己這些興趣就先放下了,報的北郵的信通學(xué)院通信專(zhuān)業(yè),當時(shí)就是想一定要上個(gè)好學(xué)校好專(zhuān)業(yè),也沒(méi)想太多,結果考了的成績(jì)差了點(diǎn),沒(méi)有被錄取,也不想調劑一個(gè)二流的學(xué)校,然后就參加工作了,工作中每天都用的到開(kāi)發(fā)板,當我看到一個(gè)小板上還可以跑系統的時(shí)候感覺(jué)很不可思議,以為要很大工程。后來(lái)邊工作邊學(xué)習,每天都要看電腦看到眼發(fā)疼,晚上也都差不多十二點(diǎn)時(shí)才睡覺(jué)。感覺(jué)到累,不過(guò)也感覺(jué)到自己在進(jìn)步。
閑話(huà)有點(diǎn)多了,說(shuō)了很多都是自己大學(xué)那點(diǎn)破事。
聽(tīng)很多的初學(xué)者說(shuō)不知道從哪里開(kāi)始,學(xué)習嵌入都要學(xué)哪些東西,從網(wǎng)上搜了一下,一大堆的東西要學(xué),一下就推薦十幾本書(shū),說(shuō)看完這本書(shū)怎么怎么樣,看完那本書(shū)怎么怎么樣,一下子就給初學(xué)者給嚇住了,其實(shí)完全沒(méi)必要把網(wǎng)上的那些東西全部看一遍,那樣又費時(shí),又感覺(jué)工程太大,讓初學(xué)者沒(méi)有信心去把每一種都看完。網(wǎng)上說(shuō)的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個(gè)都知道一些,當然會(huì )的越多越好。今天學(xué)點(diǎn)這個(gè)明天學(xué)點(diǎn)那,換著(zhù)樣來(lái)也不會(huì )覺(jué)得煩。而且還能感覺(jué)到每天都有收獲。
下面給嵌入式初學(xué)者一些自己的我個(gè)人建議。
1嵌入式涉及到很多的基礎知識:
c語(yǔ)言,關(guān)于C語(yǔ)言要知道基本的語(yǔ)法,什么是結構體,什么是共用體,有什么區別,不用強記一些二級考的東西,因在實(shí)際中用的'很少。
c++要知道什么是類(lèi),怎么定義,繼承,接口,要深刻理解,當然基本語(yǔ)法也是必不可少的。
操作系統原理也應該知道基本的原理的,我記得我大學(xué)沒(méi)這個(gè)課還是去電信學(xué)院蹭別的專(zhuān)業(yè)的課呢,后來(lái)學(xué)習發(fā)現很多的東西都是在這個(gè)課上學(xué)到的。什么時(shí)間片啊,任務(wù)調度啊,都是在那里知道的。
Linux基本命令的使用(vi編輯器必須會(huì )用,因為在終端改文件的時(shí)候只能用這個(gè)),我們現在很多的人都習慣用鼠標了,很少用到命令,我們學(xué)習嵌入linux可要改改這個(gè)習慣了,linux用命令操作一是效率高,二是功能非常強大,遠非圖形界面能比的了的,其實(shí)我們用圖形界面的操作都要轉化為命令傳給硬件的。
Linux文件系統的管理要清楚,哪個(gè)目錄存放是什么東西,有什么用,文件權限管理等Shell編程也要了解一些,在這給大家推薦一個(gè)教程,周朝劍的shell編程,也就七八講吧,講的很全面。初學(xué)者看前4講就可以了。
Linux設備驅動(dòng)的架構要了解,初學(xué)者可以以飛凌的OK6410開(kāi)發(fā)板上的led驅動(dòng)分析一下,結合原理圖和linux設備驅動(dòng)相關(guān)書(shū)籍把每一行代碼都分析明白。關(guān)于驅動(dòng)給大家推薦一本書(shū)《LINUX社備驅動(dòng)程序》中國電力出版社出版的,很經(jīng)典的,初學(xué)者看可能看不太明白,不過(guò)要堅持看,最次也得把前6章看完了。
2看書(shū)不要希望一次就會(huì ),一次就明白是什么意思,也不要死記硬背,看不明白也沒(méi)關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀linux內核源代碼,看一些自己把頭撞破也想不明白的事,會(huì )打擊初學(xué)者的積極性,要循序漸進(jìn),今天學(xué)個(gè)做個(gè)led,明天做個(gè)串口,后天說(shuō)不定就做硬件編解碼了。
3、你可以不接受培訓,但是不能不買(mǎi)開(kāi)發(fā)板。
如果你想學(xué)習嵌入式一定要買(mǎi)塊學(xué)習板,現在的開(kāi)發(fā)板很便宜了,給我們初學(xué)者減輕了很多經(jīng)濟負擔?丛俣嗟囊曨l,看再多的書(shū),也不如自己動(dòng)手試一下,看著(zhù)很簡(jiǎn)單的東西,做起來(lái)就可能遇到很多的問(wèn)題,遇到問(wèn)題找到原因,解決問(wèn)題,只有這樣才能學(xué)到東西,記得我第一次寫(xiě)led的驅動(dòng),想自己試一下,網(wǎng)上也有人寫(xiě)過(guò)相關(guān)的代碼,可是自己一試,就出了好多的問(wèn)題,那個(gè)led弄了我一天才把led燈點(diǎn)亮。所以不要眼高手低。
還有關(guān)于培訓,現在的培訓機構很多,講的也不錯,老師也很好,但是有一個(gè)問(wèn)題,太集中了,而且學(xué)生動(dòng)手的機會(huì )也不太多,記得我們公司還招了一個(gè)在北京某個(gè)培訓機構培訓半年的員工呢,花了一萬(wàn)多,來(lái)了之后也沒(méi)感覺(jué)有多高,問(wèn)他都學(xué)了什么,也就是我前邊說(shuō)的那些基礎知識,很多的東西還是不知道的,照著(zhù)書(shū)弄個(gè)helloworld模塊驅動(dòng)兩天沒(méi)搞定。不是培訓不好,但我個(gè)人見(jiàn)解效果并不是很好。記。褐挥凶约簞(dòng)手做過(guò)的東西才是自己的。
現在買(mǎi)一塊開(kāi)發(fā)板很便宜,飛凌的OK6410的開(kāi)發(fā)板就不錯,源碼完全開(kāi)放,而且資料也很豐富,完全能滿(mǎn)足初學(xué)者學(xué)習用,有人說(shuō)友善的板子也不錯,我個(gè)人覺(jué)得友善的板子不錯,但是不適合初學(xué)者,因為他的很多的東西是不給代碼的,用過(guò)友善的板子的同學(xué)經(jīng)常有這樣的痛苦,想學(xué)一個(gè)東西,去找他的代碼的時(shí)候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶(hù)一個(gè)庫,初學(xué)者想要找代碼的時(shí)候就不知道怎么辦了。
4不要好高騖遠,要腳踏實(shí)地
對于初學(xué)者,還有一點(diǎn)小建議,我們拿到一個(gè)開(kāi)發(fā)板,很興奮也很激動(dòng),想法自然也很多,想用開(kāi)發(fā)板實(shí)現自己的這個(gè)想法,實(shí)現那個(gè)想法,然后又不知道從何下手,然后就去論壇中發(fā)一個(gè)貼,“那個(gè)什么什么怎么實(shí)現啊,哪位大俠能詳細說(shuō)一下啊,跪求!1然后等著(zhù)別人去回復。見(jiàn)沒(méi)人回復就抱怨。有想法是好的,我們要實(shí)現自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問(wèn)題,再去發(fā)貼問(wèn),這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問(wèn)串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事埃
5多看代碼,多寫(xiě)代碼
見(jiàn)多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來(lái)。自己平時(shí)也要多寫(xiě)代碼,多練習(這一點(diǎn)我做的不好,寫(xiě)的少)。
寫(xiě)完已經(jīng)晚上兩點(diǎn)了,思路有些亂,有些也是個(gè)人的見(jiàn)解,在有些人看來(lái)可能是錯誤的,每個(gè)人有每個(gè)人的學(xué)習方法,但是我們的目的只有一個(gè)——希望我們學(xué)到更多的知識。
【嵌入式系統學(xué)習心得總結】相關(guān)文章:
嵌入式系統實(shí)習報告01-29
探討嵌入式系統的應用08-27
嵌入式系統內存的管理方案研究10-29
慣有嵌入式系統內存管理方案研究11-26
嵌入式學(xué)習心得體會(huì )10-26
嵌入式系統年度實(shí)習報告范文09-17
嵌入式系統工程師崗位職責05-19