【分享】增加UBoot的malloc分配的內存大小


UBoot作為boot loader,默認留給malloc分配的內存的大小有限。這個大小由宏TOTAL_MALLOC_LEN定義。它在include\Common.h文件里,從宏CONFIG_SYS_MALLOC_LEN派生出來。

初始化過程中,從board\xilinx\zynqmp\Board_r.c的initr_malloc( )開始,調用common\Dlmalloc.c中的mem_malloc_init( ),初始化了三個全局變量:mem_malloc_start,mem_malloc_end, mem_malloc_brk。
分配內存時,sbrk()分配內存,並增加mem_malloc_brk的值;如果mem_malloc_brk超出范圍,就報告錯誤。
因此,增大CONFIG_SYS_MALLOC_LEN的值,可以增加增加UBoot的malloc分配的內存大小。

另外malloc_simple.c里的alloc_simple是UBoot在沒有搬運之前,簡單的malloc的實現。其中,gd->malloc_base是可用內存的開始地址, gd->malloc_ptr是當前可用的memory地址, gd->malloc_limit是可用內存的結束地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM