原本想买个openjtag可以单步调试uboot,买了之后才发现原来这个这个东西也必须跳过底层初始化,也就是lowleve_init.最后自己想了想还是算了,还是采用传统的方法,在SD卡里面装一个官方的uboot,然后再用DNW下载,至于DNW在win7上的使用,用官方自带肯定不行了,要自己在网上下载一个,google一下,dnw for win7第一个就是的了。http://code.google.com/p/s3c6410kits/downloads/detail?name=dnw-for-win7.rar&can=2&q=。这个方法要是不懂怎么操作,那我就没有办法了。
,首先要确保你在电脑上编译的uboot的可以在板子上可以跑,那就点个灯吧,修改前面:
/* LED on only #8 */ ldr r0, =ELFIN_GPIO_BASE ldr r1, =0xffff1111 str r1, [r0, #GPMCON_OFFSET] ldr r1, =0x55555555 str r1, [r0, #GPMPUD_OFFSET] ldr r1, =0xf00e str r1, [r0, #GPMDAT_OFFSET]
. = ALIGN(4); .text : { arch/arm/cpu/arm1176/start.o (.text) board/samsung/smdk6410/libsmdk6410.o (.text) *(.text) }修改arch/arm/cpu/u-boot.lds
.text : { __image_copy_start = .; CPUDIR/start.o (.text) board/samsung/smdk6410/libsmdk6410.o (.text) *(.text) }
57e000b0 <mmu_disable_phys>: 57e000b0: e3a00207 mov r0, #1879048192 ; 0x70000000 57e000b4: e3800013 orr r0, r0, #19 57e000b8: ee0f0f92 mcr 15, 0, r0, cr15, cr2, {4} 57e000bc: eb0000f0 bl 57e00484 <lowlevel_init>57e00484-57e00000=484;
(484)1156/1024 < 8K
这说明我现在已经把lowleve_init放到了,8k以内的位置,板子上电以后CPU硬件自动把NAND FLASH的前8K复制到CPU的内部一个位置,具体的怎么叫我忘了,然后通过DNW下载到板子上,发现第一个灯神奇的亮了。