我正在制作自己的Linux发行版。开发进展顺利但是我发现很难理解内核加载地址和入口点之间的区别。
为了通过uBoot加载内核,我认为内核加载的内存地址总是与执行(启动)内核的条目(起始点)时的内容相同
但我猜这是因为这些是两个分开的值,并不总是必须相同,所以有理由将它们分开。
有人可以向我解释这两者之间的区别吗?
答案 0 :(得分:4)
加载地址是要复制内核二进制映像的RAM位置。 入口点是由uboot执行的复制二进制文件的位置,用于引导内核。
如果RAM映射为80000000且内核LOAD ADDRESS为80008000。 bootm命令将uImage从复制的映像位置解压缩到80008000地址,然后调用内核入口点(可能是相同的地址:80008000)来执行内核。