基于U-BOOT-2010.09移植OK6410开发版记录(二)

点亮LED灯

修改完UBOOT对于6410的配置文件后,就可以正式开始移植工作了。S3C6410这块SOC出了这么久,我想BL1阶段应该区别不大,就先在BL1中点亮LED灯练练手吧。不过实际移植过程中却走了很多弯路… OK6410的1.1.6版UBOOT编译出来只有uboot.bin这一个文件,但我在2010的版本修改完后烧录uboot.bin这个文件却始终不正常…

仔细研究了下发现2010的uboot版本采用了一种新的启动方式,会直接生成一个4KB大小启动文件专门用于BL1启动,BL1完成后再把剩下的BL2数据从NAND复制到RAM,从而BL2就不用再执行一道初始化了。所以应当烧录u-boot-spl.bin这个由4KB的BL1启动文件和剩下的BL2的uboot.bin合并生成的文件。


修改nand_spl对应Makefile

在nand_spl/board/samsung/smdk6410/Makefile中
@ln -s $(TOPDIR)/board/samsung/smdk6400/lowlevel_init.S $@
修改为
@ln -s $(TOPDIR)/board/samsung/smdk6410/lowlevel_init.S $@
创建对应的6410初始化链接文件。


$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(PAD_TO) -O binary $< $@
修改为
$(OBJCOPY) ${OBJCFLAGS} --pad-to=4096 -O binary $< $@
可能是编译器的问题,我的Makefile脚本中的本应赋值为4096的PAD_TO变量未能自动赋值,这样会导致BL1结束后的搬移出现问题,只能手动设置为4096了。


nand_spl/board/samsung/smdk6410/Makefile中有一句
CONFIG_NAND_SPL = y
用于控制BL1级阶段的启动代码,在start.S中有许多#ifdef CONFIG_NAND_SPL包含起的代码用于生成u-boot-spl-16k.bin文件

修改nand_spl对应lowlevel_init.c

nand_spl/board/samsung/smdk6410/lowlevel_init.S中
修改LED亮灯代码为

ldr r0, =ELFIN_GPIO_BASE  
str r1, [r0, #GPMCON_OFFSET]
ldr r1, =0x00000555
str r1, [r0, #GPMPUD_OFFSET]
ldr r1, =0xa
str r1, [r0, #GPMDAT_OFFSET]

完成后重新编译,将u-boot-spl.bin文件烧录到开发版中,重启后即可看到LED已亮了起来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值