• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng) Boot Loader 技術(shù)內(nèi)幕(3)

    嵌入式系統(tǒng) Boot Loader 技術(shù)內(nèi)幕(3)

    作者: 時(shí)間:2010-04-20 來源:網(wǎng)絡(luò) 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/257977.htm

    此外,有時(shí)也會碰到這樣的問題,那就是:在 boot 的運(yùn)行過程中我們可以正確地向串口終端輸出信息,但當(dāng) boot loader 啟動內(nèi)核后卻無法看到內(nèi)核的啟動輸出信息。對這一問題的原因可以從以下幾個(gè)方面來考慮:

    (1) 首先請確認(rèn)你的內(nèi)核在編譯時(shí)配置了對串口終端的支持,并配置了正確的串口驅(qū)動程序。

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

    (3) 最后,還要確認(rèn) boot loader 所用的內(nèi)核基地址必須和內(nèi)核映像在編譯時(shí)所用的運(yùn)行基地址一致,尤其是對于 uClinux 而言。假設(shè)你的內(nèi)核映像在編譯時(shí)用的基地址是 0xc0008000,但你的 boot loader 卻將它加載到 0xc0010000 處去執(zhí)行,那么內(nèi)核映像當(dāng)然不能正確地執(zhí)行了。


    Loader 的設(shè)計(jì)與實(shí)現(xiàn)是一個(gè)非常復(fù)雜的過程。如果不能從串口收到那激動人心的uncompressing linux.................. done, booting the kernel……內(nèi)核啟動信息,恐怕誰也不能說:嗨,我的 boot loader 已經(jīng)成功地轉(zhuǎn)起來了!。



    關(guān)鍵詞: Boot loader 串口

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 石首市| 平乐县| 大洼县| 罗城| 洛浦县| 深水埗区| 麻城市| 灵川县| 濮阳市| 义马市| 威海市| 黎川县| 肥西县| 唐山市| 方正县| 正镶白旗| 慈利县| 长兴县| 万宁市| 盐池县| 伊宁县| 绵阳市| 日喀则市| 保山市| 自治县| 蒙山县| 丰镇市| 灌南县| 得荣县| 忻州市| 垫江县| 达日县| 吴川市| 岑巩县| 南木林县| 闵行区| 芦山县| 沧州市| 丰顺县| 涟源市| 平邑县|