vivi原始碼分析1
通過vivi研究bootloader有一段時間了,基本是在與之相關的基礎方面做工作,還沒有真正深入研究vivi。以後的學習重心就要放到研究vivi原始碼上面了。我想,真正細緻地弄清楚vivi實現的細節,對C語言水平的提高,對ARM體系結構的認識,對S3C2410的熟悉,對嵌入式bootloader相關技術,都能有很大的好處。學習的進度會慢一些,但是務求深入,並且打好相關的基礎。
一、寫在前面的話嵌入式系統軟體開發主要包括五個方面:bootloader編寫(移植)、驅動程式編寫(移植)、作業系統裁減(移植)、檔案系統製作、應用程式編寫(移植)。嵌入式開發流程我已經熟悉,但是僅限於完成最為基本的工作,大部分是藉助網路資料,自己獨立解決的問題很有限。學習嵌入式系統已經一年了,算是入門了。然而,入門之後如何繼續深入學習嵌入式系統開發,如何提高自身的能力?
我想,這也許是獨立摸索的學習者都會遇到的問題吧。思考之後有所得,核心就是一句話:務實,理論與實踐結合!具體說來,就是要不斷的認識自己,去了解自己最適合做什麼。這是最為重要的,如果不知道做什麼,就無法安排學習的重點。嵌入式開發的領域太廣,要想在方方面面都深入不太容易(當然牛人除外)。現在對自己的認識如下:本科有硬體、通訊背景,但是沒有太多機會進行硬體設計。而硬體設計最為重要的就是經驗,動手能力,所以不打算把硬體設計作為學習的重點。底層軟體開發既需要對硬體熟悉,又需要軟體設計能力,正適合我。所以以後的學習,以底層軟體開發(bootloader設計、驅動程式設計)為重點,同時也要加強硬體學習。學習有重點,但是嵌入式開發的其他領域也要涉及,瞭解廣博才能更有助於設計。進展慢不要緊,關鍵是要深入,深入,再深入。真正地去理解這些技術,並且能夠熟練的應用。這半年的核心就是bootloader技術研究,打算先看vivi,然後看uboot。手頭上的板子有s3c2410、at91rm9200,這些都可以拿來訓練,爭取能夠通過bootloader技術的掌握,同時熟悉了ARM體系結構、ARM彙編、開發工具等等一系列相關內容,總結學習的方法,提高學習能力。 二、準備工作 在分析vivi原始碼的時候,不打算完全按照vivi的程式碼來進行。我的思路是,以從nand flash啟動為主線,分析從上電到引導核心的過程。以自己的理解去實現vivi的原始碼,要自己手動編寫,即使與vivi的程式碼相同。只有這樣,才能從整體上理解vivi的設計方法,理解vivi各個功能的實現細節。這份文件算是自己的學習筆記,儘可能詳細,同時希望有研究vivi的朋友一起交流,我的email:
|
|
|
|
|
|
|
|
|
|