设为首页 加入收藏

TOP

FL2440的U-Boot在内存中的分布
2014-11-24 08:05:31 来源: 作者: 【 】 浏览:0
Tags:FL2440 U-Boot 内存 分布

然后又将nandflash存储空间的起始0x0位置的到 0X60000 (#define LENGTH_UBOOT 0x60000)拷贝到0x33f80000(TEXT_BASE)。64MB的SDRAM是挂载到NGCS6上的,NGCS6的起始地址是0x30000000,也就是说SDRAM的起始地址是0x30000000,终止地址是0x34000000.因为0x34000000 - 0x33f80000 = 0x80000 是大于u-boot的代码空间0x60000 (即LENGTH_UBOOT),0x80000 - 0x60000 = 0x20000,就是说u-boot上的高地址部分有0x20000的空着。


FL2440的U-Boot在内存中的分布


上面说的‘Steppingstone’中的哪4KB代码拷贝完了自己后并没有立即跳到0x33f80000这个位置去执行,而是接着初始化了SDRAM中的堆栈(这是第二次初始化堆栈了!),怎么初始化的呢?我们看看首先看sp = _TEXT_BASE - CONFIG_SYS_MALLOC_LEN - CONFIG_SYS_GBL_DATA_SIZE /* -(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)因为没有用到所以注释掉,这个u-boot没有用到中断 */ - 12(这个12是leave 3 words for abort-stack)= 0x33f80000 - (0x10000 + 0x4000) - 0x80 - 0xc = 0x33f6bf74(sp 没有设置)。.rodata、.data、.got(这是什么??先放着)、.u_boot_cmd、.bss区是在arch/arm/cpu/arm920t/u-boot.lds中定义的,貌似没有具体值,这些是在u-boot代码段后面,紧贴在0x33fe0000前面。


在start_armboot中有这个数据结构指针:gd = (gd_t*)(_armboot_start - CONFIG_SYS_MALLOC_LEN - sizeof(gd_t)),按上面的分析它在全局数据区(global_data)的顶部,这个指针指向的数据结构global_data如下:


typedef struct global_data {
bd_t *bd;
unsigned long flags;
unsigned long baudrate;
unsigned long have_console; /* serial_init() was called */
unsigned long env_addr; /* Address of Environment struct */
unsigned long env_valid; /* Checksum of Environment valid */
unsigned long fb_base; /* base address of frame buffer */
#ifdef CONFIG_VFD
unsigned char vfd_type; /* display type */
#endif
#ifdef CONFIG_FSL_ESDHC
unsigned long sdhc_clk;
#endif
#if 0
unsigned long cpu_clk; /* CPU clock in Hz! */
unsigned long bus_clk;
phys_size_t ram_size; /* RAM size */
unsigned long reset_status; /* reset status register at boot */
#endif
void **jt; /* jump table */
} gd_t;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ARM FP寄存器及frame pointer介绍 下一篇Linux程序设计之套接字:UDP

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)