blob: 1a4b85f757d3f0be0bfd66fbbecd25c9eb80c9de (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
graphic: 0.827
performance: 0.781
device: 0.764
files: 0.709
permissions: 0.705
network: 0.638
PID: 0.627
socket: 0.614
semantic: 0.530
other: 0.484
vnc: 0.474
boot: 0.394
KVM: 0.293
debug: 0.179
qemu-arm fails to execute a cortex-M binary (page_set_flags: Assertion 'last <= GUEST_ADDR_MAX' failed.)
Description of problem:
I've noticed that qemu-arm (so linux-user mode) fails to execute a binary targeting cortex-M. This used to work until commit
"Make the commpage executable".
Steps to reproduce:
1. Compile a simple hello.c for arm-eabi. If you don't have such a toolchain, you can download one from https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads For instance https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz (for an x86_64 linux host)
2.# compile for cortex-m3:
3. arm-none-eabi-gcc hello.c -o hello.exe.m3 -mcpu=cortex-m3 -specs=rdimon.specs
4.qemu-arm -cpu cortex-m3 hello.exe.m3
.....user-exec.c:492: page_set_flags: Assertion 'last <= GUEST_ADDR_MAX' failed.
5. # compile for cortex-a9:
6. arm-none-eabi-gcc hello.c -o hello.exe.a9 -mcpu=cortex-a9 -specs=rdimon.specs
7. qemu-arm -cpu cortex-a9 hello.exe.a9
Hello
|