- 论坛徽章:
- 13
|
小弟自己编译u-boot-2011.09版本, 原始版本里有smdk6400没有smdk6410版本。 小弟自己想自己建一个smdk6410版本,我就按照smdk6400版本山寨了一个smdk6410版本, 不知道为什么编译lowlevel_init.S文件出问题, 但是编译smdk6400版本就没有问题,还望大哥们帮忙解答一下。小弟先谢过了。
arm-linux-gcc: gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70)
班机是suse 11.04版本
arm-linux-gcc -D__ASSEMBLY__ -g -Os -fno-common -ffixed-r8 -msoft-float -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x57e00000 -I/home/coco/kernel/source/u-boot-2011.09/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/include -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5t -march=armv5t -o lowlevel_init.o lowlevel_init.S -c
lowlevel_init.S: Assembler messages:
lowlevel_init.S:219: Error: constant expression expected -- `ldr r1,=((1<<31)|(STARTUP_AMDIV<<16)|(STARTUP_PDIV<<|STARTUP_SDIV)'
lowlevel_init.S:221: Error: constant expression expected -- `ldr r1,=((1<<31)|(STARTUP_MDIV<<16)|(STARTUP_PDIV<<|STARTUP_SDIV)'
make[1]: *** [lowlevel_init.o] Error 1
make[1]: Leaving directory `/home/coco/kernel/source/u-boot-2011.09/board/samsung/smdk6410'
make: *** [board/samsung/smdk6410/libsmdk6410.o] Error 2
/u-boot-2011.09/board/samsung/smdk6410/lowlevel_init.S 出错的地方
/* Set Clock Divider */
ldr r1, [r0, #CLK_DIV0_OFFSET]
bic r1, r1, #0x30000
bic r1, r1, #0xff00
bic r1, r1, #0xff
ldr r2, =CLK_DIV_VAL
orr r1, r1, r2
str r1, [r0, #CLK_DIV0_OFFSET]
ldr r1, =APLL_VAL
str r1, [r0, #APLL_CON_OFFSET]
ldr r1, =MPLL_VAL
str r1, [r0, #MPLL_CON_OFFSET]
/* FOUT of EPLL is 96MHz */
ldr r1, =0x80200203
str r1, [r0, #EPLL_CON0_OFFSET]
ldr r1, =0x0
str r1, [r0, #EPLL_CON1_OFFSET]
以下是APLL_VAL和MPLL_VAL 定义
#if defined(CONFIG_SYNC_MODE)
#define APLL_VAL ((1 << 31) | (STARTUP_MDIV << 16) | \
(STARTUP_PDIV << | STARTUP_SDIV)
#define STARTUP_APLL (((CONFIG_SYS_CLK_FREQ >> STARTUP_SDIV) / \
STARTUP_PDIV) * STARTUP_MDIV)
#define STARTUP_HCLK (STARTUP_MPLL / (STARTUP_HCLKX2DIV + 1) / \
(STARTUP_HCLKDIV + 1))
#else
#define APLL_VAL ((1 << 31) | (STARTUP_AMDIV << 16) | \
(STARTUP_PDIV << | STARTUP_SDIV)
#define STARTUP_APLL (((CONFIG_SYS_CLK_FREQ >> STARTUP_SDIV) / \
STARTUP_PDIV) * STARTUP_AMDIV)
#define STARTUP_HCLK (STARTUP_MPLL / (STARTUP_HCLKX2DIV + 1) / \
(STARTUP_HCLKDIV + 1))
#endif
|
|