![编译Linux时如何更改内核基地址?](https://linux22.com/image/157945/%E7%BC%96%E8%AF%91Linux%E6%97%B6%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E5%86%85%E6%A0%B8%E5%9F%BA%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我正在开发 RedPitaya FPGA 板,并希望在其上使用非对称多重处理。 CPU0 将运行 Linux,CPU1 将运行 Baremetal 或 freeRTOS。
为此,我需要更改内核加载地址,以便在 CPU1 上运行的应用程序/FreeRTOS 可以访问内存。有谁知道如何更改内核加载地址?
我相信我们需要更改一些配置文件、设备树和 u-boot 加载内核的地址(对此不确定)。我想我可以弄清楚其余的事情,但我很难弄清楚要在内核配置或源中更改哪些内容。
PS:使用 PetaLinux SDK 可以按照以下描述完成适用于 Zynq 设备的 OpenAMP 框架第 17 页。我只需要弄清楚如何在不使用 PetaLinux 的情况下做到这一点。
干杯。瓦加尔·拉希德
答案1
对于我正在使用的董事会 redpitaya,解决方案很简单。您所需要做的就是为用于编译内核的 make 命令提供内核基地址。对于 redpitaya,这可以在 Makefile.x86 uImage traget 中找到(不要相信我的话)。
我创建了一个关于在 RedPitaya 中进行非对称多重处理的视频教程,此步骤可以在此处找到时间