U-BOOT源码分析及移植(17)

邂逅黄昏 分享 2021-06-02 下载文档

U-BOOT源码分析及移植

flash_init()的操作就是读取ID号,ID号指明了生产商和设备号,根据这些信息设置size,sector_count,flash_id.以及start[]、protect[]。

12)把视频帧缓冲区设置在bss_end后面。

addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);

size = vfd_setmem (addr);

gd->fb_base = addr;

13)mem_malloc_init (_armboot_start - CFG_MALLOC_LEN);

设置heap区,供malloc使用。下面的变量和函数定义在lib_arm/board.c

malloc可用内存由mem_malloc_start,mem_malloc_end指定。而当前分配的位置则是mem_malloc_brk。

mem_malloc_init负责初始化这三个变量。malloc则通过sbrk函数来使用和管理这片内存。

static ulong mem_malloc_start = 0;

static ulong mem_malloc_end = 0;

static ulong mem_malloc_brk = 0;

static

void mem_malloc_init (ulong dest_addr)

{

mem_malloc_start = dest_addr;

mem_malloc_end = dest_addr + CFG_MALLOC_LEN;

mem_malloc_brk = mem_malloc_start;

memset ((void *) mem_malloc_start, 0,

mem_malloc_end - mem_malloc_start);

}

void *sbrk (ptrdiff_t increment)

{

ulong old = mem_malloc_brk;

ulong new = old + increment;


U-BOOT源码分析及移植(17).doc 将本文的Word文档下载到电脑

下一篇:CSS相关学习内容总结

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx