Memory u-boot占用多少内存?

Memory u-boot占用多少内存?,memory,embedded-linux,ram,u-boot,Memory,Embedded Linux,Ram,U Boot,我想在u-boot中执行一些操作(加载一个小固件)。 有人知道u-boot在DRAM开始和结束时占用了多少DRAM吗, 因此,我可以在u-boot未占用的DRAM未占用区域加载固件?u-boot是可配置的,因此答案取决于您的具体构建。 U-Boot中配置的命令和功能将决定其实际大小。通常,U-Boot构建为驻留/执行在主内存的上部,而低内存的其余部分可用于任何用途 在主板的配置文件中,config\U SYS\U TEXT\U BASE的定义设置U-Boot的起始地址。(较旧版本的U-Boot使

我想在u-boot中执行一些操作(加载一个小固件)。
有人知道u-boot在DRAM开始和结束时占用了多少DRAM吗,

因此,我可以在u-boot未占用的DRAM未占用区域加载固件?

u-boot是可配置的,因此答案取决于您的具体构建。 U-Boot中配置的命令和功能将决定其实际大小。通常,U-Boot构建为驻留/执行在主内存的上部,而低内存的其余部分可用于任何用途

在主板的配置文件中,
config\U SYS\U TEXT\U BASE
的定义设置U-Boot的起始地址。(较旧版本的U-Boot使用不同的方法指定此起始地址符号。)

检查生成的
System.map
文件(与
u-boot.bin
可执行文件位于同一目录中),查找链接器分配给每个入口点的地址

在董事会的配置文件中,还有如下内容:

#define CONFIG_SYS_SDRAM_BASE       ATMEL_BASE_CS6
#define CONFIG_SYS_SDRAM_SIZE       0x08000000
定义主存的物理地址范围

U-Boot将在SDRAM或BASE+SIZE的末尾启动堆栈。 因此,
CONFIG\u SYS\u TEXT\u BASE
+(大小为u-boot.bin)和SDRAM末尾之间的区域就是可用堆栈区域

U-Boot还将使用
CONFIG\U SYS\U TEXT\U BASE下方的内存作为其
malloc()
池。该区域的大小由
CONFIG\u SYS\u MALLOC\u LEN
定义

因此
CONFIG\u SYS\u SDRAM\u BASE

CONFIG\u SYS\u TEXT\u BASE
-
CONFIG\u SYS\u MALLOC\u LEN
应可用

附录

上述注释适用于在主内存(即DRAM)中加载和执行的U-Boot。

一些系统使用ROM或NOR闪存执行U-Boot,然后U-Boot将自身重新定位到RAM。一些(旧的?)文档是。

谢谢锯末。在我的设置中,我有#define CONFIG_SYS_TEXT_BASE 0xFF600000,这是u-boot所在的NOR地址。RAM的起始地址是#define CONFIG\u SYS\u DDR\u BASE 0x00000000。我的RAM的大小是#define CONFIG\u SYS\u DDR\u size 256。你能帮我计算一下上面提到的烟囱面积吗?(U-Boot将在SDRAM的末尾或BASE+大小处启动其堆栈。因此,CONFIG_SYS_TEXT_BASE+(U-Boot.bin的大小)和SDRAM的末尾之间的区域是可用的堆栈区域)“U-Boot所在的NOR地址”-这只是用于存储还是就地执行?从0x0开始且大小仅为256的RAM似乎不正确。你的板上有什么SoC?执行到位。它是一个具有小型ram的嵌入式系统。Soc是mpc8308sawdust,我在哪里可以获得您共享的所有上述信息?我想阅读并了解它。我描述的大部分内容都来自于检查代码。请注意答案的附录。你的主板有256字节还是256 MB的RAM?抱歉,我不熟悉如何配置U-Boot在NOR或ROM之外执行。