wawe07 发表于 2011-11-23 14:34:48

UBOOT在6410上的启动过程的疑惑

UBOOT一般都100多K,而6410的stepstone只有8K,UBOOT实现自己搬移到RAM是靠前8K的代码吗,而如果UBOOT只拷贝了部分代码到stepstone也能正常启动?而查看了u-boot.lds其中
.text :
{
cpu/s3c64xx/start.o (.text)         ----4.3K
cpu/s3c64xx/s3c6410/cpu_init.o(.text) ----1.9K
cpu/s3c64xx/onenand_cp.o (.text)       ----1.7K
cpu/s3c64xx/nand_cp.o (.text)         ----4.5K
board/samsung/mini6410/nand_6410.fo   ----6.7K
cpu/s3c64xx/movi.o (.text)            ----5.1K
*(.text)
lib_arm/div0.o
}
前3部分已经7.9K,如果从nandflash启动nand_cp.o中的函数是怎么被调用的?
start.s中调用了copy_uboot_to_ram,而此函数在nand_cp.c中,但是nand_cp.o并不在uboot的前8k中,不知道此处是如何调用的,感觉这块很不理解,哪位高手指点一下啊

7783302 发表于 2011-11-23 15:18:13

看dis好像没有超出,不知道为什么
c7e0013c:        eb000126         bl        c7e005dc <copy_uboot_to_ram>

wawe07 发表于 2011-11-23 17:44:20

自己实验了一下,.o文件大小相加并不是最后生成.bin时的大小,又研究了一下.map,就个人理解应该是按照程序流程下来把要运行的代码依次链接起来,未被调用的代码不会链接进来,但有些代码的位置仍然很迷惑.....

fuhao111 发表于 2011-12-10 12:21:13

我也在进行中,SD卡启动uplooking,但不能格式化。
如下:
#####       Boot for SKY6410/TQ6410 Main Menu        #####

#####   EmbedSky USB download mode   #####


Download u-boot or STEPLDR.nb1 or other bootloader to Nand Flash

Download Eboot (eboot.nb0) to Nand Flash

Download Linux Kernel (zImage.bin) to Nand Flash

Download LOGO Picture (logo.bin) to NandFlash

Download UBIFS image (root.ubi) to Nand Flash

Download YAFFS image (root.bin) to Nand Flash

Download Program to SDRAM and Run it

Boot the system

Format the Nand Flash

Set the boot parameters

Download User Program

Enter TFTP download mode menu

Reboot u-boot

Test Linux Image (zImage)

Enter your selection: 9


NAND format: device 0 whole chip


Really format this NAND flash? <y/n>

y


Erasing at 0x0 --   0omplete.
Erasing at 0x280000 --   1omplete.
Erasing at 0x500000 --   2omplete.
Erasing at 0x7a0000 --   3omplete.
Erasing at 0xa20000 --   4omplete.
Erasing at 0xcc0000 --   5omplete.
Erasing at 0xf40000 --   6omplete.
页: [1]
查看完整版本: UBOOT在6410上的启动过程的疑惑