minis3c2440嵌入式开发板学习之u-boot移植(一)

minis3c2440嵌入式开发板学习之u-boot移植(一)
2011-02-22 13:00

 

U-boot移植<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

(以下步骤适用于s3c2440开发板)

1、修改Makefile文件:

a.修改交叉编译宏(CROSS_COMPILE?=)修改为(CROSS_COMPILE?=arm-linux-);

    b.将._LIBS:后的两个变量交换位置(line289)

    c.添加tocore2440_config Make文件(line2997)

tocore2440_config: unconfig

@$(MKCONFIG) $(@:_config=) arm arm920t tocore2440 tocore  s3c24x0

包含六个参数:$1. tocore2440 表示在include/configs/目录下必须包含tocore2440.h文件;$2. arm表示在主目录下包含lib_arm目录,在include/目录下包含asm_arm目录;$3.arm920t表示CPU型号,在cpu目录下包含arm920t目录;$4.tocore2440芯片型号;$5.厂商目录(if($5!=NULL),则在board目录下有$5/$4目录,else,则在board目录下有$4目录);$6. s3c24x0表示在include/asm_arm/包含arch_ s3c24x0目录;

d.以上部分表示在移植U-boot前首先要添加开发板自己的配置头文件,并在board目录下建立自己的开发板目录,修改s3c24x0(cpu/arm920t/s3c24x0,include/asm_arm/archs3c24x0)文件,改为支持2440开发板,修改过程如下:

1)      修改inperrupts.c文件,添加宏定义:#defined(CONFIG_S3C2440)( line36)。

2)      修改speed.c文件:a.添加宏定义:#defined (CONFIG_S3C2440) ( line33);b.在get_PLLCLK()函数中添加2440支持,具体修改方式如下:在return返回值前添加#if defined(CONFIG_S3C2440)

if (pllreg == MPLL)

return((CONFIG_SYS_CLK_FREQ * m * 2) / (p << s)); //得到2440开发板的频率

    else if (pllreg == UPLL)

#endif

c.将get_HCLK()函数修改为2440支持,将原函数返回改为:

    //该函数为读取当前系统时钟

#if defined(CONFIG_S3C2440)

   if (clk_power->CLKDIVN & 0x6)

    {

        if ((clk_power->CLKDIVN & 0x6)==2) return(get_FCLK()/2);

        if ((clk_power->CLKDIVN & 0x6)==6) return((clk_power->CAMDIVN & 0x100) ? get_FCLK()/6 : get_FCLK()/3);

        if ((clk_power->CLKDIVN & 0x6)==4) return((clk_power->CAMDIVN & 0x200) ? get_FCLK()/8 : get_FCLK()/4);

         return(get_FCLK());

    }

    else return(get_FCLK());

#else

    return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());

#endif

d.修改time.c文件,添加宏定义#defined (CONFIG_S3C2440)(line33)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值