嵌入式linux内核启动地址有些疑问?

发布于 2022-09-28 07:28:08 字数 758 浏览 16 评论 0

我的开发板是ixp425芯片,flash 16MB,sdram 128MB

kernel/arch/arm/Makefile中的TEXTADDR定义为:

ifeq ($(CONFIG_CPU_32),y)
PROCESSOR        = armv
TEXTADDR         = 0xc0000000
LDSCRIPT         = arch/arm/vmlinux-armv.lds.in
endif

kernel/arch/arm/boot/Makefile中定义的内核地址为:

ifeq ($(CONFIG_ARCH_IXP425),y)
ZTEXTADDR       = 0x1d600000
ZRELADDR        = 0x00008000
PARAMS_PHYS     = 0x00002000
endif

我每次启动时,内核zImage放在0x11600000处,ramdisk放在0x10800000处启动,但是一直没有明白,这两个地址是怎么算出来的,换一个别的地址可以正常运行吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

划一舟意中人 2022-10-05 07:28:08

帮顶
求高人指点一二

无畏 2022-10-05 07:28:08

自己再顶,高手告知一二

宫墨修音 2022-10-05 07:28:08

这个地址好像是在mtd\maps下的相应的flash驱动中指定的,这个地址可以改,但好像还要对blkmem.c中也要作些修改,比较麻烦.

找回味觉 2022-10-05 07:28:08

我不知道我的理解对不对

对于你的ixp425,你的内核解压缩程序放在物理地址ZTEXTADDR = 0x1d600000 处,然后这个解压缩小程序把你放在物理地址0x11600000处的zImage解压缩到物理地址ZRELADDR = 0x00008000处,也就是虚拟地址TEXTADDR = 0xc0000000处,你的ramdisk放在物理地址0x10800000处,而param_struct结构或者tag list当然在物理地址PARAMS_PHYS= 0x00002000处

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文