入式學習心得體會
嵌入式學習心得體會一:
這個題目很大,給人一種感覺我好像很成功,其實不然。實際上自己水平不高,甚至很低,但是做過了一些曲折的學習道路,同時把自己真實的學習歷程表達出來,希望對後來者有借鑑的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業於華中地區的一個理工科大學,專業是機械電子,我當時已經簽了一家內陸某個省級機關工作,家裡八輩是農民,並且很偏遠,能夠進入這樣的地方是祖墳有風水。但在畢業前夕有個進入it的機會,我本想進去的,家裡人極力反對,阻力可想而知。同時要交4000元的違約金,對我來說是天文數字。大學裡的費用很多是借的,幾乎將近一半的費用是在大學勤工儉學掙的,為了省錢,高中一個學期回家一次,大學一年回去一次。並且我個人也有特殊的人生背景,這裡不多說了,寫十篇也寫不完,同時偏離主題。這樣我就參加了工作。一張報紙一杯茶的日子,幾乎下班後有種很空虛和恐慌的感覺。在工作中雖然是與自己專業有點關係,但是很少。專業幾乎荒廢。我自己也思考,如果再不出去,自己將會成廢人,只好讓國家養了。兩年後決定出去,但是幾成廢人,誰要呢,只好到學校去鍍金。這是中國教育和社會的悲哀!
至於專業就改為計算機方面,聽說好找工作,我說實話不是很對計算機特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績出來,超過了國家線幾十分。那個方向要兩個,我第三,但是那年非碘,不面試就按分數來排,自然我落選了。其實給我面試機會也不一定要我,哈哈,自己幾斤幾兩很清楚。
最後調劑到另外一個學校,交錢,咬咬牙,交吧!現在仍然債台高築!
進入學校前夕
為什麼要把這段列出,看後就知道了。
單位有網路,經常上網查些英文資料,在那裡唯獨英文沒有丟很多。於是我就在網上查資料,學什麼好呢,最後確定學嵌入式把,聽說跟硬體相對比較緊密!而我在大學裡多少學習了數字電路,單片機等,所以多少也有所利用,不會真的一無所知。當然在這之
前也自學過數據結構,計算機組成原理等。c 語言在大學就學了。哈哈這就是我的家底。
我知道自己的基礎差,於是我就拿作業系統,資料庫、數據結構、c++來看,機關有這個好處,空餘時間多,於是平常就看書,很痛苦,沒有人請教。
另外就上網到論壇上去,我就到各個專業的技術論壇,其實是電子論壇和嵌入式論壇。我幾乎沒有發帖,幾乎把幾個大型的出名的論壇的帖子翻遍了,雖然有很多重複的,我才知道嵌入式是個什麼東東。這些帖子對我以後的學習產生了極大的影響。
最關鍵兩點:1、嵌入式是什麼?
2、嵌入式需要哪些知識?
知道了這兩點,好辦!我就開始規劃學習路線。計算機的基本理論不能丟,於是重點看組成原理,數據機構,作業系統、c++。同時論壇上了解到,實時作業系統ucos是一個很好的嵌入式作業系統,對初學者很好。於是我就買了一本書,但是代碼在電腦里調不通,網上也有很多相同的問題,我就看書,分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門,才知道什麼是進程。原來看作業系統書時,根本就不知道進程是個什麼東西。
在這段時間掌握的東西不多,但是,對我以後的影響很大,我想起了大學時一個同學跟我說過了一句話:大學裡最重要的不是學到了什麼,最重要的是學會怎麼學!大概是這個意思。
進入我的避難所
對我來講,再次進入大學不再是大學,而是避難所。希望這次進入給我喘氣和養精蓄銳的機會和時間。我是這樣認為和實踐的。
在學校我有三件事:上課,上圖書館,上網。
對於上課,學校開了很多課程,非常好,很多是名人名師講解,於是很多同學都想學,都去聽。我也考慮過,最後放棄。我是這樣認為的,時間是有限的,什麼都想學,什麼都學不成。於是我把我自己學的課進行了分化,一般的課程通過就行,重要的一定好好學。我希望不要什麼爭論學習課程多和少的問題,這僅僅是我的看法。所以我的成績應該是很差的。分數低。好在後來的單位沒有要我的成績單,否則就慘了。
我個人感覺是上圖書館的效率比在寢室里高多了,這是我的經驗。
嵌入式學習心得體會二:
目前最常見的嵌入式LINUX方面,我認為大概3個:
1.嵌入式LINUX上層的套用,包括QT的GUI開發
2. 嵌入式的LINUX系統開發
3.嵌入式的驅動開發
學習嵌入式:
第一.C語言要掌握,C語言是所有程式語言中的強者,單片機,DSP,類似ARM的種種晶片的編程都可以用C語言搞定,因為它可移值性強,編譯效率高,運算速度快,便於實現理更複雜的的數據結構。上層套用和數據存儲,我推薦使用C++語言。
第二.學習一種嵌入式的處理器架構,個人推薦32位的處理器,像ARM,因為嵌入式
開發8位的處理器顯得有點低端,大多數只能用作簡單的工控.
第三.學習一種嵌入式作業系統,像LINUX,WINCE等都可以,LINUX更好。
三:ARM是一種微處理器,已遍及工業控制,消費類的電子產品,通信,網路,無線等各類的產品基於
ARM技術的微處理器已占75%以上的市場份額,可見其技術已逐滲入到我們生活中的各個領域,像手機
就是用ARM7 ARM9 ARM11的微處理器技術開發的。嵌入式系統最常見的ARM系列,ARM7 ,ARM9,
ARM11,cortex-A8等。
我們都是曾經從大學裡走出來的迷茫羊羔,工作以後我才知道,在大學裡不是學到了什麼,而是學會怎麼去學,相信自己,理清自己的思路,根據自己的性格,剖析自我適合往哪方面發展。
嵌入式學習心得體會三:
一,如果非常多人都想做Linux,那麼就要對Linux要 比較熟悉。這個熟悉不是說對核心,對代碼有多了解,而是至少要會基本的操作,非常難想像讓一個連編譯程式,編輯文本檔案都非常困難的人去弄嵌入式的軟體吧。總之在進入嵌入式這個領域之前要對自己評估一下,看看自己是不是準備好了去學習嵌入式相關的東西。
二,要捨得花錢買研發板。公欲善其技,必先利其器。也就是說,理論上可能掌控了非常多,不過不去實踐,那只能是紙上談兵,這樣是無法學好嵌入式的。弄個研 發板自己擺弄擺弄,即使什麼都不懂,也能按照說明書把廠家給的程式下載到研發板上運行運行,先知其然,然後再通過具體的學習知其所以然,這樣能避免學習中 的枯燥。目前市場上研發板的種類繁多,相同CPU的板子價格卻相差非常多,令非常多人都不知道怎麼選擇購買。我的看法是,儘量買大廠的產品。因為在初學階 段學習資料少是個非常頭疼的事,非常多時候都是無從下手,不知道怎麼去做,那麼隨研發板附送的資料就非常重要了。大廠技術比較強,附帶的程式都是能在板子 上運行的,例如我買的優龍ST2410這個板子,光碟上帶了一個bootloader,個2.4.18的核心,更有一個cramfs,這些 程式的原始碼都是廠家事先做好或修改好的,完全適用於初學者使用。而有些實力不行的小廠家的資料不齊全,我們學習的時候需要自己弄bootloader什 麼的,那入門就非常難了。不過大廠的板子都非常貴,大家能根據預算來選擇適合自己的研發板,不過無論怎樣,在學習上投資都是值得的。
三,不要事無巨細的學習,要有明確的目標。我最開始給自己制定的學習計畫是:學習arm體系結構 -> 學習arm彙編 -> 自己移植bootloader -> 自己移植kernel -> 做套用,不過不久就被我否決了,因為這個過程實在是太枯燥太痛苦了,在學習資料少,沒人指導的情況下根本無法進展。於是我決定使用廠家的代碼來“玩”研發 板,自己弄些套用上去。先是完全使用廠家給的bootloader,kernel,cramfs。之後發現cramfs中的一些控制Linux初始化的文 件不符合我的需求,於是修改cramfs,刪除了QT,修改了網卡初始的IP位址,安裝到板子上能運行了之後就開始嘗試做一些套用,比如hello world這樣的程式。最後移植了一個mpg123到板子上。完萬能在不知道原理的情況下來使用板子的一些功能,等熟悉板子了再回頭學習其中的道理,這樣 就容易一些。學習嵌入式就是這樣,根據問題來選擇學習的內容,否則會非常盲目,最後就失去信心了。
四,要有耐心。不能否認,在學習一門自己完全不了解的技術是非常煩人的。嵌入式的複雜在於他的交叉性。也就是說為了研究某一個嵌入式的問題,你有可能得學 習非常多其他的知識,比如作業系統,編譯,體系結構等等,那麼對於這種情況需要我們有足夠的耐心。我在交叉編譯mpg123的時候前幾次無論怎麼修改 makefile都無法編譯成功,最後我發現我用的arm-linux-gcc是2.9版本的,比較老,於是我換成新的3.4.1版本,就ok了。
以上是我初學嵌入式所獲得的一些淺顯的經驗,基本都是基於軟體方面的,硬體的DIY我就不行了。希望我的經驗能給大家一些幫助。
剛剛和LUPA的嵌入式版主要了uboot的代碼,接下來的我想研究研究廠家的bootloader代碼然後移植一下uboot。
嵌入式學習心得體會四:初學嵌入式的幾點心得和體會
研究嵌入式系統已經有快兩年的時間了。很慶幸自己當初選擇了嵌入式系統作為自己的研究和職業方向,可以說它是一種催化劑,讓我自身的修養和研究能力都有了很大的提高。在嵌入式系統的大門前,我只能算是剛剛看到這個大門的台階,但這段小小的距離讓我受益頗多,現將其中心得奉獻出來,歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫之前,想先寫一句話,千萬不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認為你是天才,請以天才的標準來要求自己,將自己付出和別人的比例以N:1來進行。 學習與生活心態
很多朋友都是在剛步入大學校門開始接觸計算機或者其他。大學是一個很讓人迷茫頹廢的地方,可能你在高中躊躇滿志,但在大學的管理機制下卻心態漸糜。能夠在大學裡找到自己人生之志的同學有多少?目標要明確,不要得過且過,不要追逐熱門的東西。不管在什麼時候,心裡都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競爭出發,因為這才是你產生動力源的地方。學東西時,要讓自己先喜歡上它,要學會享受學習它的時間,喜歡喬***的都知道,喬老爺子最常說的一句就是要享受比賽的時間。因為只有你喜歡上了它,享受了它,才不會被它所產生的壓力壓倒自己,不要產生一種厭惡的心理。而且心態要調整,不要一味的蠻學,死學,在沒有什麼興趣學的時候可以先玩幾天,在回過頭來,或者用其他的方式來轉換。要抱著一種十年方能磨一劍的心理,扎紮實實從基礎開始,不要為高速開發的一些現象所迷惑,那些都只是軟體的功勞。我個人認為搞編程,英文和數學很重要,大家一定要時時的抓,至於怎麼抓那就是另外一回事了,當然其他的知識也要汲取,可以多接觸點天文,地理,人文方面的東西來補充自己。轉換的生活方式。要學會生活,在人的一生中,都會遇到一些很不開心的事,或者大大小小的意外,孫子兵法裡面一句大意就是說,戰場上要會將劣勢轉成優勢,即最大的劣勢很可能就是你的優勢所在。一個打擊你可以把他變為前進的動力,不必為了一點挫折和捶胸頓足,不必為了一點小事爭吵不休。空閒的時候可以躺下來看看天,你就會明白自強不息,厚德載物之理。 。 要給人以幫助。別人有困難時或者一些舉手之勞在自己解決範圍內的盡力幫之,這對自己不會損失什麼,相反在對方心裡能夠樹立你的形象和增加好感。記住,給人之恩時也是給你自己鋪路,這個世界不是靠你一個人可改變的。程式語言的選擇 語言的爭論。很多初學擇,老是在學習何種語言上舉棋不定,試問,中國牌子有幾個不被罵的,試問,世界上哪部影片沒人說他壞話的?術業有專攻,各司其職,每個語言的出現肯定都有自己價值和領域的範圍,不同的只是價值和領域的高級和大小。就像高,矮,胖,瘦組成一個“型”。但是技術是進步的,這個進步也是在舊的基礎上。放心,技術再飛躍也不會今天奔I,明天扣肉的迅速,在學習的同時也要時時關注整個語言界的走勢,保持一種同步曲線的前進。語言能幹什麼?能問這句話,很欣慰。表明你是從基礎學起才會問出這樣的話來。但換而言之你一開始對這門語言調查的信息不足。廟算者勝,對自己身邊的事物了解是非常重要的,這也能說明說你的教材或者教導你的人不夠充分。如果是我對新手交流,我會花足時間讓他明白這門語言是什麼,能幹什麼,整個體系等等。這樣在學的時候,對同一條語句上的理解你可能跟別人就不一樣了, 因為你知道這門語言的體系架構,你可以從更多的特性角度去挖掘使用它。提高自己對語言閱讀能力。如何快速的進步?可以告訴你沒有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學的技術。多讀他人代碼,多領悟他人思維,多給自己出難題,多幾種方法來解問題,多將語言的思想和身邊的事物聯繫起來。想想你是怎麼掌握國語的,方法就不具體說了。編程的思維。計算機是充滿誘惑的東西,很多人都說熱愛計算機,那只是它的表面,你熱愛的只是他的一種擴展性的東西。能學計算機我很高興,因為計算機從某種意義上來說將空間的距離給消除掉了。這裡沒有流血,沒有犧牲。你可以以一種藝術家的思維來塑造它,可以以偵探的邏輯思維來破解它,可以以一種戰爭狂人的思維來摧毀它。你可以將你的這種思維體現在代碼和整個布局裡,不要驚異別人代碼思維的異風,你也有自己的思維風格,你也可以,你也可以用自己代碼讓別人驚異。記住你學東西時更多的要體會他的思維,比如數學,微積分,離散,無數的定理,你學完以後可能永遠都用不到,但是你可能有這種感覺,在你碰到某一問題時,這一問題的性質和你學到的東西很類似,但是中間就是差了一點東西,對了,這就是它思維上的一種運用,一種抽象,一種轉換。
嵌入式學習心得體會五:
首先我聲明,我是基於嵌入式系統平台級設計的,硬體這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。
對於硬體來講有幾個方向,就單純信號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了模擬電路數位化,比如手機的modem射頻模組,都採用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模組,只要達到一般程度可能月薪都在15k以上。
另一類就是數字部分了,在大方向上又可分為51/arm的單片機類,dsp類,fpga類,國內fpga的工程師大多是在ic設計公司從事ip核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個ic前端驗證工程師,也要搞上幾年才能勝任。dsp硬體接口比較定型,如果不向驅動或是算法上靠攏,前途也不會太大。而arm單片機類的內容就較多,業界產品占用量大,套用人群廣,因此就業空間極大,而硬體設計最體現水平和水準的就是接口設計這塊,這是各個高級硬體工程師相互pk,判定水平高低的依據。而接口設計這塊最關鍵的是看時序,而不是簡單的連線,比如pxa255處理器i2c要求速度在100kbps,如果把一個i2c外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在匯流排接lcd,但為什麼這種lcd就不能掛在arm的匯流排上,還有arm7匯流排上可以外接個winband的sd卡控制器,但為什麼這種控制器接不到arm9或是xscale處理器上,這些都是問題。因此接口並不是一種簡單的連線,要看時序,要看參數。 一個優秀的硬體工程師應該能夠在沒有參考方案的前提下設計出一個在成本和性能上更加優秀的產品,靠現有的方案,也要進行適當的可行性裁剪,但不是胡亂的來,我遇到一個工程師把方案中的5v變1.8v的dc晶片,直接更換成ldo,有時就會把cpu燒上幾個。前幾天還有人希望我幫忙把他們以前基於pxa255平台的手持gps設備做下程式最佳化,我問了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間採用的spi接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程式的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個優秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計pcb繪製,邏輯設計這塊。這是指的硬體設計工程師,從上面的硬體設計工程師中還可以分出ecad工程師,就是專業的畫pcb板的工程師,和emc設計工程師,幫人家解決emc的問題。硬體工程師再往上就是板級測試工程師,就是c語功底很好的硬體工程師,在電路板調試過程中能通過自已編寫的測試程式對硬體功能進行驗證。然後再交給基於作業系統級的驅動開發人。
總之,硬體的內容很多很雜,硬體那方面練成了都會成為一個高手,我時常會給人家做下方案評估,很多高級硬體工程師設計的東西,經常被我一句話否定,因此工程師做到我這種地步,也會得罪些人,但硬體的確會有很多不為人知的東西,讓很多高級硬體工程師也摸不到頭腦。
那麼高級硬體件工程師技術技能都要具備那些東西哪,首先要掌握eda設計的輔助工具類如protel\orcad\powperpcb\maplux2\ise、vdhl語言,要能用到這些工具畫圖畫板做邏輯設計,再有就是接口設計審圖能力,再者就是調試能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。
硬體是要靠經驗,也要靠積累的,十年磨一劍,百年磨一針。
把一個月前想寫的東西,今天終於用一上午的進間整理完了,希望對喜愛嵌入式系統開發的工程師和學生們有所幫助。