嵌入式心得體會
當(dāng)我們備受啟迪時,不如來好好地做個總結(jié),寫一篇心得體會,如此就可以提升我們寫作能力了。怎樣寫好心得體會呢?下面是小編精心整理的嵌入式心得體會,僅供參考,希望能夠幫助到大家。
嵌入式心得體會1
首先,我們學(xué)習(xí)的課本是嵌入式系統(tǒng)應(yīng)用教程。我學(xué)習(xí)的體會是這樣的:開始時,由于是剛剛?cè)腴T,對老師書的好多東西是好奇的,好多名詞也是新鮮的,不過不太懂什么意思。但是慢慢的,了解的深入讓我有了更深的感觸和體會。
在嵌入式的學(xué)習(xí)過程中,讓我了解了什么是嵌入式系統(tǒng)。它就是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),軟硬件可定制,適用于不同應(yīng)用場合,對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的計算機(jī)系統(tǒng)。他一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)、用戶應(yīng)用程序四個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理功能。嵌入式系統(tǒng)已經(jīng)應(yīng)用于科學(xué)研究、工業(yè)控制、軍事技術(shù)、交通通信、醫(yī)療衛(wèi)生、消費(fèi)娛樂等領(lǐng)域,人們?nèi)粘J褂玫氖謾C(jī)、PDA、汽車、智能家電、GPS等均是嵌入式系統(tǒng)的典型代表。
一開始我們就學(xué)習(xí)嵌入式的系統(tǒng)的基礎(chǔ)部分,那很簡單,就是一些定義或是介紹之類的。在進(jìn)入第二章時,就開始學(xué)習(xí)了嵌入式開發(fā)過程中的主要操作系統(tǒng)——linux,在接下來的課程中,我發(fā)現(xiàn)嵌入式的學(xué)習(xí)過程還是蠻有趣的。在對linux的學(xué)習(xí)中,我們對它有了一點點的了解,接著就是學(xué)習(xí)一虛擬機(jī)的方式安裝linux。對我來說有趣的就是安裝的過程了,首先我們跟著老師的腳步走,學(xué)會了怎么安裝,在自己動手進(jìn)行對它的安裝,這個過程是簡單而有趣的。這樣的開始讓我對它充滿了興趣,也對以后的學(xué)習(xí)充滿了信心。
其次就是安裝好了之后,老師就更深一步的教我們應(yīng)用了。在這是老師首先交給我們的是一些簡單的命令應(yīng)用,Linux具有很豐富的命令,絕大多數(shù)命令具有大量的參數(shù)。
在學(xué)習(xí)命令的過程中,只要你認(rèn)真的看著老師操作還有認(rèn)真聽著他講,你就會發(fā)現(xiàn)有些命令的操作還是很簡單的,不過在操作的過程中,我也有遇到有些困難,會出現(xiàn)你按照書上學(xué)習(xí)的例子,將命令輸入終端時會出現(xiàn)你不想要的結(jié)果,也就是錯誤的結(jié)果。這是問問旁邊的同學(xué)或是懂的同學(xué)就可以解決了。
在對于這部分的學(xué)習(xí)中,讓我知道了命令對于嵌入式的重要性。它是linux的重要內(nèi)容,linux中所有的功能都是通過命令執(zhí)行。在實際應(yīng)用中,為了減少系統(tǒng)開銷,經(jīng)常不使用圖形界面,此時,對系統(tǒng)的所有操作都需要以命令方式來執(zhí)行。在嵌入式系統(tǒng)開發(fā)過程中,由于目標(biāo)機(jī)的性能和配置比較低,因此,一般情況下目標(biāo)機(jī)僅具有命令窗口而沒有圖形界面,對目標(biāo)機(jī)的所有操作都通過命令來實現(xiàn)。
還有的那就是進(jìn)一步學(xué)習(xí)與嵌入式系統(tǒng)開發(fā)相關(guān)的linux的服務(wù),他們的啟動、設(shè)置等的操作和應(yīng)用。而在學(xué)習(xí)之中,我們主要介紹的是嵌入式系統(tǒng)中開發(fā)工程使用的TFTP、Telent和NFS服務(wù)。第一個實現(xiàn)的事上機(jī)位與下機(jī)位之間文件的'傳輸、無磁盤網(wǎng)絡(luò)的設(shè)備的啟動等功能;第二個實現(xiàn)的事遠(yuǎn)程登錄功能;第三個實現(xiàn)的是網(wǎng)絡(luò)文件系統(tǒng)功能。
從以上的內(nèi)容之中,并不難感受到我們的學(xué)習(xí)過程是由淺入深的,這對于我們的學(xué)習(xí)也有了較好的幫助。
當(dāng)然,我們學(xué)習(xí)的不僅僅是這么幾個內(nèi)容,其中還有相關(guān)的實驗內(nèi)容。在我們基礎(chǔ)的學(xué)習(xí)的過程之中,我有了這么一點的感受,總的來說就是概念加專業(yè)名詞還有介紹加實驗。不過你絕對不能小看那些概念和介紹,它對我們有著很重要的指導(dǎo)作用哦!實驗?zāi)蔷透挥谜f了,它提高我們的動手能力,在實驗的過程中還能讓你更加理解書中的理念,這就是我學(xué)習(xí)嵌入式的感受。
嵌入式心得體會2
嵌入式學(xué)習(xí)心得時間過的緊快,在粵嵌教育已經(jīng)培訓(xùn),有5個月了培訓(xùn)期間贏來很多,也認(rèn)識了班上的自學(xué)大神,經(jīng)過系統(tǒng)的學(xué)習(xí),老師的細(xì)心指導(dǎo),我的付出努力,對于嵌入式上,學(xué)到很多實用的知識在動手操作能力也加強(qiáng)了,不僅在專業(yè)領(lǐng)域技術(shù)方而有了很大進(jìn)步,而且在實踐操作方面我也對嵌入式有了更深入的了解。也許這5個月是這兒我在外而學(xué)習(xí)和生活最寶貴的時間。
在校兩年,讀于電子信息韋爾泰宗工程技術(shù)專業(yè)的我,就覺得這研習(xí)專業(yè)領(lǐng)域?qū)W的知識太廣了,不管基礎(chǔ)還是動手操作,都要比較靈活。在校期間,學(xué)習(xí)單片機(jī),傳感器,C語言,嵌入式應(yīng)用技術(shù)等課程。感覺學(xué)起來,對我來說接受還是比較快的,那時就有想過:學(xué)的多不如學(xué)的短萼,也許高中學(xué)生對課程多于理論為主,理解它的原理和基本計算機(jī)程序方法方式。其實,我還是有努力去學(xué)的,可以說,在校科任老師都教會我很多專業(yè)知識,為我將來的學(xué)習(xí)和發(fā)展打好基礎(chǔ)。
在大三期間,為了更為拉著明確自己要走的.方向,去培訓(xùn)嵌入式軟件技術(shù)開發(fā)。也許將要投身嵌入式行業(yè)的我,就注定代價這條路要付出不少時間和精力,但如果我好求比較強(qiáng),接受還行,就不停給自己送祝福,努力!要去培訓(xùn)嵌入式,時,我從網(wǎng)上也對它有更加的想像也看下大學(xué)的嵌入式應(yīng)用技術(shù)書,嵌入式系統(tǒng)是軟件和硬件的綜合體,以應(yīng)用為中心,以科學(xué)計算為基礎(chǔ),軟硬件可裁剪,改變應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用負(fù)載計算機(jī)系統(tǒng)。
剛開始嵌入式學(xué)習(xí),對Linux系統(tǒng)的專業(yè)知識加于鞏固。一些簡單的代碼,C語言,對于嵌入式軟件還是硬件開發(fā)的人員,對C語言的掌握這個是沃蘇什,卡的,特別是對于以后致力于嵌入式軟件開發(fā)的人現(xiàn)在絕大部分全都是用C語言。在下來兩個月就對Linux系統(tǒng),數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)移植的方法、A8的體系結(jié)構(gòu)、Linux內(nèi)核及驅(qū)動設(shè)計、 android> C+Java的JNI應(yīng)用編程的系統(tǒng)學(xué)習(xí)。在每學(xué)個階段就作一個考試,基本知識對前面所學(xué)的知識進(jìn)行復(fù)習(xí),有些會做一個簡單的小項目,學(xué)以致用。知識量還是比較多,但教學(xué)也比較快,有些知識還沒消化完,第二天又接受新知識,對于能在課上基本上就可以對知識完全懂的并不多,晚上都用一個半小時來復(fù)習(xí)。經(jīng)過5個月系統(tǒng)的學(xué)習(xí),嵌入式技術(shù)方面有了很大進(jìn)步,實踐操作方而也對嵌入式有了更深入的了解。在最后一個月,基于A8(S5PV210)的嵌入式智能家居系統(tǒng)制作。
下而我談?wù)勗诨洴B砌教育的培訓(xùn)感受,我培訓(xùn)的地點是在科學(xué)城粵嵌教育培訓(xùn)中心的多媒體課室里,這里有研習(xí)環(huán)境非常好,在緊張的學(xué)習(xí)的整個過程中,你可以得到名師的督促,也可以體會到第一流企業(yè)高質(zhì)量的培訓(xùn)。在課堂上,老師們認(rèn)真的演說,以及手把手地教導(dǎo),使每個學(xué)生都能夠扎實地掌握到嵌入式的各方而的知識。而粵嵌幼兒教育教育的老師也是操作實踐為主,實踐是非常重要的,只有把知識掌握到位,才能達(dá)到學(xué)習(xí)的目的。
感謝粵嵌教育機(jī)構(gòu),感謝粵嵌教育老師。
嵌入式心得體會3
目前最常見的嵌入式LINUX方面,我認(rèn)為大概3個:
1.嵌入式LINUX上層的應(yīng)用,包括QT的GUI開發(fā)
2.嵌入式的LINUX系統(tǒng)開發(fā)
3.嵌入式的驅(qū)動開發(fā)
學(xué)習(xí)嵌入式:
第一.C語言要掌握(硬件略懂),C語言是所有編程語言中的強(qiáng)者,單片機(jī),DSP,類似ARM的種種芯片的編程都可以用C語言搞定,因為它可移值性強(qiáng),編譯效率高,運(yùn)算速度快,便于實現(xiàn)理更復(fù)雜的`的數(shù)據(jù)結(jié)構(gòu)。上層應(yīng)用和數(shù)據(jù)存儲,我推薦使用C++語言。
第二.學(xué)習(xí)一種嵌入式的處理器架構(gòu),個人推薦32位的處理器,像ARM,因為嵌入式
開發(fā)8位的處理器顯得有點低端,大多數(shù)只能用作簡單的工控.
第三.學(xué)習(xí)一種嵌入式操作系統(tǒng),像LINUX,WINCE等都可以,LINUX更好。
三:ARM是一種微處理器,已遍及工業(yè)控制,消費(fèi)類的電子產(chǎn)品,通信,網(wǎng)絡(luò),無線等各類的產(chǎn)品基于
ARM技術(shù)的微處理器已占75%以上的市場份額,可見其技術(shù)已逐滲入到我們生活中的各個領(lǐng)域,像手機(jī)就是用ARM7 ARM9 ARM11的微處理器技術(shù)開發(fā)的。嵌入式系統(tǒng)最常見的ARM系列,ARM7,ARM9,ARM11,cortex-A8等。
我們都是曾經(jīng)從大學(xué)里走出來的迷茫羊羔,工作以后我才知道,在大學(xué)里不是學(xué)到了什么,而是學(xué)會怎么去學(xué),相信自己,理清自己的思路,根據(jù)自己的性格,剖析自我適合往哪方面發(fā)展。
嵌入式心得體會4
現(xiàn)在嵌入式做為計算機(jī)發(fā)展的一個新的方向越來越得到社會的重視。隨之而來的是很多培訓(xùn)班的誕生,但是如何能在琳瑯滿目的培訓(xùn)機(jī)構(gòu)中找到一個能真正學(xué)到東西的培訓(xùn)班呢,這是擺在眾多想學(xué)嵌入式的人面前的第一個問題。我在了解了眾多培訓(xùn)機(jī)構(gòu)并且試聽之后,最終選擇了Tocore嵌入式培訓(xùn),之所以選擇,是因為我看重老師的實際能力和認(rèn)真負(fù)責(zé)的態(tài)度。我非常榮幸能夠成為Tocore中的一員。
嵌入式開發(fā),做為一個新的計算機(jī)發(fā)展方向,已經(jīng)越來越受到社會的重視,社會上的需要也十分巨大,可是真正懂得嵌入式開發(fā)的人才缺不是很多,歸結(jié)去原因主要是一下幾個方面:
一:因為它是新興的一個發(fā)展方向,懂得的人自然不多。
二:學(xué)習(xí)嵌入式需要比較龐雜的知識結(jié)構(gòu)。操作系統(tǒng)、微機(jī)原理、C/C++語言、數(shù)據(jù)結(jié)構(gòu)等。
三:嵌入式學(xué)習(xí),上手很困難,不知道從哪里著手去學(xué)習(xí)。
在剛開始接觸的時候,我也是抱著本書,自己摸索,可是越看越迷茫,連很多書里的名詞都不知道是什么意思,去網(wǎng)上查也沒有得到答案。可是在Tocore我得到了很好的指點,在這里,由于老師都是十分有經(jīng)驗的項目經(jīng)理,他們懂得如何去學(xué)習(xí),從哪里開始入手,這對于我這樣的背景知識比較薄弱又接觸時間比較短的人來說實在是太有幫助了。
雖然課程還沒有完,可是在這段時間的學(xué)習(xí)中,我按照老師的指導(dǎo)在完善的課程體系下進(jìn)行系統(tǒng)的學(xué)習(xí),已經(jīng)掌握了U-boot、kernel以及l(fā)inux移植的基本框架,(我想在今后的學(xué)習(xí)中一定會對這些知識更加熟悉以至精通!)這對于2個月前什么都不懂的'我來說已經(jīng)是很大的提高了!用得是ARM9的板子,這也是市場上現(xiàn)在比較新的,比較流行的板子,很多公司在實際的產(chǎn)品開發(fā)中就用的是ARM9。在課堂上,老師的講解和我們的練習(xí)相結(jié)合,理論聯(lián)系實際。老師除了講解知識外,還結(jié)合了大量的實際案例和操作,這對于我對問題的理解和知識的記憶有很大幫助。
最后談?wù)剬W(xué)習(xí)態(tài)度的一點看法。嵌入式學(xué)習(xí),是比較耗時的,前期需要很多知識做鋪墊,有很多人在這個過程中走了不少彎路,于是開始失去耐心、失去信心,以至最終放棄學(xué)習(xí)。所以我想有必要強(qiáng)調(diào)一下問題,在剛開始的時候,自己什么都不懂,可是學(xué)習(xí)的愿望很強(qiáng)烈,每次上課都希望上完課就能如何如何,可是下來發(fā)現(xiàn)自己好像離自己原本的目標(biāo)還很遠(yuǎn),于是心里著急,自己跑到網(wǎng)上搜了很多資料,每天亂看,可是并沒有很大的幫助。我想說的是,學(xué)習(xí)嵌入式一定要有耐心和毅力,不能急躁,按照課程的安排自己多做一些總結(jié)和練習(xí),等到知識慢慢的積累下來就會有一種豁然開朗的感覺。
最后希望每個想學(xué)習(xí)和熱愛linux的人都能學(xué)有所成!
嵌入式心得體會5
從實習(xí)到現(xiàn)在搞嵌入式開發(fā)快一年了,驀然回首好像一年過得挺快,挺順利的。細(xì)細(xì)品味,發(fā)現(xiàn)這一年還是有很多值得回憶和總結(jié)的東西。至少這一年看書挺多,大概二十幾本,當(dāng)然和那些一年看一百多本書的人沒法比,但是我已經(jīng)超越了自己。這是我大學(xué)畢業(yè)的第一年,初次走上社會,很想一展身手,可是.....其實也不用可是了,和很多朋友一樣碰了很多釘子,現(xiàn)在我和老板的關(guān)系就挺一般的,只是我性格還不錯。呵呵~~,做優(yōu)秀員工看來還得慢慢學(xué)。
今年最大的收獲就是做了一個半項目,是在uClinux下面跑的。半個是SNMP-Agent的實現(xiàn),因為我去的時候snmpd已經(jīng)跑起來了,我只是實現(xiàn)部分管理功能;一個是基于Web的管理系統(tǒng),使公司的主打產(chǎn)品微波通信設(shè)備上網(wǎng)。這個項目是我一手策劃,一手實現(xiàn)(界面設(shè)計是一位女同事,很優(yōu)秀的程序員),從中學(xué)到的東西也最多,感情不可謂不深。
SNMP即簡單網(wǎng)絡(luò)管理協(xié)議,其實一點都不簡單。在我所知的網(wǎng)絡(luò)協(xié)議里面,它僅僅比OSI的CMIP簡單一點,而CMIP直到現(xiàn)在還沒得到廣泛應(yīng)用。我們能夠?qū)崿F(xiàn)SNMP-Agent不能不感謝CarnegieMellon大學(xué)免費(fèi)發(fā)布的ucd-snmp軟件包。它使得開發(fā)人員專注于實現(xiàn)對特定設(shè)備的管理功能。
我在項目中的工作主要是擴(kuò)展MIB,實現(xiàn)相應(yīng)的管理功能以及網(wǎng)絡(luò)功能的擴(kuò)展。我們公司的MIB庫比較龐大,但是程序運(yùn)行還是挺快的。因為ucd-snmp軟件包中大量使用回調(diào)函數(shù),而且它將MIB樹以二叉樹形式表示,但是每個結(jié)點不是單個的MIB結(jié)點,而是一個表,包括了多個結(jié)點。回調(diào)函數(shù)和兩層表示法的使用是操作快速的主要因素。
基于Web的管理系統(tǒng)我原本是打算在設(shè)備外實現(xiàn)SNMP-Manager的功能,因為設(shè)備中已經(jīng)嵌入了Agent。這樣管理人員可以在世界各地通過WWW登錄公司的管理平臺,實現(xiàn)對所有設(shè)備的管理。但是老板想在設(shè)備中嵌入一個管理系統(tǒng),可以通過www管理單個設(shè)備就行。呵呵~~,這樣工作又輕松了一點,就按老板的意思做了。
我用的http服務(wù)器是BOA,它比現(xiàn)在市場占有率第一的Apache速度要快。目前還只支持CGI,我就用C寫CGI程序,古老了點。但是在開發(fā)過程中感覺用CGI比用現(xiàn)在流行的ASP,JSP要爽,可以隨心所欲,哈哈~~,而且這也是用CC++語言的優(yōu)點。CGI程序很簡單,它的輸入就是標(biāo)準(zhǔn)輸入,它的輸出就是標(biāo)準(zhǔn)輸出。BOA在uClinux上面跑總要出點問題的,出問題好,出了問題我就能找到問題,一來一往,我對socket編程,I/O多路等編程技術(shù)了解也就越來越深了。
在Linux下面搞了一年,不愛上Linux都難,個人認(rèn)為軟件開發(fā)人員在Linux下面進(jìn)步是最快的。那么多優(yōu)秀的開源代碼供我們研究,猶如每天與世界上最優(yōu)秀的程序員打交道,進(jìn)步于不經(jīng)意間。哈哈~~。正所謂“熟讀唐詩三百首,不會作詩也會吟”。GCC編譯器的優(yōu)秀不用多說,我覺得寫Makefile也是很件開心的事。不推薦程序員搞開發(fā)都用IDE,隔靴捎癢很不爽。但是Linux缺點也很明顯,聽歌、看碟、玩游戲不如Windows。恰巧公司的電腦沒音箱,干脆我就懶得用Windows了。
用Linux而不講開源是不道德的,我們程序員享受著開源的好處,自然也要為開源做點貢獻(xiàn)。我開發(fā)的所有軟件都開源,但是我也有個“怪癖”:不喜歡別人在我代碼未完成的時候問我要源代碼。
做嵌入式開發(fā)一年,稍稍有點心得。總結(jié)了一下,有以下幾點經(jīng)驗:
1.不要玩Linux。這一點主要是對像我這樣在Linux下面開發(fā)的程序員來說的。因為Linux對程序員的吸引力很大,但它下面可以直接用的軟件還是比較少。于是我們總想到網(wǎng)上找一些開源的軟件裝到我們的機(jī)器上,從無到有讓人很有成就感的,呵呵~~。要是裝上的不是最新版本的還不滿意,于是又開始忙升級。在Windows下這個過程大概沒什么意思,全都next了。在Linux下就不一樣了,直接拿過來的源代碼很多編譯都不能通過,最新版本更是這樣,得我們自己改,而且往往時改了又改。這個過程很花時間,我就在這方面浪費(fèi)了很多時間,本來有個月工作比較輕松,打算閱讀Linuxkernel代碼(也想成高手,呵呵~~),當(dāng)時我機(jī)子上沒有好的閱讀工具,于是先弄了個sourcenavigator,覺得不夠又裝了個openoffice,然后又找來了幾份不同版本的kernel代碼。結(jié)果一個月過去了,一個文件夾還沒看完。后面工作緊了,只能把看kernel當(dāng)休息,直到現(xiàn)在才粗略看完fs,mm兩個文件夾。
2.不要滿足于C語言。C語言很優(yōu)秀,也很簡單。程序設(shè)計能力不等同于用C語言能力。嵌入式開發(fā)程序員要有扎實的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),要積極的學(xué)習(xí)操作系統(tǒng),積極的學(xué)習(xí)網(wǎng)絡(luò)編程,要是想進(jìn)行驅(qū)動開發(fā)還需要積極的學(xué)習(xí)硬件知識。
3.了解幾種芯片體系結(jié)構(gòu)。嵌入式不像PC領(lǐng)域x86一統(tǒng)天下,在嵌入式領(lǐng)域ARM、MIPS、M68k等各顯神通。例如ARM7是沒有MMU的,uClinux在它上面跑是最合適了,但是沒有MMU我們也必須實現(xiàn)簡單的MM功能,同時沒有MMU一些常用庫函數(shù)是不能實現(xiàn)的,這些嵌入式開發(fā)程序員必須要了解。
4.編寫無錯的C程序。關(guān)于這一點建議閱讀SteveMaguire的《WritingCleanCode》。我對MS沒有好感,但這不影響我對MS里面大牛們的尊敬。嵌入式的調(diào)試是非常麻煩的,很耗時。雖然有g(shù)dbserver這類工具,但是你用的開發(fā)工具鏈中不一定包括它,而且就算用上了調(diào)試仍然是很花時間的。所以要是不想天天通宵調(diào)程序呢,那就要時時以編寫無錯程序為目標(biāo)。
5.了解一點編譯知識。這對編寫高性能程序很有幫助。
6.學(xué)習(xí)設(shè)計模式。設(shè)計模式一般在高級語言中討論較多,但是好東西應(yīng)該大家一起分享。學(xué)習(xí)設(shè)計模式對提高我們的設(shè)計能力非常有幫助。用C語言也可以實現(xiàn)一些模式思想,例如我們常用的回調(diào)函數(shù),就可看作是Command模式的C語言版本。
7.要有前瞻性,要積極學(xué)習(xí)新技術(shù)。目前的嵌入式開發(fā)一般都是將PC應(yīng)用加以剪裁,移植到嵌入式系統(tǒng)中。但是隨著通信技術(shù)的發(fā)展,IPv6的廣泛應(yīng)用,設(shè)備上網(wǎng)是大勢所趨。許多新技術(shù)有可能在嵌入式領(lǐng)域率先應(yīng)用。把握住這個趨勢,嵌入式程序員大有可為。
現(xiàn)在很多公司招程序員要求有嵌入式開發(fā)經(jīng)驗,其實本質(zhì)上嵌入式開發(fā)和我們平常的開發(fā)沒什么不同,只是要求嚴(yán)格一點。我寫下這些希望對學(xué)習(xí)嵌入式開發(fā)的朋友們有所幫助。
嵌入式ARM軟件開發(fā)設(shè)計流程
一.項目總體任務(wù)描述:
設(shè)計GPS/北斗接收顯示終端平臺,為數(shù)據(jù)的接收(NEMA格式),處理,圖形顯示等后端應(yīng)用軟件提供平臺支持。
二.項目功能要求:
1.以PXA270微處理器配合LCD模塊開發(fā)出獨(dú)立的接收顯示終端硬件平臺;
2.在該硬件平臺架構(gòu)LINUX,
3.WINCE操作系統(tǒng)
三.嵌入式軟件開發(fā)上手知識儲備和開發(fā)流程
(注:由于我們開發(fā)時買了一個樣機(jī),這樣可以節(jié)省我們項目開發(fā)中的許多時間和降低了開發(fā)的復(fù)雜度,我們在看資料的時候,作為學(xué)習(xí)時,可以認(rèn)真仔細(xì)的看每個細(xì)節(jié),但作為開發(fā)時,有時會碰到一些無關(guān)緊要的細(xì)節(jié)問題,這時可以采用黑匣子辦法,只要會用就行了,我的理解是做項目時并不一定需要知道每個具體細(xì)節(jié),要學(xué)會分清“系統(tǒng)學(xué)習(xí)”和“實踐應(yīng)用”的范疇。比方說,操作系統(tǒng),我們只需要拿別人的一個樣板來修改達(dá)到自己需要的要求就可以,而沒必要自己去編操作系統(tǒng),一般來講,一個人自己去編寫那東西是不大現(xiàn)實的。所以以下我都是從實用的角度出發(fā),總節(jié)我這段時間ARM的學(xué)習(xí)體會,從而讓對嵌入式不了解的新手如何迅速掌握開發(fā)中的重點以及達(dá)到開發(fā)的能力。總之,我的.理解是搞開發(fā)就是大量廣泛看好的資料,一份好的資料可以節(jié)省你開發(fā)中的好多時間。不必等資料都看完再動手,那樣時間不夠,可以一邊動手一邊學(xué)習(xí)資料,需要什么方面的知識,不懂的當(dāng)即查下看懂即可。)
嵌入式軟件開發(fā)整體流程:
Uboot啟動代碼的編寫->各模塊驅(qū)動程序的開發(fā)->操作系統(tǒng)的移植->應(yīng)用程序的開發(fā)
以下是上手的一些基本知識儲備:
1)匯編語言的學(xué)習(xí)可參見文件夾“我的ARM”->“ARM匯編指令”集,不需要都掌握,只要知道有哪些指令功能,用的時候查閱就可以了。這部分的學(xué)習(xí)對用匯編編寫的“uboot”啟動代碼的理解比較重要,啟動代碼的詳細(xì)介紹可參見“StudyARMboot”這本書,里面講的非常詳細(xì)。(注:如沒特殊說明,資料指的是都是“我的ARM”文件夾里的資料)
2)C語言只需我們本科學(xué)的就夠用了,大致過一遍應(yīng)用時去查就可以了。沒必要再深入系統(tǒng)的學(xué)習(xí)。搞Wince操作系統(tǒng)移植的同學(xué)有必要把C++快速學(xué)一遍,掌握C++的三大特性(抽象性,繼承和派生,多態(tài)),因為操作系統(tǒng)Wince的程序代碼都是按C++的編程格式組織起來的,如果不懂C++的那些特性,比較難看懂程序。這方面的資料請看見文件夾“VC++學(xué)習(xí)”,里面資料相當(dāng)詳細(xì)。
3)各模塊驅(qū)動程序的開發(fā)。這方面首先要熟讀芯片資料,要理解軟件程序是怎樣控制硬件的。(簡單的理解就是往寄存器里寫不同的值以驅(qū)使硬件實現(xiàn)不同的功能。)剛開始不必把芯片中的每個模塊都搞透,只需熟悉一些常用的模塊即可,比方說串口,I/O口,IIC總線,LCD驅(qū)動控制和顯示等等,這些跟我們當(dāng)前的項目都是緊密聯(lián)系的。看各個模塊芯片資料的時候可以對照示例程序結(jié)合起來看,首先要理解這個模塊的工作原理,然后看程序中每個寄存器所設(shè)的參數(shù),邊看邊思考這些程序如果我用在其他的地方該如何修改。其他的模塊的學(xué)習(xí)都是觸類旁通的,關(guān)鍵是思路,可以把本科我們所做的單片機(jī),DSP等實驗聯(lián)想結(jié)合起來。資料可參見文件夾“44b0實驗資料”和“實驗指導(dǎo)書”。
4)操作系統(tǒng)的移植。主要是理解操作系統(tǒng)的一些基本概念(如對信號量,鎖,進(jìn)程同步,進(jìn)程間的通信,臨界資源使用,驅(qū)動管理,文件存儲等等),然后知道這些概念在程序中是如何反映出它們的功能的。我們以UCOS-II這個操作系統(tǒng)作為理解學(xué)習(xí),具體資料參見文件夾“uCOSII-en”,里面資料講得非常詳細(xì)。項目中要求的是用Wince和Linux兩套操作系統(tǒng),由于我們買了成套開發(fā)板,代碼都有,我們要做的工作就是對它們進(jìn)行修改和移植,所以只有當(dāng)你了解了操作系統(tǒng)的一些基本概念,你才可能對它們進(jìn)行修改。Linux開發(fā)難度要大些,不僅操作復(fù)雜些,而且開發(fā)用的命令行的方式,這方面的資料可參考文件夾“l(fā)inux學(xué)習(xí)”和“ucLinux核心(中文手冊)”,由于嵌入式大部分用的是嵌入式linux操作系統(tǒng),從學(xué)習(xí)的角度來講,這方面要多下功夫。
至于應(yīng)用程序的開發(fā),那就要看具體的應(yīng)用了,這個難度不是很大。
嵌入式心得體會6
這學(xué)期才接觸嵌入式系統(tǒng)感覺還稱不上入門,我通過學(xué)習(xí)知道了嵌入式的發(fā)展前景很大,各個領(lǐng)域都用到了嵌入式,學(xué)好嵌入式不愁沒飯吃。
廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都是嵌入式系統(tǒng)。如各類單片機(jī)和DSP系統(tǒng)。從狹義上講,那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場合的專用軟硬件系統(tǒng)稱為嵌入式系統(tǒng)。嵌入式系統(tǒng)由嵌入式硬件與嵌入式軟件組成; 嵌入式硬件以芯片、模板、組件、控制器形式埋藏于設(shè)備內(nèi)部。
理解“嵌入”的概念 主要從三個方面上來理解。
1、從硬件上,將基于CPU的處圍器件,整合到CPU芯片內(nèi)部,比如早期基于X86體系結(jié)構(gòu)下的計算機(jī),CPU只是有運(yùn)算器和累加器的功能,一切芯片要造外部橋路來擴(kuò)展實現(xiàn),象串口之類的都是靠外部的16C550/2的串口控制器芯片實現(xiàn),而目前的這種串口控制器芯片早已集成到CPU內(nèi)部,還有PC機(jī)有顯卡,而多數(shù)嵌入式處理器都帶有LCD控制器,但其種意義上就相當(dāng)于顯卡。比較高端的ARM類Intel Xscale架構(gòu)下的IXP網(wǎng)絡(luò)處理器CPU內(nèi)部集成PCI控制器(可配成支持4個PCI從設(shè)備或配成自身為CPI從設(shè)備);還集成3個NPE網(wǎng)絡(luò)處理器引擎,其中兩個對應(yīng)于兩個MAC地址,可用于網(wǎng)關(guān)交換用,而另外一個NPE網(wǎng)絡(luò)處理器引擎支持DSL,只要外面再加個PHY芯片即可以實現(xiàn)DSL上網(wǎng)功能。IXP系列最高主頻可以達(dá)到1.8G,支持2G內(nèi)存,1G×10或10G×1的以太網(wǎng)口或Febre channel的光通道。IXP系列應(yīng)該是目標(biāo)基于ARM體系統(tǒng)結(jié)構(gòu)下由intel進(jìn)行整合后成Xscale內(nèi)核的最高的處理器了。
2、從軟件上前,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM中。而在定制操作系統(tǒng)內(nèi)核時所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如WinCE在內(nèi)核定制時,會有相應(yīng)選擇,其中就是wordpad,PDF,MediaPlay等等選擇,如果我們選擇了,在CE啟動后,就可以在界面中找到這些東西,如果是以前PC上將的windows操作系統(tǒng),多半的東西都需要我們得新再裝。
3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺中的ROM中就實現(xiàn)了一個真正的“嵌入”。。
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層
1、硬件層,是整個嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個優(yōu)秀的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ摹5布脚_是基礎(chǔ),增值還要靠軟件。 硬件層比較適合于,電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)的人來搞,需要掌握的專業(yè)基礎(chǔ)知識有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C語言。
2、驅(qū)動層,這部分比較難,驅(qū)動工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨(dú)占操作系統(tǒng)時間片,而導(dǎo)至其它任務(wù)不能動行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動的方式,很多人都能做到,但可能連個初級的驅(qū)動工程師的水平都達(dá)不到,這樣所寫的驅(qū)動在應(yīng)用調(diào)用時就如同windows下我們打開一個程序運(yùn)行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運(yùn)行后來打開的程序。想做個好的驅(qū)動人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是最高的。
驅(qū)動層比較適合于電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)尤其是計算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來搞,除硬件層所具備的基礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。
3、操作系統(tǒng)層,對于操作系統(tǒng)層目前可能只能說是簡單的移植,而很少有人來自已寫操
作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動工程師來完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實時性十分重要。據(jù)說,XP操作系統(tǒng)是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧Hopen操作系統(tǒng)估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應(yīng)用層,相對來講較為容易的,如果會在windows下如何進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及Java方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來處理的,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面嵌入式數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應(yīng)用層面的協(xié)議應(yīng)用開發(fā)(比如基于SIP、H.323、Astrisk)方面又較為復(fù)雜,并且有難度了。
通過網(wǎng)上查詢我發(fā)現(xiàn)目前國內(nèi)外這方面的人都很稀缺。一方面,是因為這一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級、驅(qū)動程序級軟件),對軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對軟件設(shè)計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時間不長或正在出現(xiàn)(如ARM處理器、嵌入式操作系統(tǒng)等),掌握這些新技術(shù)的人當(dāng)然很少。嵌入式人才稀缺,身價自然就高,越有經(jīng)驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數(shù)人無條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗的人進(jìn)行指導(dǎo)開發(fā)流程。我們軟件系的人學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對于搞嵌入式軟件的人,最重要的技術(shù)顯然是掌握主流嵌入式微處理器的結(jié)構(gòu)與原理,必須掌握一個嵌入式操作系統(tǒng),必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目。
然而我們都沒有做過一個嵌入式軟件項目,甚至連嵌入式的開發(fā)流程我也不清楚,我只了解了使用簡單工具做一個簡單的實驗。只有去專研才能在嵌入式的領(lǐng)域站住腳,只有知道的比別人多才會更有競爭力。通過網(wǎng)上了解,我查詢了嵌入式的入門和所需要的知識,其中C語言尤為重要,不管是做嵌入式軟件還是硬件開發(fā)的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言。其次,應(yīng)該對操作系統(tǒng)有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的;知道了c語言和操作系統(tǒng)之后,再來看看嵌入式系統(tǒng),我們主要學(xué)的是ARM,用的是ARM7, 深入理解ARM不是件容易的事,只有在知道ARM相關(guān)知識之后才能稱得上嵌入式已經(jīng)入門了。 與嵌入式有關(guān)的知識我也學(xué)了不少就是不能夠綜合在一起運(yùn)用,組成原理,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),C++,這3門與嵌入式密切相關(guān)的學(xué)科都系統(tǒng)的學(xué)了一遍,但由于長時間沒用到都有點忘記了,從網(wǎng)上得知嵌入式的學(xué)習(xí)與這些書有很大關(guān)系之后,我把嵌入式與以前學(xué)過的知識結(jié)合起來發(fā)現(xiàn)嵌入式的'實驗中很多都是共通的,我對嵌入式有了初步的理解。
我以為學(xué)習(xí)嵌入式應(yīng)該分為2個部分:軟件和硬件。關(guān)于硬件方面我接觸到了數(shù)字電路教材和模擬電路方面的知識,但由于沒有嵌入式CPU很難親自動手來實現(xiàn)嵌入式的相關(guān)理論;嵌入式入門則需要不斷地實驗與分析,我只在實驗課時做幾個與所給的程序相關(guān)的小程序來實現(xiàn)一下;而軟件方面則學(xué)過C語言,里面通常的語法曾經(jīng)熟悉過;我通過下列方法來適應(yīng)C語言在嵌入式中應(yīng)用:首先重新翻看了下C的教材,看了些常見的語法,接著在編譯器的角度來看待C,編譯原理我剛學(xué)過,其中將高級語言與低級語言的翻譯感覺在嵌入式中用到了很多;最后沖硬件的角度來看待C。嵌入式的核心包括嵌入式操作系統(tǒng),嵌入式軟件開發(fā)平臺及工具以及嵌入式應(yīng)用軟件。這些決定怎樣才能開發(fā)一個好的嵌入式系統(tǒng)。 下面談?wù)勎伊私獾那度胧降南嚓P(guān)知識與應(yīng)用:
首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)
用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。嵌入式有如下幾個突出的有點1.系統(tǒng)內(nèi)核小,2專用性強(qiáng),3系統(tǒng)精簡4高實時性O(shè)S5嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境。
嵌入式系統(tǒng)是近幾年才風(fēng)靡起來的,但是這個概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是Intel公司的 8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。 嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類人會去專研嵌入式:一類是學(xué)電子工程、通信工程等偏硬件專業(yè)的,另一類是學(xué)軟件、計算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。我是軟件專業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),POS網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和ARM共同推出32位RISC嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0.18微米CMOS嵌入式閃存處理技術(shù),操作電壓可以低至1.2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對最終用戶而言是一套極具成本效益的解決方案。
那么該如何學(xué)好嵌入式我覺得應(yīng)該從以下幾點入手:
首先C語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發(fā)的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學(xué)習(xí)C語言,我想這些基礎(chǔ)的知識每個人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會問,C語言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動手才是最重要的,當(dāng)你動手了,遇到問題了,再反過來學(xué)習(xí),反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應(yīng)該對操作系統(tǒng)有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時能理解,沒關(guān)系,多看看,結(jié)合以后的項目經(jīng)驗,會有更好的理解的。
還有應(yīng)該學(xué)習(xí)下linux或者wince下的編程,這些對以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機(jī)的話,那可以學(xué)習(xí)MTK、塞班、Android等操作系統(tǒng),Android是以后發(fā)展的趨勢,現(xiàn)在很熱門,Android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。
還有,應(yīng)該學(xué)習(xí)下單片機(jī)或者ARM或者M(jìn)IPS,很多人說我沒有單片機(jī)的經(jīng)驗,直接學(xué)ARM可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機(jī),那最好不過了,以后學(xué)習(xí)ARM就更簡單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊學(xué)習(xí)去學(xué)習(xí)下UBOOT的源代碼,了解下最小的系統(tǒng)開發(fā),那對你整個嵌入式開發(fā)的非常有幫助的,可以的話,還可以學(xué)習(xí)下linux的源代碼,當(dāng)然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖
小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
以上就是我在本學(xué)期學(xué)習(xí)嵌入式后的心得及感想。
嵌入式心得體會7
本人本科學(xué)的是電子信息工程專業(yè),其實這個專業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說有關(guān)系就是簡單的講了下C語言語法,學(xué)完之后還不知道什么是C語言,只記住了char,int,long等占幾個字節(jié),if, while,for循環(huán)什么的,感覺也就能算一些小學(xué)就會的題目,全國計算機(jī)二級C語言也就糊涂的過了。我這個專業(yè)沒學(xué)過C++,一開始不知道什么是面向?qū)ο螅@可能會讓人笑話了。不過這說的是實話,本科的時候,學(xué)院安排的課程大部分偏硬件部分,動手機(jī)會比較多,自然而然比較喜歡硬件方面。
在大二的時候就聽學(xué)長說,單片機(jī)很難學(xué),那時候經(jīng)學(xué)長介紹,淘寶買了本郭天祥老師出的書《51單片機(jī)C語言教程》,一開始還真是不怎么懂,感覺有點像是看天書,然后硬著頭皮去看,當(dāng)我把51的結(jié)構(gòu)看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結(jié)構(gòu)圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結(jié)構(gòu)粗略畫了下,然后覺得51整體已在我心中了,雖然沒有什么作用,但是至少懂得這門課要怎么去學(xué)習(xí)。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。
在大三的時候,第一學(xué)期課比較少,我就經(jīng)常待在圖書館,會去蠻看些專業(yè)相關(guān)的書籍,現(xiàn)在想想,那時候也是機(jī)緣巧合下,看到了一本書《從51到ARM》,講述的是從51系列單片機(jī)的一般知識出發(fā),將arm處理器和51系列單片機(jī)進(jìn)行對比,引導(dǎo)讀者去理解和學(xué)習(xí)arm處理器的知識。那個時候也有考慮到以后就業(yè)的問題,就想到一件事情,如果去應(yīng)聘工作的話,每個工科院校電子信息類的畢業(yè)生都會異口同聲地說:我會51系列單片機(jī)。當(dāng)他說這句話的時候,他和別人是站在同一起跑線上的。可我們完全有可能和別人不站在同一起跑線上。正是這本書給我開啟了另外一扇大門,讓我初步了解了嵌入式。后來去報考全國計算機(jī)等級考試三級教程——嵌入式系統(tǒng)開發(fā)技術(shù),在圖書館奮斗了兩個月,最后取得優(yōu)秀的成績,也讓我進(jìn)一步了解嵌入式系統(tǒng)。
在大四的時候,我們有嵌入式的選修課,不過當(dāng)時因為考研的緣故,就沒有去上過這門課,好可惜呀!但是,在選擇讀研研究方向的時候我還是毅然選擇了嵌入式方向,我知道這將成為我未來三年研究的方向。這學(xué)期(研一下學(xué)期),很開心能夠再次接觸嵌入式系統(tǒng)這門課程,對于導(dǎo)師教的這門課程,我覺得自己上課還是蠻認(rèn)真聽講的,當(dāng)然也被師在臺上那講得頭頭是道,溫文儒雅的風(fēng)姿所吸引。對于沒有學(xué)過微機(jī)8086的我,有些時候,老師用微機(jī)與嵌入式的對比讓我頭腦沒有相關(guān)概念...
首先,我對嵌入式在概念上有了一個比較精確的了解。嵌入式是指以應(yīng)用為中心,以計算機(jī)為基礎(chǔ),并且軟硬件可裁剪,適用于對功能、可靠性、成本、體積和功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。它由硬件平臺和系統(tǒng)軟件組成。硬件平臺指嵌入式處理器和與之通過接口連接的外圍硬件平臺。系統(tǒng)軟件是指實時操作系統(tǒng)和用戶應(yīng)用軟件。
談到硬件部分,我首先想到的是嵌入式處理器那些外圍功能模塊。對于這部分的學(xué)習(xí),我當(dāng)初花了好長時間看《深入淺出ARM7——LPC2400》這本書,現(xiàn)在想想覺得自己學(xué)習(xí)方法沒用對,完全沒有那個必要,自己卻花了大把時間在看這些寄存器引腳的使用,因為單純的看過之后還是很容易忘的,之后在進(jìn)行實驗的時候還是翻書來查就證明了這一點。不過一些最基本的模塊,例如通用輸入/輸出口(GPIO),通用異步收發(fā)器(UART),向量中斷控制器(VIC),外部中斷輸入和定時器/計數(shù)器還是需要看書認(rèn)真去記住那些常用的引腳功能。對于CPU異常這部分,我一開始以為異常就是中斷,因為處理程序流程設(shè)計是相似的,都是請求處理器打斷正常的程序執(zhí)行流程,進(jìn)入特定程序的一種機(jī)制。當(dāng)時還對老師提出的一個看法有點疑義,51可以處理中斷嵌套而ARM處理器卻不能?我當(dāng)時腦子里面就在想:中斷不都是有硬件設(shè)備產(chǎn)生的,那按常理來講ARM處理器也可以處理的呀。后來在認(rèn)真查書,發(fā)現(xiàn)CPU異常有7種:復(fù)位,數(shù)據(jù)中止,中斷,快中斷,預(yù)取中止,未定義,軟件中斷。而異常向量會使CPU轉(zhuǎn)入異常入口地址執(zhí)行程序,開始了異常處理。同理的話,中斷向量使CPU轉(zhuǎn)入中斷入口地址執(zhí)行程序,開始了中斷處理。即當(dāng)發(fā)生IRQ中斷時,程序返回地址被存入該IRQ中斷模式下的LR,如果繼續(xù)發(fā)生IRQ中斷,那第二次的中斷返回地址也還是被存入該IRQ中斷模式下的LR中,那先前發(fā)生中斷時候存入的程序返回地址將被覆蓋掉,導(dǎo)致不能返回正確的位置。在我解決這個問題的期間,每次睡前思維準(zhǔn)會定格在這問題上,久久不能繞出來,其實有時候查書還是最好的解決方案,因為網(wǎng)絡(luò)資源只能提供給我們部分的參考資料。
對于ARM匯編語言這部分的學(xué)習(xí),我認(rèn)為是需要重視的,學(xué)匯編不是說用這語言做多牛逼的事情, 問題的關(guān)鍵在于, 學(xué)透了匯編會使你真正理解計算機(jī)。另外一方面,只要以后在嵌入式工作中你遲早會在某個陰暗的角落里遇到匯編。“不管你承認(rèn)不承認(rèn), 現(xiàn)在的CPU沒有直接跑高級語言的, 哪怕是虛擬機(jī)也都是類似匯編的指令集.當(dāng)遇到崩潰分析, 性能優(yōu)化甚至編譯器抽風(fēng)等等的時候, 匯編是你最后一根救命稻草(這句話是福來師兄講的)。”為此他給了我們一份資料,周立功lpc21xx/lpc22xx系列ARM7啟動代碼分析,主要講述的是startup.s文件的分析,看了下才發(fā)現(xiàn)老師上課講的那個啟動代碼分析很多不理解之處這里都有詳細(xì)的介紹,這分析太精辟了。
學(xué) ARM7這么久,我認(rèn)為從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計,另一方面就是學(xué)習(xí)匯編和C語言的板級編程。如果從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面 的驅(qū)動和移植。這些對于我們初學(xué)者來說必須明確,要么從硬件著手開始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級,硬件的寄存器類的東西還是要能看懂的,基于板級的'匯編和C編程還是要會的。
μC/OS-II 是一種基于優(yōu)先級的搶占式多任務(wù)實時操作系統(tǒng),包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量,郵箱,消息隊列)和內(nèi)存管理等功能。它可以使各個任務(wù)獨(dú)立工作,互不干涉,很容易實現(xiàn)準(zhǔn)時而且無誤執(zhí)行,使實時應(yīng)用程序的設(shè)計和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計過程大為減化。μC /OS-II是一個完整的、可移植、可固化、可裁剪的占先式實時多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSI的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。
μC/OS-II可以大致分成內(nèi)核結(jié)構(gòu)、任務(wù)管理、時間管理、任務(wù)之間通信與同步4個部分。內(nèi)核結(jié)構(gòu)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。任務(wù)管理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。因為μC/OS-II是以任務(wù)為基本單位調(diào)度的,所以這部分內(nèi)容也相當(dāng)重要。μC/OS-II中的最小時鐘單位是timetick(時鐘節(jié)拍),任務(wù)延時等操作是在時間管理這部分完成的。任務(wù)之間通信與同步為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標(biāo)志等部分;主要用于任務(wù)間的互相聯(lián)系和對臨界資源的訪問。μC/OS-Ⅱ操作系統(tǒng)是在main()中建立的,首先要系統(tǒng)初始化,OSInit(),初始化系統(tǒng)所有的變量和數(shù)據(jù)結(jié)構(gòu)。然后進(jìn)行任務(wù)的創(chuàng)建,OSTaskCreate();之后進(jìn)行多任務(wù)的啟動,OSStart()。在進(jìn)行任務(wù)的并行處理的時候,一個任務(wù)的程序是順序執(zhí)行的,而不同任務(wù)的程序卻是并行執(zhí)行的。從應(yīng)用程序的觀點來看,此處的并行處理只是一個假象。而實際上它是通過實時操作系統(tǒng)的內(nèi)核控制任務(wù)之間的切換來實現(xiàn)的,也就是任務(wù)調(diào)度啦。
μCOS-Ⅱ總是運(yùn)行進(jìn)入就緒態(tài)任務(wù)中優(yōu)先級最高的那一個。當(dāng)創(chuàng)建新任務(wù)時,或當(dāng)前任務(wù)調(diào)用一些可能把自己掛起的系統(tǒng)函數(shù)(如OSMBoxPend)時,內(nèi)核就要進(jìn)行任務(wù)切換。在上述的場合,任務(wù)級的調(diào)度是由函數(shù)OSSched()完成的。
在一個多任務(wù)的應(yīng)用工程中,任務(wù)之間并不是完全獨(dú)立的,它們存在一些需相互配合的處理,這些相互配合是靠任務(wù)間的通訊或同步,信號量、郵箱、消息隊列可以實現(xiàn)這種任務(wù)與任務(wù),任務(wù)與中斷服務(wù)函數(shù)間的通訊與同步。
郵箱可以使一個任務(wù)或者中斷服務(wù)子程序向另一個任務(wù)發(fā)送一個指針型的變量。而信號量不可以,其只能發(fā)送信號量。消息隊列可以使一個任務(wù)或者中斷服務(wù)子程序向另一個任務(wù)發(fā)送以指針方式定義的變量。因具體的應(yīng)用有所不同,每個指針指向的數(shù)據(jù)結(jié)構(gòu)變量也有所不同,實際上,我們可以將消息隊列看作多個郵箱組成的數(shù)組,只是它們共用一個等待任務(wù)列表。
我們實驗所用的ARM開發(fā)工具是ADS1.2。ARMADS全稱為ARM Developer Suite,是ARM公司推出的新一代ARM集成開發(fā)工具。現(xiàn)在ADS的最新版本是1.2,支持軟件調(diào)試及JTAG硬件仿真調(diào)試、支持匯編、C語言、C++源程序,具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點。在安裝ADS1.2的時候出現(xiàn)過小問題,當(dāng)時我的電腦是64位的,安裝完之后顯示不了,后來百度查找到原因,竟然是文件夾放錯地方,應(yīng)該放在Program Files(x86)這個文件夾中。后來有同學(xué)問我這方面的問題,但是發(fā)現(xiàn)他們的ADS1.2安裝不了的原因是因為Licence弄錯了。在打開CodeWarrior for ARM Developer Suite的時候,一定要記得選DebugInChipRAM,否則Make都出現(xiàn)很多error,而且那些幾乎都是未定義函數(shù)的錯誤。之后就進(jìn)行Debug,調(diào)試成功之后會跳出AXD的界面,選擇Options里面的ConfigureTarget,再添加H-JTAG的文件,之后點擊GO,程序會跳出匯編語言的界面,再點擊下就跳到C語言程序入口地址,之后再點擊下GO,程序就開始跑起來。前面所述的這些步驟是理想情況下程序自身沒有發(fā)生錯誤,當(dāng)然在調(diào)試過程中,還是有很多硬件上的問題,一方面是有些開發(fā)板可能用久了,用JTAG并口連接的時候接觸不良,很容易自動掉線,常出現(xiàn)未連接設(shè)備的的Error,還有一方面是跑程序過程常會出現(xiàn)兼容性的問題,導(dǎo)致程序AXD調(diào)試時候會出現(xiàn)卡在某個部分一直進(jìn)入死循環(huán),這個后來是解決了,但是偶爾還是會出現(xiàn)這個BUG。
通過這學(xué)期對嵌入式的學(xué)習(xí),我發(fā)現(xiàn)自己尚未掌握的知識點還是蠻多的,尤其是對μC/OS-II的移植方面,我只是理論上粗略了解,沒有經(jīng)過實驗的操作。還有對存儲器加速模塊(MAM)這方面不夠了解,主要一方面當(dāng)初在做消息隊列采集實驗(KeySem_SampdataQeue),這個模塊被代替掉,不需要使用它,所以后來也沒有去掌握相關(guān)知識點。對于任務(wù)就緒算法這部分,我只是上課的時候聽“懂”了,課后自己再看完全懵了。對于CAN總線調(diào)試的部分,老師上課沒有講到這部分的介紹與應(yīng)用,但是后來通過自己對實驗室?guī)熜謧兯龅恼n題初步了解,發(fā)現(xiàn)我自己有必要去弄懂它的構(gòu)造和原理。
“看書不要希望一次就會,一次就明白是什么意思,也不要死記硬背,看不明白也沒關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。”依然記得當(dāng)初不懂怎么解決某個問題的時候請教李碩師兄,師兄對我說的這番話。自己在μC/OS-II這部分內(nèi)容掙扎了好久,現(xiàn)在想想,覺得當(dāng)初不應(yīng)該一上來就直接閱讀內(nèi)核源代碼,看了一些自己把頭撞破也想不明白的事,這樣直接正面打擊我學(xué)習(xí)嵌入式的積極性。學(xué)習(xí)啊,還是得要循序漸進(jìn)。如果你想學(xué)習(xí)嵌入式一定要有塊學(xué)習(xí)板。看再多的視頻,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題找到原因,解決問題,只有這樣才能學(xué)到東西。記得我第一次仿寫led的驅(qū)動,想自己試一下,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。
對于初學(xué)者,有一點小建議,我們拿到一個開發(fā)板,很興奮也很激動,想法自然也很多,想用開發(fā)板實現(xiàn)自己的這個想法,實現(xiàn)那個想法,然后又不知道從何下手,然后就去論壇中發(fā)一個貼,最后等著別人去回復(fù),當(dāng)見沒人回復(fù)就開始抱怨。這種做法是不可取的,有想法是好的,我們要實現(xiàn)自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問題,再去發(fā)貼問,這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。見多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來。自己平時也要多寫代碼,多練習(xí)(這一點我做的不好,寫的少)。
最后,我想說的是嵌入式系統(tǒng)的學(xué)習(xí)和研究一旦我們達(dá)到了一定的水平后,其實很簡單,就是如何去看CPU和相關(guān)芯片的Datasheet!
嵌入式心得體會8
8月我參加了學(xué)校安排的課題實訓(xùn),基地在北京,學(xué)院安排我們集體坐火車一同前去,浩浩蕩蕩的隊伍開始出發(fā)了。剛來北京的時候,映入眼綿的都是高樓大廈,一直想到的地方終于到了,好多以前的同學(xué)聽說我要去北京實訓(xùn)都很羨慕不已,我自己也隱隱感到自豪。
我參加的課題實訓(xùn)是嵌入式方向的,開課的內(nèi)容主要是嵌入式開發(fā)方面的,C語言,數(shù)據(jù)結(jié)構(gòu),LINUX基本操作,網(wǎng)絡(luò)編程,操作系統(tǒng)和匯編語言,這些都是嵌入式不可缺少的。
每個專業(yè)技能都決定了你以后找工過。我們班分了很多小組,每組都有小組長,小組長直接對我們負(fù)責(zé)。教課老師很認(rèn)真,都是從很基礎(chǔ)的開始講;同學(xué)們聽課也很認(rèn)真,由于代碼操作比較多,鍵盤的聲音源源不斷的在響。好久沒有感覺到這種濃重的學(xué)習(xí)氣氛了,而在這緊張而充實的學(xué)習(xí)氛圍中我獲益匪淺,感受頗多。
授課過程中老師們也傳授了一些找工作方面的經(jīng)驗,比如簡介的樣式和寫法,面試中的一些著裝,禮貌用語和技巧,對此基地的老師還精心的為我們安排了一場模擬面試,在其中我們學(xué)到了很多有關(guān)于面試方面的經(jīng)驗。
通過這幾個月的`實訓(xùn)我學(xué)到了很多,同時也讓我們意識到我們要學(xué)的更多。從程序的設(shè)計到編寫、畫圖、調(diào)試、修改、完善、到最后的實訓(xùn)報告,每個人都付出了時間和精力去做好自己的任務(wù)幫助隊友,所以團(tuán)隊的合作和隊友之間的相互協(xié)助非常重要。
通過實訓(xùn)讓我們更深一步的對自己的專業(yè),對自己的能力,對自己所學(xué)的有正確的認(rèn)識,并且能在以后的學(xué)習(xí)工作中不斷提高和完善自己。特別是講C語言和進(jìn)程通信中老師給了我們每個小組的幾個小項目,讓我學(xué)到了更多項目經(jīng)驗,這在學(xué)校之前是沒有的。這次實訓(xùn)也碰到了些問題,比如項目文檔的寫法,代碼的規(guī)范,流程圖的畫法,這些都有講究,在老師和同學(xué)的幫助下,我不斷的提高了在這些方面的學(xué)習(xí)。
生活上班主任郭老師和王老師對我們關(guān)懷備至,讓我們沒有感覺在外面的那種不適感,同學(xué)們也互幫互助,所以生活上大致沒什么問題,這讓我們更好的去學(xué)專業(yè)。很感謝學(xué)校有這樣的實訓(xùn)安排。
總的來說,這次實訓(xùn)還是比較成功的,無論是個人動手能力還是團(tuán)隊協(xié)作能力都得到了很好的鍛煉。在實訓(xùn)過程中老師也交給我們很多簡單實用的技巧。我們也學(xué)到了,做好做對一個項目固然重要,同時美觀程度也是必不可少的,無論是從參觀者的角度還是自己看的角度都很重要。
嵌入式心得體會9
就在昨天3月9日,學(xué)校規(guī)定實習(xí)時間已經(jīng)到期了。從上個月的13日到現(xiàn)在已經(jīng)近一個月,雖然與公司的實習(xí)時間還沒有結(jié)束,但是為了完成學(xué)校交待的任務(wù),在此對這段時間的實習(xí)做一個總結(jié)。
首先,我先來簡單介紹下實習(xí)單位。我實習(xí)的單位全稱——上海寶信軟件股份有限公司廈門分公司。其作為上海寶信軟件中的重要一員,是寶信軟件在全國多網(wǎng)點支持服務(wù)的延伸,具備與寶信軟件上海總部相同的技術(shù)服務(wù)能力,并可無限制調(diào)用總部專家資源,秉承寶信軟件“IT服務(wù),提升信息價值”的經(jīng)營理念,致力于IT服務(wù),主營業(yè)務(wù)包括網(wǎng)絡(luò)安全產(chǎn)品銷售、系統(tǒng)集成、運(yùn)維服務(wù)、軟件工程等。
其次,向大家介紹是我的實習(xí)內(nèi)容。這里要先介紹我的實習(xí)崗位——嵌入式軟件開發(fā)工程師。實習(xí)內(nèi)容大致分為兩塊,一是軟件測試,二是編碼。在我們剛來的前兩周,我的實習(xí)內(nèi)容就是軟件測試。軟件測試的主要內(nèi)容是UnitTest也就是單元測試。但是,在實習(xí)剛開始的階段,我并沒有就馬上做測試。而是有前輩給我發(fā)了一份我們要做的產(chǎn)品的功能書給我看。功能書文檔是日文版的,我要把它看懂,才知道我們這里到底是做什么。后面的測試工作就是做單元測試了。
我們在做測試是有測試環(huán)境的,整個單元測試過程是有前人經(jīng)驗的。所以只要按照規(guī)則來就沒有問題,也相對比較簡單。就這樣單元測試做了近8天左右,測試了51個c++函數(shù)。其實,單元測試比較簡單,但是碰到函數(shù)的輸入輸出的值及路徑多的時候,特別的煩,會影響測試效率。實習(xí)的另一個內(nèi)容就是編碼,其實說的確切一點,是看代碼。一個剛來不到3周的新員工,以前又沒有經(jīng)驗,公司怎么會放心讓你寫代碼。有前輩給我安裝了秀丸和Source Insight軟件,然后給了我一代碼,讓我按上面看,有問題可以問組里的前輩。C++代碼是看的懂,但是太多的函數(shù),被調(diào)用的關(guān)系也不清楚,也不了解決函數(shù)的意義,所以感到很無趣。也許是在考驗我的耐心或者是讓我熟悉代碼編寫的規(guī)范。不管是什么目的,至少自己可以鞏固下c++的基礎(chǔ)。不過真的要感謝前輩的細(xì)心指導(dǎo),使我大概了解程序的調(diào)用關(guān)系。
再次,向大學(xué)介紹下我的實習(xí)階段的工作過程。每的8小時的上班時間,但是一般會比這個時間長的。早上8點45分到9點15分不等上班,晚上5點30分到6點不等下班,中午11點可以去吃飯、1點之前上班。這個時間還是比較人性化的。當(dāng)然也有時候也要加班,如有時候日本客戶來這里的時候,發(fā)現(xiàn)我們的人都很早下班的時候,他就會和我們的上級說,然后我們就得加班。這也是一種非常情況,但是加班是可以調(diào)休的。每天的上班時間基本上是跟電腦打交道。
前期實習(xí)階段都是打開電子表格看日語版功能說明書,后面做測試的時間就是各種軟件一起用了。每天做單元測試的時候,其實感覺特別煩。有時候一天做7到8個,有時候一天2個做不到。但是整個過程自己還是堅持下來了,雖然很累,自己還是很好強(qiáng)的。后期基本上是學(xué)習(xí)編程了。由于后面項目已經(jīng)交互,所以每天都不沒有加班了。每天的工作主要就是學(xué)習(xí)代碼規(guī)范,如那里怎么縮進(jìn)、命名之類的事。至于邏輯什么的,還是很不清楚,還需要努力多問多想。
再次,與大家分享下我的實習(xí)收獲。雖然與原計劃5個月的實習(xí)還差很遠(yuǎn),但自己還是很有收獲。其一,對于歌樂Audio項目有一定的了解。具體的表現(xiàn)在,分了幾層。我個人是分配到app層,也就是業(yè)務(wù)應(yīng)用層。雖然對業(yè)務(wù)的熟悉不夠深,但大概知道,每一天前輩們都在做什么事。其二,日語方面的加強(qiáng)。因為客戶方面基本上是日本人,所以加強(qiáng)日語學(xué)習(xí)是必須的。有了這樣的一種壓力,自動會轉(zhuǎn)化為一種動力,促使我去學(xué)習(xí)。我想這樣多少可以提高下我的日語能力。還有就是,常常有很多日本客戶就做在我的旁邊。感情還是很緊張,因為不知道怎么跟他交流。結(jié)果每一天他來的時候,我只能和他說聲早上好。希望自己在今
后的時間里要多多加強(qiáng)日語學(xué)習(xí),爭取與日本客戶交流,才能提升自己的能力。其三,交流溝通能力的提高。其實自習(xí)也一直覺得溝通能力對成功貢獻(xiàn)是最大,要把一件做成肯定不是一個人的事情,我們需要與別人溝通。在溝通中互相了解相聯(lián)系的部分,這樣才能夠避免摩擦帶來不必要時間與精力的浪費(fèi)。而我自己的溝通能力提高表現(xiàn)在自我意識的提高。當(dāng)遇到問題的時候,會主動的想想,是哪個具體的點不懂,然后列出問題,再向前輩請教。這樣大腦里就會有一個邏輯過程。通過這樣就可以把自己的意思清楚的傳達(dá)給別人。在別人向自己傳達(dá)信息的時候,我會邊思考邊聽,遇到不了解的地方,講明白自己的不解之處。這樣這個溝通過程就會比較流暢。其四,職場意識的提高。可以說來實習(xí)就意味我們提前畢業(yè)了,提前進(jìn)入社會。所以,由學(xué)生到社會職業(yè)人的過渡期就被實習(xí)給填充了。經(jīng)過一個月實習(xí),我發(fā)現(xiàn)自己已經(jīng)很習(xí)慣在公司工作。對于自己能做什么,未來能做什么也有了一定的思考。不管畢業(yè),我還是留在這個公司還是去其他的公司,我想我心中已經(jīng)有了這份意識,這對我將來的職業(yè)生涯都是有幫助的。其五,時間管理。很多人工作的時候就忘記了生活的存在,我們的生活是多彩的,并不是只有工作。其中,有一項轉(zhuǎn)變的比較大,就是很多人不喜歡運(yùn)動了。對于這些,我都是不太認(rèn)可的。我還是會抽出時間出去運(yùn)動一下。我覺得運(yùn)動可以帶給我健康,同時會讓我的精神更好,工作更有效率。其實,運(yùn)動并不會浪費(fèi)我們時間,而是會給生活帶更美好。
最后,與大家分享一下我這個月實習(xí)的心得與體會。通過這段時間的`學(xué)習(xí),從無知到認(rèn)知,到深入了解,漸漸的我喜歡上這份工作,讓我深刻的體會到學(xué)習(xí)的過程是最美的。在整個實習(xí)過程中,我每天都有很多的新的體會,新的想法,想說的很多,我總結(jié)下來主要有以下幾點:
1、持之以恒
既然選擇了自己的這份工作,不管工作本身怎么樣,我們都要堅持往下走。因為我相信每一家公司的工作原理都是差不多的。如果你在這家公司做不住的話,我想你在另外一家公司也是做不住的。只有我們改變自己的態(tài)度,才可能戰(zhàn)勝心中的浮躁。我們新人一來到公司我,一開始都不會立刻給工作我們做,-一般也都是先讓我們看看文檔或代碼,時間短的要幾天,時間長的要幾周,在這段時間里很多人會覺得很無聊,沒事可做,便覺沒有發(fā)展空間,于是產(chǎn)生想走的念頭。恰恰在這個關(guān)鍵的時候更需要我們的堅持,輕易放棄只會讓自己后悔。
2、不怕做小事,那是一種考驗
我們一來到公司實習(xí)的時候,很多組里的前輩多數(shù)還是把我們當(dāng)學(xué)生看待。他們不會也不敢讓我們直接參考到一個真正的項目中去。在這個其間一般會給我們看一些過去做過項目的文檔和代碼,其實不可小看這些小事,也許是為了考驗我們,也許是讓我們先了解業(yè)務(wù)。作為一人新人,一定要積極面對這些,勇于擔(dān)當(dāng)做小事,喜歡做小事。這樣公司同事才會更快的接受你,慢慢地才會讓你做一些重要的工作。
3 、態(tài)度端正,一定要多主動
我們到公司工作以后,要知道自己能否勝任這份工作,關(guān)鍵是看你自己對待工作的態(tài)度,態(tài)度對了,即使自己以前沒學(xué)過的知識也可以在工作中逐漸的掌握。態(tài)度不好,就算自己有知識基礎(chǔ)也不會把工作做好,四多一少就是我的態(tài)度,我剛到這個崗位工作,根本不清楚該做些什么,并且這和我在學(xué)校讀的專業(yè)與這里做的東西還是不太一樣的,剛開始我覺得很頭痛,可經(jīng)過工作過程中多看別人怎樣做,多聽別人怎樣說,多想自己應(yīng)該怎樣做,然后自己親自動手去多做,終于在這一個月里對工作有了一個較系統(tǒng)的認(rèn)識,慢慢的自己也可以完成相關(guān)的工作了,光用嘴巴去說是不行的,所以,我們今后不管干什么都要端正自己的態(tài)度,這樣才能把事情做好。
4.不要報怨
其實在做單元測試的那個時候,有時候覺的特別的煩。有時候做了半天連一個函數(shù)都沒有把弄出來,那種感覺真的是非常的難受,心中也有委屈。可是這是我的工作,我報怨也沒有用。只能一步一個腳印走過來。直到后面把函數(shù)測完,心中還是很有成就感的。其實有的人會覺得公司這里不好那里不好,同事也不好相處工作也不如愿,經(jīng)常埋怨。我覺這樣只會影響自己的工作情緒,不但做不好工作,還增加了自己的壓力。所以,我們應(yīng)該少埋怨,要看到公司好的一面,對存在的問題應(yīng)該想辦法去解決而不是去報怨,這樣才能保持工作的激情。
5、虛心學(xué)習(xí)
由于我們是新手,而且又還沒有從學(xué)校里完全走出來。所以在工作過程中,我們會碰到很多問題,有的問題我們可以有我們所學(xué)的解決,有的有很大業(yè)務(wù)性的問題,我們就無法解決。這個時候不要不懂裝懂,應(yīng)該虛心地向前輩們請教。請不要害怕,因為前輩肯教我們肯定是我們的福氣,對我們以后在工作中都有幫助的。同時請教的時候也是一個鍛煉溝通的過程。在前輩給我們解惑的時候,我們也應(yīng)該虛心的接受,不要裝著一副不屑的樣子。
6、知錯能改
作為一名新人,不管在學(xué)校有多么的優(yōu)秀,來到公司,我們頂多就只有點基礎(chǔ),其他什么的都得重新開始。在學(xué)習(xí)的過程當(dāng)中,犯錯是不可避免的。知錯能改是我們唯一的選擇。明知自己有錯,還理直氣壯那是不應(yīng)該的。我認(rèn)為這種行為是可恥的。在犯錯的時候來銘記于心,不要第二次在犯同樣的錯了。當(dāng)前輩或其他人指出我們的錯誤時,我們要虛心聽教,坦誠改錯。這樣我們才會進(jìn)步,才會在組里與同事相處融洽。
7、團(tuán)隊合作
重要的不是我,是我們。在一個項目組里,我并不是一個人。我只能說我是組里的一個部分。我們每一人都不是神,我們不可能一個來完成所有的工作,因此,必須分工。但是,分工并不是都很明確的。每個人分到的工作,多多少少都會和別人的工作的有交集。這是因為,作為一個項目的每個部分,最終還是整合形成整體。我們還是需要這些部分與部分交集作為連接點組合起來。因此,每個雖是分工,但更多是合作。我們中的我必須明白這些,要有團(tuán)隊觀,做好自己的同時,更重要也要做好與別人的溝通。這樣才會避免工作的重復(fù),意見的不同等負(fù)能量。
8、溝通能力
在上一點的體會團(tuán)隊合作中,其實我已經(jīng)說了,團(tuán)隊合作的基礎(chǔ)就是溝通。一個有效率的團(tuán)隊,我認(rèn)為它的成功就在于成員之間良好的溝通能力。因為,人與人的溝通是信息傳遞的媒介。沒有良好的溝通基礎(chǔ),信息在傳遞的時候就會被曲解。在軟件開發(fā)的整個過程,團(tuán)隊合作是至關(guān)重要。每一環(huán)節(jié),都離不開溝通。需求變更帶來的問題,尤其需要在溝通中解決問題。所以,讓自己把信息傳遞的正確和有效,提高溝通能力是必不可少的。
9.做人做事講究原則
其實在公司上下班是一個很大的學(xué)問。同事都已經(jīng)來上班了,你才來。或者是同事還沒下班,你人就都先走了。其實要把這些看成一種常態(tài)。在公司上班不是比誰先來,也不是比誰晚走的,比得是自己的工作的效率。有時候,我們工作做完,是可以先走。你想想,你走了之后,估計別人也敢走了。從這一點上,可以說你是幫助了大家。當(dāng)然這只是開玩笑,做人做事要有點原則。工作沒完成當(dāng)然不能跑回去,這是沒有責(zé)任的表現(xiàn),以后主管怎么能把事情交給你。工作做完,想先走就走了,不必當(dāng)擔(dān)心這擔(dān)心那的。我相信一個好的主管,不會以一些無所謂的因素來衡量一個人的。只要自己身體正,就不怕別人說。
10.做好職業(yè)生涯規(guī)劃
每個人在來實習(xí)之前,肯定會想我來這家公司是做什么。當(dāng)你想好,并決定來的時候,你已經(jīng)做了第一步職業(yè)生涯規(guī)劃了。實習(xí)也是成了我們檢驗計劃的時候,如果你發(fā)現(xiàn)這個工作不適合你,畢業(yè)前你還有機(jī)會可以做換。如果感覺這個工作適合你,那么你就可以做下一步
的規(guī)劃了。我當(dāng)初選擇這個工作,是因為嵌入式軟件開發(fā)在近幾年會發(fā)展會比較快,而且本人對c++和c比較感興趣。同時,目前做的工作是對日外包,對于我日語的提高也是很有幫助的。現(xiàn)在實習(xí)給我感覺是,不出現(xiàn)什么其他狀況,應(yīng)該畢業(yè)后會留在這個公司。至少今后的職業(yè)規(guī)劃以日語和編程提高為主,以管理為輔。
在這里,我要感謝上海寶信軟件股份分司給我這次寶貴的實習(xí)機(jī)會。同時,也要感謝組員對我有直接幫助的前輩。當(dāng)然還要感謝學(xué)校和畢業(yè)指導(dǎo)王老師的關(guān)心與指導(dǎo)。
總而言之,這次實習(xí)是我大學(xué)四年來最正式的一次。我想通過這次的實習(xí),我將從學(xué)生走向社會職業(yè)人的轉(zhuǎn)變。一個月的時間過的太快了,但是我們的實習(xí)并沒有結(jié)束。通過這次的總結(jié),我對這次實習(xí)的意義有了深刻地認(rèn)識。自己在今后的學(xué)習(xí)與工作中,一定會更加努力做的更好。
嵌入式心得體會10
嵌入式系統(tǒng)是一種強(qiáng)調(diào)專用功能的計算機(jī)系統(tǒng),廣泛應(yīng)用于各種領(lǐng)域。在我參與的嵌入式項目中,我從中學(xué)到了很多寶貴的經(jīng)驗和教訓(xùn)。下面我將通過五個方面來談一談我在嵌入式項目中的心得體會。
首先,嵌入式項目的需求分析是至關(guān)重要的。在項目開始之前,我們需要對需求進(jìn)行全面而準(zhǔn)確的分析。這樣可以確保項目的方向和目標(biāo)明確,在后續(xù)的開發(fā)過程中能夠更好地指導(dǎo)開發(fā)工作。在一個我參與的智能家居嵌入式項目中,我們在需求分析階段花費(fèi)了大量的時間和精力,詳細(xì)討論了系統(tǒng)需要具備的各項功能和性能指標(biāo)。這為后面的開發(fā)工作奠定了堅實的基礎(chǔ)。
其次,良好的團(tuán)隊合作是嵌入式項目成功的關(guān)鍵。嵌入式項目常常需要多個人員合作完成,而且項目周期通常較長。因此,團(tuán)隊成員之間的默契配合和有效的溝通是至關(guān)重要的。在一個我參與的儀器儀表嵌入式項目中,我們團(tuán)隊的成員來自不同的專業(yè)背景和技術(shù)領(lǐng)域,但是我們通過定期的討論會和項目管理工具的運(yùn)用,成功地解決了項目開發(fā)過程中出現(xiàn)的各種問題。
另外,嵌入式項目中的軟硬件調(diào)試是一個重要的環(huán)節(jié),需要耐心和細(xì)致的工作態(tài)度。在一個我參與的工控設(shè)備嵌入式項目中,由于硬件電路的復(fù)雜性,我們在軟硬件調(diào)試過程中遇到了很多問題。但是,通過仔細(xì)的.排查和耐心的解決,我們最終克服了這些問題,并取得了圓滿的結(jié)果。這個過程教會了我勇往直前和不怕困難的精神。
此外,對于嵌入式項目來說,對性能和功耗的優(yōu)化是非常重要的。嵌入式系統(tǒng)往往資源有限,因此需要在保證性能的情況下盡量降低功耗。在一個我參與的智能穿戴設(shè)備嵌入式項目中,我們團(tuán)隊通過調(diào)整算法和軟硬件優(yōu)化等手段,大大提高了設(shè)備的性能,并成功降低了功耗。這個經(jīng)驗告訴我,在開發(fā)嵌入式系統(tǒng)時,我們要關(guān)注系統(tǒng)的性能和功耗指標(biāo),并采取相應(yīng)的優(yōu)化策略。
最后,嵌入式項目的開發(fā)需要注重項目管理和進(jìn)度控制。由于嵌入式項目的特殊性,時間和成本的控制非常關(guān)鍵。在一個我參與的汽車電子控制嵌入式項目中,我們團(tuán)隊制定了詳細(xì)的項目計劃,并嚴(yán)格按照里程碑進(jìn)行了進(jìn)度控制。這樣做不僅可以保證項目按時完成,還可以及時發(fā)現(xiàn)和解決項目中的問題。
總的來說,嵌入式項目的開發(fā)需要在需求分析、團(tuán)隊合作、軟硬件調(diào)試、性能功耗優(yōu)化和項目管理五個方面進(jìn)行充分考慮和實踐。通過這些方面的努力和實踐,我深刻體會到了嵌入式項目開發(fā)的艱辛和復(fù)雜性,也獲得了寶貴的經(jīng)驗。我相信,在今后的實踐中,我會不斷積累經(jīng)驗,不斷提升自己在嵌入式項目中的能力。
嵌入式心得體會11
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。
在嵌入式系統(tǒng)的大門前,我只能算是剛剛看到這個大門的臺階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來,歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫之前,想先寫一句話,千萬不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請以天才的標(biāo)準(zhǔn)來要求自己,將自己付出和別人的比例以N:1來進(jìn)行。
(1)學(xué)習(xí)與生活心態(tài)
很多朋友都是在剛步入大學(xué)校門開始接觸計算機(jī)或者其他。大學(xué)是一個很讓人迷茫頹廢的地方,可能你在高中躊躇滿志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過且過,不要追逐熱門的東西。
不管在什么時候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競爭出發(fā),因為這才是你產(chǎn)生動力源的地方。學(xué)東西時,要讓自己先喜歡上它,要學(xué)會享受學(xué)習(xí)它的時間,喜歡喬XXX的都知道,喬老爺子最常說的一句就是要享受比賽的時間。
因為只有你喜歡上了它,享受了它,才不會被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒有什么興趣學(xué)的時候可以先玩幾天,在回過頭來,或者用其他的方式來轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實實從基礎(chǔ)開始,不要為高速開發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。
我個人認(rèn)為搞編程,英語和數(shù)學(xué)很重要,大家一定要時時的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識也要汲取,可以多接觸點天文,地理,人文方面的東西來補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會生活,在人的一生中,都會遇到一些很不開心的事,或者大大小小的意外,孫子兵法里面一句大意就是說,戰(zhàn)場上要會將劣勢轉(zhuǎn)成優(yōu)勢,即最大的劣勢很可能就是你的優(yōu)勢所在。
一個打擊你可以把他變?yōu)榍斑M(jìn)的動力,不必為了一點挫折和捶胸頓足,不必為了一點小事爭吵不休。空閑的時候可以躺下來看看天,你就會明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時或者一些舉手之勞在自己解決范圍內(nèi)的.盡力幫之,這對自己不會損失什么,相反在對方心里能夠樹立你的形象和增加好感。記住,給人之恩時也是給你自己鋪路,這個世界不是靠你一個人可改變的。
(2)編程語言的選擇語言的爭論。
很多初學(xué)擇,老是在學(xué)習(xí)何種語言上舉棋不定,試問,中國牌子有幾個不被罵的,試問,世界上哪部影片沒人說他壞話的?術(shù)業(yè)有專攻,各司其職,每個語言的出現(xiàn)肯定都有自己價值和領(lǐng)域的范圍,不同的只是價值和領(lǐng)域的高級和大小。
就像高,矮,胖,瘦組成一個“型”。但是技術(shù)是進(jìn)步的,這個進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時也要時時關(guān)注整個語言界的走勢(貌似哪個偉人說的與時俱進(jìn)),保持一種同步曲線的前進(jìn)。語言能干什么?能問這句話,很欣慰。
表明你是從基礎(chǔ)學(xué)起才會問出這樣的話來。但換而言之你一開始對這門語言調(diào)查的信息不足。廟算者勝,對自己身邊的事物了解是非常重要的,這也能說明說你的教材或者教導(dǎo)你的人不夠充分。如果是我對新手交流,我會花足時間讓他明白這門語言是什么,能干什么,整個體系等等。
這樣在學(xué)的時候,對同一條語句上的理解你可能跟別人就不一樣了,因為你知道這門語言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對語言閱讀能力。如何快速的進(jìn)步?可以告訴你沒有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來解問題,多將語言的思想和身邊的事物聯(lián)系起來。想想你是怎么掌握普通話的,方法就不具體說了。
編程的思維。計算機(jī)是充滿誘惑的東西,很多人都說熱愛計算機(jī),那只是它的表面,你熱愛的只是他的一種擴(kuò)展性的東西。能學(xué)計算機(jī)我很高興,因為計算機(jī)從某種意義上來說將空間的距離給消除掉了。這里沒有流血,沒有犧牲。你可以以一種藝術(shù)家的思維來塑造它,可以以偵探的邏輯思維來解決它,可以以一種戰(zhàn)爭狂人的思維來摧毀它。
你可以將你的這種思維體現(xiàn)在代碼和整個布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時更多的要體會他的思維,比如數(shù)學(xué),微積分,離散,無數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺,在你碰到某一問題時,這一問題的性質(zhì)和你學(xué)到的東西很類似,但是中間就是差了一點東西,對了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
嵌入式心得體會12
這個題目很大,給人一種感覺我好像很成功,其實不然。實際上自己水平不高,甚至很低,但是做過了一些曲折的學(xué)習(xí)道路,同時把自己真實的學(xué)習(xí)歷程表達(dá)出來,希望對后來者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業(yè)于華中地區(qū)的一個理工科大學(xué),專業(yè)是機(jī)械電子,我當(dāng)時已經(jīng)簽了一家內(nèi)陸某個省級機(jī)關(guān)工作,家里八輩是農(nóng)民,并且很偏遠(yuǎn),能夠進(jìn)入這樣的地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個進(jìn)入it的機(jī)會,我本想進(jìn)去的,家里人極力反對,阻力可想而知。同時要交4000元的違約金,對我來說是天文數(shù)字。大學(xué)里的費(fèi)用很多是借的,幾乎將近一半的費(fèi)用是在大學(xué)勤工儉學(xué)掙的,為了省錢,高中一個學(xué)期回家一次,大學(xué)一年回去一次。并且我個人也有特殊的人生背景(悲景更確切),這里不多說了,寫十篇也寫不完,同時偏離主題。這樣我就參加了工作。一張報紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺。在工作中雖然是與自己專業(yè)有點關(guān)系,但是很少。專業(yè)幾乎荒廢。我自己也思考,如果再不出去,自己將會成廢人,只好讓國家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰要呢,只好到學(xué)校去鍍金。這是中國教育和社會的悲哀!
至于專業(yè)就改為計算機(jī)方面,聽說好找工作,我說實話不是很對計算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績出來,超過了國家線幾十分。那個方向要兩個,我第三,但是那年非碘,不面試就按分?jǐn)?shù)來排,自然我落選了。其實給我面試機(jī)會也不一定要我,哈哈,自己幾斤幾兩很清楚。
最后調(diào)劑到另外一個學(xué)校,交錢,咬咬牙,交吧!現(xiàn)在仍然債臺高筑!
進(jìn)入學(xué)校前夕
為什么要把這段列出,看后就知道了。
單位有網(wǎng)絡(luò),經(jīng)常上網(wǎng)查些英語資料,在那里唯獨(dú)英語沒有丟很多。于是我就在網(wǎng)上查資料,學(xué)什么好呢,最后確定學(xué)嵌入式把,聽說跟硬件相對比較緊密!而我在大學(xué)里多少學(xué)習(xí)了數(shù)字電路,單片機(jī)等,所以多少也有所利用,不會真的一無所知。當(dāng)然在這之
前也自學(xué)過數(shù)據(jù)結(jié)構(gòu),計算機(jī)組成原理等。c 語言在大學(xué)就學(xué)了。哈哈這就是我的'家底。
我知道自己的基礎(chǔ)差,于是我就拿操作系統(tǒng),數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、c++來看,機(jī)關(guān)有這個好處,空余時間多,于是平常就看書,很痛苦,沒有人請教。
另外就上網(wǎng)到論壇上去,我就到各個專業(yè)的技術(shù)論壇,其實是電子論壇和嵌入式論壇。我?guī)缀鯖]有發(fā)帖,幾乎把幾個大型的出名的論壇的帖子翻遍了,雖然有很多重復(fù)的,我才知道嵌入式是個什么東東。這些帖子對我以后的學(xué)習(xí)產(chǎn)生了極大的影響。
最關(guān)鍵兩點:
1、嵌入式是什么?
2、嵌入式需要哪些知識?
知道了這兩點,好辦!我就開始規(guī)劃學(xué)習(xí)路線。計算機(jī)的基本理論不能丟,于是重點看組成原理,數(shù)據(jù)機(jī)構(gòu),操作系統(tǒng)、c++。同時論壇上了解到,實時操作系統(tǒng)ucos是一個很好的嵌入式操作系統(tǒng),對初學(xué)者很好。于是我就買了一本書,但是代碼在電腦里調(diào)不通,網(wǎng)上也有很多相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門,才知道什么是進(jìn)程。原來看操作系統(tǒng)書時,根本就不知道進(jìn)程是個什么東西。
在這段時間掌握的東西不多,但是,對我以后的影響很大,我想起了大學(xué)時一個同學(xué)跟我說過了一句話:大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會怎么學(xué)!大概是這個意思。
進(jìn)入我的避難所
對我來講,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所。希望這次進(jìn)入給我喘氣和養(yǎng)精蓄銳的機(jī)會和時間。我是這樣認(rèn)為和實踐的。
在學(xué)校我有三件事:上課,上圖書館,上網(wǎng)。
對于上課,學(xué)校開了很多課程,非常好,很多是名人名師講解,于是很多同學(xué)都想學(xué),都去聽。我也考慮過,最后放棄。我是這樣認(rèn)為的,時間是有限的,什么都想學(xué),什么都學(xué)不成。于是我把我自己學(xué)的課進(jìn)行了分化,一般的課程通過就行,重要的一定好好學(xué)。我希望不要什么爭論學(xué)習(xí)課程多和少的問題,這僅僅是我的看法。所以我的成績應(yīng)該是很差的。分?jǐn)?shù)低。好在后來的單位沒有要我的成績單,否則就慘了。
我個人感覺是上圖書館的效率比在寢室里高多了,這是我的經(jīng)驗。
嵌入式心得體會13
嵌入式學(xué)習(xí)心得體會,4月10號,為期一個階段的Linux開發(fā)基礎(chǔ)培訓(xùn)課程圓滿結(jié)束,回首這些天所留下的點點滴滴,感觸深深,學(xué)習(xí)上知識點的積累,靈活運(yùn)用的過程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門課程時,都說Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開始了自我提升階段的"充電",由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽著并學(xué)會如何去在實踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動的為我們講述了有關(guān)Linux的誕生、初成長以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來愈廣泛,講解了為Linux這個偉大的OS做出巨大貢獻(xiàn)的'一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會,從小處著手,踏踏實實的創(chuàng)造出了對人類科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词 ⒖炭鄬W(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $SHELL可查看SHELL的環(huán)境變量是csh還是bash。(學(xué)習(xí)心得 )指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡單的學(xué)習(xí)后進(jìn)入Unit 2,
命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:date顯示當(dāng)前年月時間星期之類的;more指令與less重要但不常用;cat用于查看短小的文件內(nèi)容,常用!mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd .當(dāng)前目錄;rmdir刪除空文件夾;rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;man真男人,幫助手冊;history指令用于顯示編寫過的命令集,以history序號可顯示序號所指命令;echo回寫命令,很重要,我需要繼續(xù)學(xué)習(xí);exit指從多重SHELL退出來;Linux賬號下,可以增加用戶、刪除用戶、設(shè)置密碼:useradd、userdel、passwd。
注:所有的用戶的家目錄都在/home下面,唯獨(dú)root的家是在/root.點文件都是些SHELL的腳本程序,也稱隱藏文件;環(huán)境變量常見的有:HOME PATH PWD,懂得了絕對路徑與相對路徑的對比概念。
最后進(jìn)入Unit 3、
文件與文件處理的學(xué)習(xí)中,知道了Linux下支持的六種文件類型:普通文件、目錄、設(shè)備文件、命名管道、符號鏈接、socket;Linux下文件系統(tǒng)的組織:倒立的樹形結(jié)構(gòu):/ /bin /boot /dev /home /lib /proc等文件目錄,ls –l指令很好很強(qiáng)大,顯示文件類型與權(quán)限、所有者、字節(jié)大小、時間及文件名;touch可創(chuàng)建空文件,復(fù)制文件用指令cp,可選-i、-r等;重命名文件使用mv [-i];du顯示當(dāng)前目錄所占空間大小;wc命令顯示列表中文件的行數(shù)、字?jǐn)?shù)、字符數(shù);追加:cat [文件列表] 》目標(biāo)文件;find指令與grep重要,暫未學(xué)習(xí),自己在實踐中學(xué)習(xí),文件訪問權(quán)限有:r w x;chmod指令可修改訪問權(quán)限,如chmod 777 -R文件名。
輸入輸出重定向每個命令默認(rèn)打開三個文件:標(biāo)準(zhǔn)輸入stdin,標(biāo)準(zhǔn)輸出stdout,標(biāo)準(zhǔn)錯誤stderr,鍵盤為標(biāo)準(zhǔn)輸入,而控制臺則是標(biāo)準(zhǔn)輸出,文件描述符分別是0,1,2;最重要最常用的為輸出重定向>與錯誤重定向2> ;echo添加的內(nèi)容>/ 》文件;Linux過濾器和管道:管道操作符:| ;即將某個命令的輸出與某個命令的標(biāo)準(zhǔn)輸入相連接,從而實現(xiàn)管道功能,例如ls –l |wc;管道和重定向操作符可同時用于一個命令行。
嵌入式心得體會14
4月10號,為期一個階段的Linux開發(fā)基礎(chǔ)培訓(xùn)課程圓滿結(jié)束,回首這些天所留下的點點滴滴,感觸深深,學(xué)習(xí)上知識點的積累,靈活運(yùn)用的過程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門課程時,都說Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種。種不安與些許拼博的決心,開始了自我提升階段的“充電”,由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽著并學(xué)會如何去在實踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動的為我們講述了有關(guān)Linux的誕生、初成長以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來愈廣泛,講解了為Linux這個偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的'信念、勇于把握住難得的機(jī)會,從小處著手,踏踏實實的創(chuàng)造出了對人類科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種。種,都值得我們?nèi)ド羁谭词 ⒖炭鄬W(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。
secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $$SHELL可查看SHELL的環(huán)境變量是csh還是bash。指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
嵌入式心得體會15
本人大學(xué)學(xué)的是電子信息科學(xué)與技術(shù)專業(yè),其實這個專業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說有關(guān)系就是簡單的講了下C語言語法,學(xué)完之后還不知道什么是C語言,只記住了,char,int,string等占幾個字節(jié),if, for, while循環(huán)什么的,感覺也就能算一些小學(xué)就會的題目,全國計算機(jī)等級二級也就糊涂的過了。我這個專業(yè)沒學(xué)過C++,一開始不知道什么是向?qū)ο螅裁唇忻嫦蜻^程,這可能讓大家笑話了。不過這說的是實話,大學(xué)的時候比較喜歡動手,喜歡硬件方面的東西,也喜歡看書。在大一的時候就聽學(xué)長說,單片機(jī)很難學(xué),在沒事的時候就從圖書管借了本關(guān)于51的書,一開始還真是不怎么懂,然后硬著頭皮去看,當(dāng)我把51的結(jié)構(gòu)看完了,就不像一開始那樣一頭霧水了,自己在紙上把51的結(jié)構(gòu)圖默畫一遍,然后再把各個寄存器功能寫一下,各個功能口的結(jié)構(gòu)也畫一遍,然后就不覺得51有什么難了。其實有些時候不是這個東西你不會,而是在不會的時候自己先告訴自己這個太難了,自己先放棄了。我們學(xué)習(xí)51芯片,是為了以后的打基礎(chǔ),知道是怎么通過配置寄存器來實現(xiàn)功能。
大二下學(xué)期的時候,我們開了51的課,這個課幾乎就沒怎么去,因為我認(rèn)為沒有必要去聽自己會的東西了。后來聽別人說avr的資源會比51的豐富的很多,所以就想試試,看看有什么難的,就從網(wǎng)上買了本馬潮老師《AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實踐》,一邊看書,一邊想自己畫一個板了,一開始想實現(xiàn)一個點陣屏,實現(xiàn)滾動效果,后來想想做個板也花不少錢呢,為什么不多加一些功能呢,還能多學(xué)到些知識,所以就加了溫感,紅外,鐵電存儲器等并把所有的擴(kuò)展口都擴(kuò)展了出來,備以后用,那時還挺自豪的呢,同學(xué)們都很羨慕,不過現(xiàn)在想想其實也沒什么了。
大學(xué)也聽說過嵌入式這個詞,不過不太明白是什么意思,20xx年的時候從網(wǎng)上找到中嵌視頻,有四張DVD(大約13G),下載下來后,從頭到尾的看了一遍,沒什么印象,只記得講一些不知所云的函數(shù),然后莫名其妙的講怎么使用那個44b0的開發(fā)板,不過聽完了,還是有很大收獲的,就有一種想裝一個linux的沖動,我是大二下學(xué)期才有的自己電腦,不過電腦的配置比較低,1g內(nèi)存,跑虛擬機(jī)就像個蝸牛,所以就想著怎么才能裝個linux,自己用XP習(xí)慣了,如果全換了又舍不得,那時從書上知道linux的文件系統(tǒng)和windows不一樣,只有一個根分區(qū),所以也害怕一裝linux全盤就被格式化了,不過最后還是欲望戰(zhàn)勝了擔(dān)心,買了張redhat 9的光盤,小心的裝這個系統(tǒng),里邊的英文也不是太難,還是知道大概意思的,所以一步步的裝,最后裝到我的硬盤的最后空間,重新啟動,竟可以選擇進(jìn)入哪一個系統(tǒng)了,從這之后,自己就不害怕怎么裝系統(tǒng)了,應(yīng)了那句言,紙上得來終覺淺,絕知此事要躬行。所以我認(rèn)為,買一個開發(fā)板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。后來也想學(xué)學(xué)arm,但不知道arm是什么東西,所以就買了本《從51到arm》,講的是關(guān)于arm的大體結(jié)構(gòu),看完后感覺,原來arm就是一個速度更快,接口更豐富的單片機(jī)埃如果想做linux設(shè)備驅(qū)動的同學(xué)應(yīng)該對arm硬件有一些了解。如果對驅(qū)動不感興趣,完全沒有必要去看。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結(jié)構(gòu)。
大三下學(xué)期開始準(zhǔn)備考研了,所以自己這些興趣就先放下了,報的北郵的信通學(xué)院通信專業(yè),當(dāng)時就是想一定要上個好學(xué)校好專業(yè),也沒想太多,結(jié)果考了的成績差了點,沒有被錄取,也不想調(diào)劑一個二流的學(xué)校,然后就參加工作了,工作中每天都用的到開發(fā)板,當(dāng)我看到一個小板上還可以跑系統(tǒng)的時候感覺很不可思議,以為要很大工程。后來邊工作邊學(xué)習(xí),每天都要看電腦看到眼發(fā)疼,晚上也都差不多十二點時才睡覺。感覺到累,不過也感覺到自己在進(jìn)步。
閑話有點多了,說了很多都是自己大學(xué)那點破事。
聽很多的初學(xué)者說不知道從哪里開始,學(xué)習(xí)嵌入都要學(xué)哪些東西,從網(wǎng)上搜了一下,一大堆的東西要學(xué),一下就推薦十幾本書,說看完這本書怎么怎么樣,看完那本書怎么怎么樣,一下子就給初學(xué)者給嚇住了,其實完全沒必要把網(wǎng)上的那些東西全部看一遍,那樣又費(fèi)時,又感覺工程太大,讓初學(xué)者沒有信心去把每一種都看完。網(wǎng)上說的些方面都要知道,不一定全部都掌握,我們可以退成求其次,每一個都知道一些,當(dāng)然會的越多越好。今天學(xué)點這個明天學(xué)點那,換著樣來也不會覺得煩。而且還能感覺到每天都有收獲。
下面給嵌入式初學(xué)者一些自己的我個人建議。
1嵌入式涉及到很多的基礎(chǔ)知識:
c語言,關(guān)于C語言要知道基本的語法,什么是結(jié)構(gòu)體,什么是共用體,有什么區(qū)別,不用強(qiáng)記一些二級考的'東西,因在實際中用的很少。
c++要知道什么是類,怎么定義,繼承,接口,要深刻理解,當(dāng)然基本語法也是必不可少的。
操作系統(tǒng)原理也應(yīng)該知道基本的原理的,我記得我大學(xué)沒這個課還是去電信學(xué)院蹭別的專業(yè)的課呢,后來學(xué)習(xí)發(fā)現(xiàn)很多的東西都是在這個課上學(xué)到的。什么時間片啊,任務(wù)調(diào)度啊,都是在那里知道的。
Linux基本命令的使用(vi編輯器必須會用,因為在終端改文件的時候只能用這個),我們現(xiàn)在很多的人都習(xí)慣用鼠標(biāo)了,很少用到命令,我們學(xué)習(xí)嵌入linux可要改改這個習(xí)慣了,linux用命令操作一是效率高,二是功能非常強(qiáng)大,遠(yuǎn)非圖形界面能比的了的,其實我們用圖形界面的操作都要轉(zhuǎn)化為命令傳給硬件的。
Linux文件系統(tǒng)的管理要清楚,哪個目錄存放是什么東西,有什么用,文件權(quán)限管理等Shell編程也要了解一些,在這給大家推薦一個教程,周朝劍的shell編程,也就七八講吧,講的很全面。初學(xué)者看前4講就可以了。
Linux設(shè)備驅(qū)動的架構(gòu)要了解,初學(xué)者可以以飛凌的OK6410開發(fā)板上的led驅(qū)動分析一下,結(jié)合原理圖和linux設(shè)備驅(qū)動相關(guān)書籍把每一行代碼都分析明白。關(guān)于驅(qū)動給大家推薦一本書《LINUX社備驅(qū)動程序》中國電力出版社出版的,很經(jīng)典的,初學(xué)者看可能看不太明白,不過要堅持看,最次也得把前6章看完了。
2看書不要希望一次就會,一次就明白是什么意思,也不要死記硬背,看不明白也沒關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。還有,不要直接閱讀linux內(nèi)核源代碼,看一些自己把頭撞破也想不明白的事,會打擊初學(xué)者的積極性,要循序漸進(jìn),今天學(xué)個做個led,明天做個串口,后天說不定就做硬件編解碼了。
3、你可以不接受培訓(xùn),但是不能不買開發(fā)板。
如果你想學(xué)習(xí)嵌入式一定要買塊學(xué)習(xí)板,現(xiàn)在的開發(fā)板很便宜了,給我們初學(xué)者減輕了很多經(jīng)濟(jì)負(fù)擔(dān)。看再多的視頻,看再多的書,也不如自己動手試一下,看著很簡單的東西,做起來就可能遇到很多的問題,遇到問題找到原因,解決問題,只有這樣才能學(xué)到東西,記得我第一次寫led的驅(qū)動,想自己試一下,網(wǎng)上也有人寫過相關(guān)的代碼,可是自己一試,就出了好多的問題,那個led弄了我一天才把led燈點亮。所以不要眼高手低。
還有關(guān)于培訓(xùn),現(xiàn)在的培訓(xùn)機(jī)構(gòu)很多,講的也不錯,老師也很好,但是有一個問題,太集中了,而且學(xué)生動手的機(jī)會也不太多,記得我們公司還招了一個在北京某個培訓(xùn)機(jī)構(gòu)培訓(xùn)半年的員工呢,花了一萬多,來了之后也沒感覺有多高,問他都學(xué)了什么,也就是我前邊說的那些基礎(chǔ)知識,很多的東西還是不知道的,照著書弄個helloworld模塊驅(qū)動兩天沒搞定。不是培訓(xùn)不好,但我個人見解效果并不是很好。記住:只有自己動手做過的東西才是自己的。
現(xiàn)在買一塊開發(fā)板很便宜,飛凌的OK6410的開發(fā)板就不錯,源碼完全開放,而且資料也很豐富,完全能滿足初學(xué)者學(xué)習(xí)用,有人說友善的板子也不錯,我個人覺得友善的板子不
錯,但是不適合初學(xué)者,因為他的很多的東西是不給代碼的,用過友善的板子的同學(xué)經(jīng)常有這樣的痛苦,想學(xué)一個東西,去找他的代碼的時候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學(xué)者想要找代碼的時候就不知道怎么辦了。
4不要好高騖遠(yuǎn),要腳踏實地
對于初學(xué)者,還有一點小建議,我們拿到一個開發(fā)板,很興奮也很激動,想法自然也很多,想用開發(fā)板實現(xiàn)自己的這個想法,實現(xiàn)那個想法,然后又不知道從何下手,然后就去論壇中發(fā)一個貼,“那個什么什么怎么實現(xiàn)啊,哪位大俠能詳細(xì)說一下啊,跪求!1然后等著別人去回復(fù)。見沒人回復(fù)就抱怨。有想法是好的,我們要實現(xiàn)自己的想法也是有前提的,首先,我們對這部分知識了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問題,再去發(fā)貼問,這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事埃
5多看代碼,多寫代碼
見多識廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來。自己平時也要多寫代碼,多練習(xí)(這一點我做的不好,寫的少)。
寫完已經(jīng)晚上兩點了,思路有些亂,有些也是個人的見解,在有些人看來可能是錯誤的,每個人有每個人的學(xué)習(xí)方法,但是我們的目的只有一個——希望我們學(xué)到更多的知識。
【嵌入式心得體會】相關(guān)文章:
嵌入式培訓(xùn)心得體會06-14
【熱】嵌入式實訓(xùn)心得體會03-18
嵌入式實訓(xùn)心得體會10篇04-24
嵌入式實訓(xùn)心得體會9篇05-07
嵌入式處理學(xué)習(xí)心得04-01
家風(fēng)心得體會家風(fēng)建設(shè)心得體會08-04
銀行的心得體會銀行心得體會06-12
[烘焙心得體會作文]烘焙心得體會05-17
數(shù)學(xué)的心得體會 對數(shù)學(xué)的心得體會02-14
誠信心得體會_心得體會范文09-30