Issue
I am trying to link my project for a custom embedded system where a RAM chip is mounted at address 0x20000000.
I am changed my linker file to point data to this area and it compiles and maps the data properly as verified in map file.
But when I connect gdb to QEMU and try to load the executable it gives an error.
It seems as if, QEMU is protecting area below 0x40000000 as it is thinking area below this maybe used by some kernel?
If I change the address above 0x4XXX_XXXX for my RAM things work.
How to go about it?
Solution
It seems as if, QEMU is protecting area below 0x40000000 as it is thinking area below this maybe used by some kernel?
Initial machine state in softmmu QEMU normally does not depend on the guest code. But the machine model that you use may not have physical memory at 0x20000000.
You can check that using gdb monitor info mtree
command.
How to go about it?
You can add a model of your custom embedded system to QEMU and place physical memory at 0x20000000.
Answered By - jcmvbkbc
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.