在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            uboot在2440上的移植

            作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
            Bootloard代碼是芯片復(fù)位后進入操作系統(tǒng)之前執(zhí)行的一段代碼,主要用于完成由硬件啟動到操作系統(tǒng)啟動的過渡,從而為操作系統(tǒng)提供基本的運行環(huán)境,如初始化CPU、堆棧、儲存器系統(tǒng)等。由于Bootloard代碼與CPU芯片的內(nèi)核結(jié)構(gòu)、具體型號、應(yīng)用系統(tǒng)的配置及使用的操作系統(tǒng)等因素有關(guān),其功能類似與PC機的BIOS。因此不可能有通用的Bootloard,開發(fā)時應(yīng)根據(jù)具體的配置進行移植。

            為什么我們要用U-BOOT?顯然可以將操作系統(tǒng)直接燒入flash中執(zhí)行,但從軟件的升級和程序修補來說則是不可少的。

            本文引用地址:http://www.biyoush.com/article/201611/316103.htm

            U-BOOT 目錄結(jié)構(gòu)分析:

            1. board:開發(fā)板相關(guān)目錄
            2. common:通用的命令函數(shù)

            3. cpu:特定CPU架構(gòu)相關(guān)目錄,如arm920t
            4. doc:uboot的開發(fā)、使用文檔

            5. drivers:uboot支持的設(shè)備驅(qū)動程序,比如串口,nandflash,網(wǎng)卡
            6. fs: 支持的文件系統(tǒng),Uboot現(xiàn)在支持cramfs、fat、fdos、jffs2和registerfs。

            7. include:頭文件和開發(fā)板配置文件,configs目錄下是開發(fā)板的配置文件
            8. lib_xxxx: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與ARM相關(guān)的庫放在lib_arm中。

            9. lib_generic:通用的庫函數(shù)

            10. net:各種網(wǎng)絡(luò)協(xié)議,TFTP協(xié)議、NFS協(xié)議等。

            11. tools:uboot自帶的工具

            U-BOOT的啟動分為兩個階段

            第一階段:1)設(shè)置CPU工作模式

            2)關(guān)看門狗

            3)設(shè)置系統(tǒng)時鐘

            4)關(guān)MMU,CACHE

            5)為第二階段準備RAM空間(borad/smdk2410/lowlevel_init.s)

            6)設(shè)置堆棧

            7)跳到第二階段C入口點(lib_arm/board.c)

            第二階段:1)start_armboot函數(shù)
            init_sequence:
            初始化CPU,設(shè)置系統(tǒng)時鐘,初始化定時器,初始化環(huán)境參數(shù),初始化串口控制臺,檢測內(nèi)存映射
            2)flash_init: 初始化NORFLASH
            3)env_relocate: 初始化環(huán)境變量
            4)初始化系統(tǒng)外圍設(shè)備
            5)最后調(diào)用main_loop (command/main.c)(下載模式和啟動模式在這里)

            U-BOOT沒有圖形配置界面,我們只有通過手動修改文件來配置

            1)移植過程要用交叉編譯器(我用的arm_linux_gcc_3.3.2)

            2)指定環(huán)境變量 vi /etc/profile 指定路徑,把不用的注釋掉,然后保存退出

            3)source /etc/profile 使其生效 ,然后可以查看版本arm-linux-gcc -v 看是不是現(xiàn)在使用的版本

            4)vi cpu/arm920t/config.mk 注釋掉軟浮點 因為我們使用的硬浮點編譯PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8
            # -msoft-float /*注釋掉*/

            5)修改

            在smdk2410_config : unconfig
            @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

            加上

            TX2440_config: unconfig
            @$(MKCONFIG) $(@:_config=) arm arm920t TX2440 NULL s3c24x0

            各項的意思如下:
            arm: CPU的架構(gòu)(ARCH)
            arm920t: CPU的類型(CPU),其對應(yīng)于cpu/arm920t子目錄。
            TX2440: 開發(fā)板的型號(BOARD),對應(yīng)于board/TX2440目錄。
            NULL: 開發(fā)者/或經(jīng)銷商(vender)。
            s3c24x0: 片上系統(tǒng)(SOC)。

            在第128行:

            ifeq ($(ARCH),arm)

            CROSS_COMPILE = arm-linux- 指定交叉編譯器,(http://xgc94418297.blog.163.com/blog/static/112966040200952971543686/)

            6)把smdk2410 改為TX2440(任意改,只要統(tǒng)一就行)mv smdk2410 TX2440

            7)刪除board下的其他目錄,只留TX2440 方法:mv TX2440 ../ 移動到上層

            rm -rf * //刪除所在層所有目錄

            mv ../TX2440 ./ //把上層的TX2440移動到該層

            8)到這里就可以測試是否編譯成功了

            make TX2440_config

            出現(xiàn) Configuring for TX2440 board..... 表示編譯成功

            9)配置SDRAM(在lowlevel_Init.s中修改BANK和刷新頻率)

            10)在TX2440.C中修改時鐘代碼。

            可在include/configs/TX2440.h中

            #define CFG_PROMPT 后面修改你自己喜歡的命令提示符。



            關(guān)鍵詞: uboot2440移

            評論


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

            關(guān)閉