如何走進嵌入式開發[1] -- 基本組成

首先需要申明的是,本人也還是X鳥級,說的只是現階段粗淺想法,可能明年就不是這樣想了,一個朋友讓我給介紹下如何入門,在此就總結關於這個話題的經驗。

 

記得畢業設計時,覺得嵌入式這個名字比較高級,主要是以前沒怎麼聽過,畢設就選了個相關題目,結果那叫慘不忍睹呀,只能靠文檔充數。

 

鬼使神差,第一份工作做的竟然也是嵌入式相關,我就帶着從學校裏學得的XX理論,加入嵌入式新兵行列。

 

感覺,總的下來,是學到不少東西,確實是比當年從容了許多,我入門了~估計!

 

由於本人比較偏軟件,硬件許多東西還想不清楚,這歸爲我的先天不足吧,需要提高。

 

下面就從帶有偏見的角度說說,我們從基本組成開始:

1. toolchain;

2. boot loader;

3. kernel;

4. rootfs;

 

這幾個基本就夠成了整個嵌入式開發所接觸的東西了,其中基本東西都在BSP中,所以真正要做的東西不是很多。當然如果想提高,可以都自己弄弄。

 

工具鏈:其實沒什麼需要弄的,我們的板子是ARM的,就隨便找來個ARM工具鏈,基本都是能用的;自己編的話相當麻煩,記得也就是做LFS時,對着文檔時成功過一次。

 

boot loader:用u-boot的比較多,代碼可以看看,主要就是2塊,一個彙編部分,一個是c部分,彙編部分偏底層。我認爲把u-boot代碼弄一弄還是很有必要的,起碼說板子的內存分佈,基本操作都瞭解了,幾個硬件驅動也都能做了,內核做的一部分工作和這個也是一樣的。當然,u-boot代碼結構相當不好,一點就是,和這個板子不相關的驅動,它都會編譯,這完全體現不出模塊化,因此,我們改寫了u-boot,加入KCONFIG, 弄得和內核一樣。

 

kernel:如果只是一般應用,應該不太涉及修改內核,BSP的拿來直接用,不過如果遇到和我們一樣不太負責的BSP提供商,就需要好好弄弄了,不過確實可以學到不少,最主要的是內核結構,硬件結構,接口啥的,寫驅動的話,這個很有幫助。至於內核修改,那就說不完了。內核有的儘管用,內核沒得想法加。

 

rootfs:就是那個東西!

 

 組成說完了,這就算入門了嗎?我感覺是。好像沒啥東西,不過我感覺我現在能做的也就是這些:

用我們自己的bootloader,在自己的內核加入自己的功能,跑自己的rootfs,一條龍了。

 

暫時休息,下回補充。。。

 

加句話:理論的內容應該會比較少,這裏只是實際過程的總結,“這話不能說得太細”~。!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章