150159413 发表于 2009-11-12 11:46:39

skyeye1.0.0启动uboot1.1.6运行LOAD RAM后卡住不动

编译uboot后,启动skyeye结果如下:

Loaded RAM   ./u-boot.bin
exec file "skyeye"'s format is elf32-i386.
load section .interp: addr = 0x08048134size = 0x00000013.
load section .note.ABI-tag: addr = 0x08048148size = 0x00000020.
load section .hash: addr = 0x08048168size = 0x00002938.
load section .dynsym: addr = 0x0804aaa0size = 0x00006450.
load section .dynstr: addr = 0x08050ef0size = 0x00007089.
load section .gnu.version: addr = 0x08057f7asize = 0x00000c8a.
load section .gnu.version_r: addr = 0x08058c04size = 0x00000050.
load section .rel.dyn: addr = 0x08058c54size = 0x00000058.
load section .rel.plt: addr = 0x08058cacsize = 0x000003e0.
load section .init: addr = 0x0805908csize = 0x00000017.
load section .plt: addr = 0x080590a4size = 0x000007d0.
load section .text: addr = 0x08059880size = 0x0008a27c.
load section .fini: addr = 0x080e3afcsize = 0x0000001a.
load section .rodata: addr = 0x080e3b20size = 0x0001585b.
load section .eh_frame_hdr: addr = 0x080f937csize = 0x0000001c.
load section .eh_frame: addr = 0x080f9398size = 0x0000005c.
load section .ctors: addr = 0x080fa000size = 0x00000008.
load section .dtors: addr = 0x080fa008size = 0x00000008.
load section .jcr: addr = 0x080fa010size = 0x00000004.
load section .dynamic: addr = 0x080fa014size = 0x00000128.
load section .got: addr = 0x080fa13csize = 0x00000014.
load section .got.plt: addr = 0x080fa150size = 0x000001fc.
load section .data: addr = 0x080fa360size = 0x00001844.
not load section .bss: addr = 0x080fbbc0size = 0x0001336c .
not load section .comment: addr = 0x00000000size = 0x000014be .
not load section .debug_aranges: addr = 0x00000000size = 0x00000820 .
not load section .debug_pubnames: addr = 0x00000000size = 0x00004f04 .
not load section .debug_info: addr = 0x00000000size = 0x000b1845 .
not load section .debug_abbrev: addr = 0x00000000size = 0x0000c0ba .
not load section .debug_line: addr = 0x00000000size = 0x00014059 .
not load section .debug_frame: addr = 0x00000000size = 0x00007b9c .
not load section .debug_str: addr = 0x00000000size = 0x0000f710 .
not load section .debug_loc: addr = 0x00000000size = 0x00025274 .
not load section .debug_ranges: addr = 0x00000000size = 0x00002558 .
到这里就不动拉.后面应该有个 start addr is set to XXXX by exec file之类的东西,表示下面执行文件的地址呢,肯定是
skyeye.conf配置问题,如果我改动如下:
mem_bank:map=M,type=RW,addr=0x00000000,size=0x00ffffff,file=./u-boot.bin,boot=yes
就有下面打印:
start addr is set to 0x30005000 by exec file
到这里又不动拉.

skyeye.conf配置如下:
mem_bank:map=M,type=RW,addr=0x00000000,size=0x00ffffff,file=./u-boot.bin,boot=yes
mem_bank:map=M,type=RW,addr=0x20000000,size=0x0003ffff
mem_bank:map=I,type=RW,addr=0x40000000,size=0x00100000
at91rm9200.h如下
#define PHYS_SDRAM 0x20000000
#define PHYS_SDRAM_SIZE            0x3ffff/* 128k, 32 megs */
#define PHYS_FLASH_1                  0x30000000
#define PHYS_FLASH_SIZE               0xffffff /* 32M2 megs main flash */
#define CFG_LOAD_ADDR         0x2005000/* default load address */


使用skyeye1.0.0版本启动uboot1.1.6,主要配置以下地址,IO,FLASH,SDRAM
我的处理器为at91rm9200, 这些是硬件人员告诉我的.
        SDRAM: 0x2XX0 0000-0x2XX3 FFFF /* 128K */
                FLASH:0x3X00 0000-0x3Xff ffff /* 2M */
                                              
                board/config.mk 中TEST_BASE=0x2000 5000

问题如下:
skyeye问题:
   1. mem_bank:map=I,type=RW,addr=0x40000000,size=0x00100000,
                                这个IO的addr与size是怎么确定的?
               2. mem_bank:map=M,type=RW,addr=0x30005000,size=0x00ffffff,file=./u-boot.bin,boot=yes
                  uboot的启动地址addr怎么确定,是FLASH的首地址,还是TEST_BASE的地址(因为第二阶段是在SDRAM中运行的)
                  另外内核的地址和文件系统的addr与size如何确定?
               3. mem_bank:map=M,type=RW,addr=0x20000000,size=0x0003ffff
                  这个是SDRAM的起始地址和大小. 用不用指定一个开始地址为0地址的mem_bank呢?
                  

地址问题:1. .start第一阶段是从而0地址开始的.第二阶段是不是从TEST_BASE地址开始的?
         2.头文件宏定义 CFG_LOAD_ADDR        是不是内核的加载地址.如果我在uboot下使用tftp下载内核的话,使用这个地址.如果不是,那么这个
         地址表示什么?

现在对地址的问题特别迷惑,看拉好多资料也没明白,请大侠帮忙解说下,这些关键的地址是怎么回事,困扰拉好久.多谢多谢!
页: [1]
查看完整版本: skyeye1.0.0启动uboot1.1.6运行LOAD RAM后卡住不动