新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

        移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

        作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        最近買了一個(gè)TQ2440開發(fā)板,奈何天嵌只給出了編譯好的文件,沒有給源碼,小弟從頭開始移植Uboot

        本文引用地址:http://www.104case.com/article/201611/322001.htm

        移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

        主要修改、配置源代碼、編譯源代碼

        TQ2440開發(fā)板信息:

        CPU:S3C2440

        ARM核:arm920t

        SDRAM:64M

        Nor Flash:2M

        Nand Flash:64M

        網(wǎng)卡:DM9000

        第一步:下載 uboot 1 . 1 . 6源碼

        之前都是從CSDN上下載,發(fā)現(xiàn)下載的都不是真正的官方發(fā)布的源碼,給大家提供一個(gè)官網(wǎng)ftp://ftp.denx.de/pub/u-boot格式為u-boot-1.1.6.tar.bz2

        第二步:解壓uboot源碼到虛擬機(jī)上的linux系統(tǒng)中,一定要在linux上解壓,因?yàn)閷?duì)于linux是區(qū)分文件名大小寫的,而windows是不區(qū)分大小寫,在windows中解壓會(huì)少很多文件,導(dǎo)致不能編譯。

        解壓命令 tar xvjf u-boot-1.1.6.tar.bz2,解壓后產(chǎn)生一個(gè)u-boot-1.1.6的文件夾

        第三步:刪除多余的文件夾,由于下載的U-boot源碼支持眾多的開發(fā)板,針對(duì)TQ2440,我們只需要編譯TQ2440相關(guān)的文件即可,這里我們的移植是參考smdk2410來移植的,因此刪除一些多余的文件。

        1、u-boot-1.1.6oard目錄下只保留smdk2410文件夾,該文件夾存放和開發(fā)板相關(guān)的代碼,因此其他的開發(fā)板的文件,可以刪掉

        2、u-boot-1.1.6cpu存放和開發(fā)板CPU相關(guān)的代碼,該文件夾只保留arm920t文件,因?yàn)镾3C2440是arm920t的arm核

        3、u-boot-1.1.6include存放開發(fā)板體系相關(guān)的頭文件,asm-XXX的文件目錄中,只留下asm-arm,因?yàn)镾3C2440是arm體系的

        4、u-boot-1.1.6includeconfigs文件只保留smdk2410.h,其他的文件全部刪掉,該文件中是開發(fā)板的頭文件

        5、u-boot-1.1.6目錄下有l(wèi)ib-XXX的文件夾,保留lib-arm和lib-generic這兩個(gè)文件夾,其他的lib-XXX文件夾刪除

        6、u-boot-1.1.6目錄下有以 .mk結(jié)尾的文件,保留arm_config.mk、config.mk、rules.mk,其余的.mk文件刪除

        第四步:添加支持TQ2440的uboot,刪除后這些文件編譯后智能支持2410的開發(fā)板,因此我們要想支持S3C2440,必須增加TQ2440編譯選項(xiàng)

        1、將u-boot-1.1.6/board/目錄下的smdk2410,復(fù)制為TQ2440。

        cp - rf board/smdk2410/board/TQ2440

        2、修改u-boot-1.1.6/board/TQ2440/下的smdk2410.c為TQ2440.c

        mv board/TQ2440/smdk2410.cboard/TQ2440/TQ2440.c

        3、修改u-boot-1.1.6/board/TQ2440下的Makefile文件,修改 Makefile 文件中 28 行的 COBJS,

        COBJS := TQ2440.o flash.o因?yàn)樯厦嬉呀?jīng)改成TQ2440.c文件了

        4、修改開發(fā)板配置文件,進(jìn)入 u-boot-1.1.6/include/configs 目錄下, 將 smdk2410.h 復(fù)制為TQ2440.h

        cp include/configs/smdk2410.hinclude/configs/TQ2440.h

        5、修改u-boot-1.1.6/頂層Makefile,Makefile文件 1881 行,增加:
        TQ2440_config:unconfig
        @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

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

        6、配置交叉編譯器:修改頂層(u-boot-1.1.6 目錄)Makefile文件 128 行,修改:
        ifeq ($(ARCH),arm)
        CROSS_COMPILE=usr/local/arm/4.3.2/bin/arm-linux
        endif

        第五步:編譯uboot

        1、首先make distclean,清除

        2、make TQ2440_config,配置

        3、make編譯



        關(guān)鍵詞: 移植u-boot16TQ244

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 潍坊市| 延津县| 永登县| 牙克石市| 白沙| 嘉义市| 乐清市| 谢通门县| 灌南县| 乌鲁木齐市| 阳城县| 弋阳县| 罗江县| 松潘县| 沙田区| 托克逊县| 辽阳县| 洞头县| 涿鹿县| 外汇| 阿克苏市| 千阳县| 孝感市| 安庆市| 桦甸市| 崇信县| 建阳市| 棋牌| 措勤县| 龙岩市| 平塘县| 呼伦贝尔市| 舟曲县| 天台县| 垫江县| 米泉市| 宣化县| 沛县| 登封市| 南江县| 兴文县|