學習嵌入式軟體的歷程

2021-04-12 16:43:04 字數 2877 閱讀 3889

要說我的嵌入式歷程,還要從去年

11月份開始,因為在研究生開了一門接**術課程,再加上本科學習了

51系列微控制器的基本原理,所以想找乙份這方面的兼職歷練自己。到了週末,我就跑人才招聘會投簡歷去。由於工作經驗的匱乏,很少合適的崗位選擇。跑了幾次,得到了乙個面試,應聘微控制器硬體方面的吧,人家問我,懂不懂

protel

,arm

啊,當時我連

protel

是什麼都不知道,面試效果就不是很好,所以第二天我就受到了乙個**,拒了我。回到學校,了解了一下相關的資訊,覺得自己還是把

arm好好學學,覺得把

arm搞懂了,工作還是相對好找。我就花了乙個多月把

arm好好學了一翻。大概也就放寒假了。

寒假回來,我同學實驗室買了一塊

arm9 s3c2410

開發板,我就在那裡看到他們把

wince

作業系統燒進去。整個過程在當時對於我來說,感覺很神奇,很有深度(大家不要笑,我的專業是機械電子,很少牽涉到這方面的東西)。我那是想啊,要是我能把這整個過程的軟體實現搞通,那是一件多麼令人愉悅的事情啊。這樣想著,我自己也就買了一塊開發板,因為自己課題搞的不是這方面,只有自己掏錢了。買來了,由於質量的問題,跑了幾次才搞到一塊好的。到此時,也就

4月份了。開始把

wince

按照說明書燒進去。然後,開始也就有點迷茫啊,不知道從和下手。我就看

s3c2410

的說明書啊,希望能從中找到答案。找了一些資料,也算對

s3c2410

有了一些了解了,同時也學習了一下

ads。這樣

4月份也就過去了。而到

5月份課題進入乙個非常時刻,也就沒法兼顧那塊開發板的學習了。直到

6月份,我才有時間想想自己應該從那方面下手,學習嵌入式。想來想去,發現學習

linux

還是很有前景,再加上

linux

核心的開源,所以選擇了學習

linux

核心。首先實現核心的編譯和燒錄,這個做好了,就買了幾本書了解嵌入式相關的知識。因為以前對這方面沒什麼了解,對硬體也沒有什麼了解,所以,我花了很多時間來了解嵌入式和硬體方面的了解,也學了

protel

。有了乙個基本的了解後,我就想我自己到底應該選擇做那方面呢?硬體我以前從來沒有做過,沒有基礎。而做軟體,由於課題就是乙個純軟體的。在軟體方面還是有點基礎,我自己在這方面本來也就很有興趣。所以,我選擇了做嵌入式軟體作為我的目標,有了這個目標,也就有了方向。我到圖書館找到了

linux

核心方面的書,首先我選擇了毛德操的

linux

核心的情景分析,覺得還不錯。我就開始學習,開始看這本書,發現特別的難,很多東西都不知道。想找個人問,周邊也沒有誰了解這方面的東西。所以,硬著頭皮,看完第一遍,很多地方都不怎麼懂。在網上看貼子,都說剛開始都這樣的。然後,還找了一些相關的書籍,進行了一些研究,對

linux

核心情景分析是乙個補充。然後,我就把

linux2。4

核心**列印出來,對著書看了一遍,但對於**還是沒有很好的了解,只不過是很粗略的看了一遍。看完之後,更感覺到自己對核心的了解很淺。所以,我想還是要從開頭好好研究研究。 針對

vivi

的bootloader

的實現過程,我進行了分析之後,有了乙個很深的理解。對他整個實現的過程有乙個很清晰的認識。然後再對

i86的啟動過程也進行了分析,知道了

i86啟動需要做什麼了。到現在才有了學到東西的感覺。然後,對核心的研究也就告一段落了,開始想看看驅動是怎樣開發的,到圖書館找到了

linux

核心驅動開發這本書,對字元驅動的編寫進行了簡單的實現,但就是沒有針對某個硬體進行驅動的編寫。

到了這個時候,就

11月份了,也就要忙著找工作了。那裡有招聘會,我就往那裡跑。這段時間除了找工作,就是忙於學**。這樣也就拖到

12月份了。到

12月份筆試,面試開始多了起來,我投的都是嵌入式軟體方面的工作。剛開始,我筆試都通不過。為什麼呢?雖然我編過程式不少,但以前都不求甚解,只要能實現就可以,還有我也不是科班出身,對一些這個領域的基本知識不是很了解,所以鬱悶啊!那只有餓補了。有空就跑到圖書館看書。大概到

12底,筆試差不多問題就不大了。也參加了幾次面試,也就問你做了什麼專案啊,你簡歷上的東西啊。我在簡歷上自然把熟悉

linux

核心作為重點,第一次別人讓我談談

linux

核心,我卻不知道怎麼講!原因主要是我這段時間根本沒有對

linux

核心的東西有過什麼總結和學習,還有感覺就是

linux

核心這麼大,從何而講呢?卡住了。

經過這次,我趕快把以前的東西拿出來複習。後面也有面試,但人家問我很細節方面的東西,我又不是很清楚了。面試也就失敗了。

經過這幾次面試,發現自己對以前學過的東西進行很好的總結。也沒有對

linux

核心細節方面的東西有過研究。所以,我現在就是想把

linux

核心很系統,深入對研究一遍。並對**有乙個更深的了解。為此,我打算花乙個月的時間好好學學。

在這一年多的過程中,我花費了我很大的熱情在嵌入式方面的學習,說句實話,並沒有達到我預期的目標。但這也有一些是主觀的客觀的原因,我不是科班出身,以前對作業系統也不了解,嵌入式的門階也高,還有就是我周邊沒有乙個嵌入式學習的環境,沒有人進行指導。

在這些時間裡,我也得到很多的收穫。我確定了我自己的初期職業方向,也更加堅定了我在這個方向的發展。可能我現在出去,並沒有什麼優勢可言,但我非常相信自己的能力,過了幾年之後,我一定在這方面有乙個很好的發展。但同時還是需要更多人的幫助和指導。在

linux

核心的學習方面我也很迷茫,我不知道我到底要花多長時間才能掌握

linux

核心,而要到什麼程度才算真正掌握了

linux

核心。  

嵌入式Linux學習歷程 Makefile

makefile用來完成以下功能 1 如果工程沒有編譯過,那麼工程中的所有.c檔案都要被編譯並且鏈結成可執行檔案。2 如果工程中只有個別c檔案被修改了,那麼只編譯這些被修改的c檔案。3 如果工程的標頭檔案被修改了,那麼需要編譯所有引用這個標頭檔案的c檔案,並且鏈結成可執行檔案。例 乙個工程 通過鍵盤...

嵌入式軟體學習記錄

資料型別 int char short long float double x86編譯器中char 1個位元組 int 2個或4個位元組 long 4個或8個位元組 short 2個位元組 float 4個位元組 double 8個位元組 如 char為1byte 8bit,即28 256,儲存最大...

嵌入式軟體工程師面試歷程

記錄這個月的面試經驗和其中些許對於工作的看法。一 廣州優利康沛科技 這是我向公司提出離職申請,還沒離職就去面試的一家公司。該公司沒有筆試題,由乙個資深工程師直接面試我,都是問些基礎知識,例如 怎麼理解c語言中的定義和宣告?是否使用過實時作業系統?sizeof函式和strlen函式的區別?系統排程的原...