微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Uboot在S3C2440上的移植详解(一)

Uboot在S3C2440上的移植详解(一)

时间:11-09 来源:互联网 点击:

部分

str r1, [r0]

ldr r0, =UPLLCON //设置USB时钟频率为48MHz

ldr r1, =0x38022 //这个值参考芯片手册“PLL VALUE SELECTION TABLE”部分

str r1, [r0]

#else //其他开发板的时钟部分,这里就不用管了,我们现在是做2440的

/* FCLK:HCLK:PCLK = 1:2:4 */
/* default FCLK is 120 MHz !*/

ldr r0,=CLKdivN
mov r1, #3
str r1,[r0]

#gedit cpu/arm920t/s3c24x0/speed.c //根据设置的分频系数FCLK:HCLK:PCLK = 1:4:8修改获取时钟频率的函数

static ulong get_PLLCLK(int pllreg)
{
S3C24X0_CLOCK_POWER *const clk_power =S3C24X0_GetBase_CLOCK_POWER();
ulong r, m, p, s;

if(pllreg == MPLL)
r = clk_power->MPLLCON;
elseif(pllreg == UPLL)
r = clk_power->UPLLCON;
else
hang();

m =((r & 0xFF000)>> 12)+ 8;
p =((r & 0x003F0)>> 4)+ 2;
s = r & 0x3;

#if defined(CONFIG_S3C2440)
if(pllreg == MPLL)
{ //参考S3C2440芯片手册上的公式:PLL=(2 * m * Fin)/(p * 2s)
return((CONFIG_SYS_CLK_FREQ * m * 2)/(p < s));
}
#endif

return((CONFIG_SYS_CLK_FREQ * m)/(p < s));
}

/* return HCLK frequency */
ulong get_HCLK(void)
{
S3C24X0_CLOCK_POWER *const clk_power =S3C24X0_GetBase_CLOCK_POWER();

#if defined(CONFIG_S3C2440)
return(get_FCLK()/4);
#endif

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

好了!修改完毕后我们再重新编译u-boot,然后再下载到RAM中运行测试。结果终端有输出信息并且出现类似Shell的命令行,这说明这一部分移植完成。示意图如下:

现在编译u-boot,在根目录下会生成一个u-boot.bin文件。然后我们利用mini2440原有的supervivi把u-boot.bin下载到RAM中运行测试(注意:我们使用supervivi进行下载时已经对CPU、RAM进行了初始化,所以我们在u-boot中要屏蔽掉对CPU、RAM的初始化),如下:

/*#ifndef CONFIG_SKIP_LOWLEVEL_INIT //在start.S文件中屏蔽u-boot对CPU、RAM的初始化
bl cpu_init_crit
#endif*/

#make my2440_config

#make

下载运行后可以看到开发板上的LED灯第一了亮了,其他三个熄灭,测试结果符合上面的要求。终端运行结果如下:

#gedit cpu/arm920t/start.S

.globl _start
_start: b start_code //将程序的执行跳转到start_code处

#gedit cpu/arm920t/u-boot.lds

OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm")
OUTPUT_ARCH(arm)//定义生成文件的目标平台是arm
ENTRY(_start)//定义程序的入口点是_start

SECTIONS
{
//其他一些代码段、数据段等分配
.= 0x00000000;

.= ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
*(.text)
}
..................
..................
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top