|
编译uboot后,启动skyeye结果如下:
Loaded RAM ./u-boot.bin
exec file "skyeye"'s format is elf32-i386.
load section .interp: addr = 0x08048134 size = 0x00000013.
load section .note.ABI-tag: addr = 0x08048148 size = 0x00000020.
load section .hash: addr = 0x08048168 size = 0x00002938.
load section .dynsym: addr = 0x0804aaa0 size = 0x00006450.
load section .dynstr: addr = 0x08050ef0 size = 0x00007089.
load section .gnu.version: addr = 0x08057f7a size = 0x00000c8a.
load section .gnu.version_r: addr = 0x08058c04 size = 0x00000050.
load section .rel.dyn: addr = 0x08058c54 size = 0x00000058.
load section .rel.plt: addr = 0x08058cac size = 0x000003e0.
load section .init: addr = 0x0805908c size = 0x00000017.
load section .plt: addr = 0x080590a4 size = 0x000007d0.
load section .text: addr = 0x08059880 size = 0x0008a27c.
load section .fini: addr = 0x080e3afc size = 0x0000001a.
load section .rodata: addr = 0x080e3b20 size = 0x0001585b.
load section .eh_frame_hdr: addr = 0x080f937c size = 0x0000001c.
load section .eh_frame: addr = 0x080f9398 size = 0x0000005c.
load section .ctors: addr = 0x080fa000 size = 0x00000008.
load section .dtors: addr = 0x080fa008 size = 0x00000008.
load section .jcr: addr = 0x080fa010 size = 0x00000004.
load section .dynamic: addr = 0x080fa014 size = 0x00000128.
load section .got: addr = 0x080fa13c size = 0x00000014.
load section .got.plt: addr = 0x080fa150 size = 0x000001fc.
load section .data: addr = 0x080fa360 size = 0x00001844.
not load section .bss: addr = 0x080fbbc0 size = 0x0001336c .
not load section .comment: addr = 0x00000000 size = 0x000014be .
not load section .debug_aranges: addr = 0x00000000 size = 0x00000820 .
not load section .debug_pubnames: addr = 0x00000000 size = 0x00004f04 .
not load section .debug_info: addr = 0x00000000 size = 0x000b1845 .
not load section .debug_abbrev: addr = 0x00000000 size = 0x0000c0ba .
not load section .debug_line: addr = 0x00000000 size = 0x00014059 .
not load section .debug_frame: addr = 0x00000000 size = 0x00007b9c .
not load section .debug_str: addr = 0x00000000 size = 0x0000f710 .
not load section .debug_loc: addr = 0x00000000 size = 0x00025274 .
not load section .debug_ranges: addr = 0x00000000 size = 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下载内核的话,使用这个地址.如果不是,那么这个
地址表示什么?
现在对地址的问题特别迷惑,看拉好多资料也没明白,请大侠帮忙解说下,这些关键的地址是怎么回事,困扰拉好久.多谢多谢! |
|