红联Linux门户
Linux帮助

linux内核启动过程的几个地址问题

发布时间:2007-12-07 00:30:54来源:红联作者:vdnuiv
问题1:我查了网上说TEXT=0xC0008000是内核启动的虚拟地址,想问下在这里虚拟地址的概念是什么?虚拟地址是啥样的啊,为什么给出的是这个TEXT=0xC0008000啊?虚拟地址的设置和芯片有关吗?

问题2:
ZTEXTADDR和ZRELADDR 这两个是偏移地址 吗?我看我用的s3c2410的这里makefile定义的是 ZTEXTADDR =0x30008000
ZRELADDR = 0x30008000 好像不是虚拟地址的概念啊,应该是自解压代码的起始地址和内核解压后代码输出起始地址啊,可是为什么我从网上查的都说这两个是偏移地址呢

问题3:
还有,网上查的说“如果需要从flash中启动还需要设置 ZTEXTADDR地址。”是什么意思啊,是指存放内核压缩文件在FLASH中中吗,那个和ZTEXTADDR地址为什么需要对应呢,因为我看指定的ZTEXTADDR就是SDRAM的地址啊

答复:
根据自己的电路设置TEXT变量。
ZRELADDR决定内核解压后数据输出的地址。
ZTEXTADDR为bootloader的压缩内核文件烧入flash的起始地址,即从哪个位置开始执行bootloader,若启动时直接运行,则将其设为0;若自带bios可以跳到想要的地址,则可改为所要的位置。要根据自己的电路设置ZTEXTADDR和ZRELADDR变量。
文章评论

共有 0 条评论