文件名称:u-boot的段分布.vsdx
文件大小:33KB
文件格式:VSDX
更新时间:2023-10-05 17:04:21
u-boot
其实.__rel_dyn_start段主要是u-boot拷贝自己的时候使用,参考u-boot源码可以发现,u-boot拷贝自己之前,基本上都是汇编语句,即使是调用了C函数也没有使用.bss段内的全局变量,唯一的全局结构体gd(也可能不是唯一的)的地址也是存放在r9寄存器中,所以拷贝之前是用不到.bss段的,但是要用.__rel_dyn_start段,而拷贝之后用不到.__rel_dyn_start段,但是要用.bss段,所以为了节省内存,这两个段是可以重合的。另外拷贝的目的地址处,我们已经为.bss段留出了空间,.bss段是和整个u-boot镜像一起的,gd结构体的mon_len成员(= __