Linker QEMU内存分配低于0x40000000

Linker QEMU内存分配低于0x40000000,linker,gdb,qemu,Linker,Gdb,Qemu,我试图将我的项目链接到一个定制的嵌入式系统,其中有一个RAM芯片 安装在地址0x20000000处 我更改了我的链接器文件,将数据指向此区域,并按照映射文件中的验证正确编译和映射数据 但是,当我将gdb连接到QEMU并尝试加载可执行文件时,它给出了一个错误 似乎QEMU正在保护0x40000000以下的区域,因为它认为0x40000000以下的区域可能被某些内核使用 如果我将地址更改为0x4XXX_XXXX以上,我的RAM将正常工作 怎么办 似乎QEMU正在保护0x40000000以下的区域 下

我试图将我的项目链接到一个定制的嵌入式系统,其中有一个RAM芯片 安装在地址0x20000000处

我更改了我的链接器文件,将数据指向此区域,并按照映射文件中的验证正确编译和映射数据

但是,当我将gdb连接到QEMU并尝试加载可执行文件时,它给出了一个错误

似乎QEMU正在保护0x40000000以下的区域,因为它认为0x40000000以下的区域可能被某些内核使用

如果我将地址更改为0x4XXX_XXXX以上,我的RAM将正常工作

怎么办

似乎QEMU正在保护0x40000000以下的区域 下面的思考区域可能被某些内核使用

softmmu QEMU中的初始机器状态通常不取决于来宾代码。但是您使用的机器型号可能没有0x20000000的物理内存。 您可以使用gdb monitor info mtree命令检查这一点

怎么办

您可以将自定义嵌入式系统的模型添加到QEMU中,并将物理内存设置为0x20000000