嵌入式BootLoader技術內幕(三)

嵌入式BootLoader技術內幕(三)

四、 關於串口終端

在 boot loader 程序的設計與實現中,沒有什麼能夠比從串口終端正確地收到打印信息能
更令人激動了。此外,向串口終端打印信息也是一個非常重要而又有效的調試手段。但是
,我們經常會碰到串口終端顯示亂碼或根本沒有顯示的問題。造成這個問題主要有兩種原
因:(1) boot loader 對串口的初始化設置不正確。(2) 運行在 host 端的終端仿真程序
對串口的設置不正確,這包括:波特率、奇偶校驗、數據位和停止位等方面的設置。

此外,有時也會碰到這樣的問題,那就是:在 boot loader 的運行過程中我們可以正確地
向串口終端輸出信息,但當 boot loader 啓動內核後卻無法看到內核的啓動輸出信息。對
這一問題的原因可以從以下幾個方面來考慮:

(1) 首先請確認你的內核在編譯時配置了對串口終端的支持,並配置了正確的串口驅動程
序。

(2) 你的 boot loader 對串口的初始化設置可能會和內核對串口的初始化設置不一致。此
外,對於諸如 s3c44b0x 這樣的 CPU,CPU 時鐘頻率的設置也會影響串口,因此如果 boo
t loader 和內核對其 CPU 時鐘頻率的設置不一致,也會使串口終端無法正確顯示信息。


(3) 最後,還要確認 boot loader 所用的內核基地址必須和內核映像在編譯時所用的運行
基地址一致,尤其是對於 uClinux 而言。假設你的內核映像在編譯時用的基地址是 0xc0
008000,但你的 boot loader 卻將它加載到 0xc0010000 處去執行,那麼內核映像當然不
能正確地執行了。

五、 結束語

Boot Loader 的設計與實現是一個非常複雜的過程。如果不能從串口收到那激動人心的


"uncompressing linux
.................. done,
booting the kernel……"

發佈了65 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章