uboot.bin board_init_f()的作用以及uboot对内存的分配



/*u-boot.bin
board.c  ---> board_init_f()函数的作用
1、计算 addr 即 board_init_r(gd_t *id, ulong dest_addr)的第二个参数;
addr = CONFIG_SYS_SDRAM_BASE + gd->ram_size; (gd->ram_size在smart210.c中被初始化)
这个参数的用处是: 计算堆的起始地址,初始化堆
malloc_start = dest_addr - TOTAL_MALLOC_LEN;
mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);


如果定义了CONFIG_LOGBUFFER
则 addr -= LOGBUFF_RESERVE


如果定义了CONFIG_PRAM
则 addr -= reserve protected RAM


如果没有关闭I-cache和D-cache
则还要预留 TLB table空间


addr &= ~(4096 - 1);
使内存空间4K对齐


如果定义了CONFIG_LCD
则给framebuffer赋值


还要给uboot代码、数据、BSS预留空间
所以 addr -= gd->mon_len;

*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值