Hi all
    If I already have an emulator, all instructions have been carried out.
In order to reuse these codes on the other simulation platforms, as Simics,
QEMU, SystemC. So, I want to
skip over QEMU's TCG(guest binary-->IR-->host binary). Just let QEMU
controll the cpu's execution and the cpu access QEMU's memory system. Just
Load-elf, fetch and load/store operations need to access memory.  QEMU uses
target_mmap() to allocate the memory and map the ELF into the memory. But
my ELF is very special:
  type              offset               vaddr                 filesize
 PT_LOAD   0x0002f4         0x88000000          0x0016a
 PT_LOAD   0x00045e        0x88000180         0x00006
 PT_LOAD   0x000468        0x88000200         0x00006
ps =  0x88000000 & ~(unsigned long)((1 << 12)-1)) =  0x88000000
po =  0x88000000 &  ((1 << 12)-1) = 0   offset - po is not zero, so the
offset is not multiple of the page size, program error. How can this ELF
map into the virtual page?
    After allocating and loading the elf, target-arm uses ldl_code() to
fetch the instruction from the corresponding memory address. My instruction
is very long, it has 128 bytes.
How can QEMU write one byte into the memory?  And I can't see the
load/store instructions's how to read data from memory or write to the
memory. I have tried the stub_raw(), but it has the error message:
segmentation fault.Are there other methods that allocate the memory space
and writes (or read) one bytes into the memory.  Thank you!

best wishes!

Tim Lee(liqijun)

Reply via email to