我想在u-boot中执行一些操作(加载一个小的固件)。
是否有人知道在DRAM的开始和结束时,u-boot占用多少DRAM,
这样我就可以将我的固件加载到未被u-boot占用的DRAM的未占用区域中?u-boot占用多少DRAM?
1
A
回答
3
U-Boot是可配置的,所以答案取决于你的具体构建。 配置到U-Boot中的命令和功能将确定其实际大小。通常U-Boot是建立在主内存的上半部分,而其余的低内存则适用于任何内存。
在您的主板的配置文件中,CONFIG_SYS_TEXT_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_SYS_TEXT_BASE
+(u-boot.bin的大小)和SDRAM的末尾之间的区域是可用的堆栈区域。
U-Boot也将使用CONFIG_SYS_TEXT_BASE
以下的存储器作为其malloc()
池。该区域的大小由CONFIG_SYS_MALLOC_LEN
定义。
所以CONFIG_SYS_SDRAM_BASE
和
CONFIG_SYS_TEXT_BASE
的记忆 - CONFIG_SYS_MALLOC_LEN
应该可用。
附录
上面的评述适用于被加载并在主存储器中(即,DRAM)执行的U形引导。
某些系统会执行ROM或NOR Flash中的U-Boot,然后U-Boot会将其自身重新定位到RAM。一些(旧?)文档是here。
相关问题
- 1. cpu占用多少太多
- 2. (iphone)UIImage占用多少内存?
- 3. 进程占用了多少核心?
- 4. 查找文本将占用多少行
- 5. DLR的内存占用量是多少?
- 6. 选项卡占用多少空间?
- 7. MySQL:文本占用多少空间?
- 8. 以下占用多少存储空间?
- 9. Vector元素占用多少空间?
- 10. 空值占用多少内存?
- 11. 每个Apache进程占用多少?
- 12. 一般NSPasteboard占用多少内存?
- 13. 减少内存占用
- 14. 通过UBOOT
- 15. 调试uboot
- 16. Ruby on Rails应用程序应占用多少内存?
- 17. 如何检查应用程序占用了多少空间
- 18. iPhone应用程序占用多少内存iPhone 4
- 19. 减少应用程序内存占用
- 20. 该阵列在内存中占用多少字节?
- 21. 视图在Microsoft SQL Server中占用多少空间
- 22. 标签中的字符串会占用多少像素(宽度)?
- 23. 这个字节字符串实际占用多少内存?
- 24. .NET Framework精简版的内存占用量是多少?
- 25. 多少请求Twitter的API我的程序占用
- 26. x64进程可以占用多少内存4GB RAM
- 27. Qt for Android需要占用多少空间?
- 28. 字符串数据类型占用了多少数据?
- 29. java类在内存中占用了多少时间
- 30. 减少Solaris上多个Java进程的内存占用(UNIX)
谢谢锯末。在我的设置中,我有 #define CONFIG_SYS_TEXT_BASE 0xFF600000 这是u-boot所在的NOR地址。 RAM的起始地址是 的#define CONFIG_SYS_DDR_BASE 00000000 我的RAM的大小 的#define CONFIG_SYS_DDR_SIZE 256 你能好心帮我,像你上面提到的计算堆栈区? (U-Boot的将在SDRAM,或BASE + SIZE月底开始它的堆栈。所以CONFIG_SYS_TEXT_BASE U型BOOT.BIN的+(大小)和SDRAM的末端之间的区域是可用的堆栈区) –
*“NOR的地址u-boot驻留在哪里“* - 这仅仅是为了存储,还是在原地执行? RAM从0x0开始,只有256的大小似乎不正确。你的主板上有什么SoC? – sawdust
它是就地执行的。它是一个嵌入式系统,具有小型内存。 SOC是MPC8308 –