blob: 243d5ec586f63809eb952834850d703867b90cdd (
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
36
37
38
39
40
41
42
43
44
45
46
47
|
error "rom: requested regions overlap" for NOLOAD sections
command line:
qemu-system-arm -semihosting -nographic -monitor null -serial null -no-reboot -kernel build/fw/0HNFcomSLuP1_CUNIT.elf
output:
rom: requested regions overlap (rom phdr #6: build/fw/0HNFcomSLuP1_CUNIT.elf. free=0x8001effc, addr=0x8001c000)
rom loading failed
I checked the sections of the .elf file with arm-none-eabi-objdump -h:
Sections:
Idx Name Size VMA LMA File off Algn
...
35 .marker_appli 00001000 801ae000 801ae000 00025000 2**0
ALLOC
36 .safe_data 00000014 80200000 8001b000 00020000 2**2
CONTENTS, ALLOC, LOAD, DATA
37 .safe_bss 00000488 80200020 8001b020 00020014 2**2
ALLOC
38 .marker_safe_data 00001000 80201000 8001c000 00029000 2**0
ALLOC
39 .data 000008cc 80202000 8001b600 00022000 2**3
CONTENTS, ALLOC, LOAD, DATA
40 .bss 0000312c 802028d0 8001bed0 000228cc 2**3
ALLOC
41 .marker_data 00001000 80206000 8001f600 00026000 2**0
ALLOC
42 .cunit 00010000 80300000 80119600 00028000 2**0
ALLOC
43 .marker_code 00001000 8001c000 8001c000 00024000 2**0
ALLOC
...
So I had a look where the values in the error message could come from:
0x8001c000: is the "LMA" value of section .marker_safe_data
0x8001effc: is "Size" + "LMA" of the .bss section (0x0000312c + 0x8001bed0)
So it is correct that (regarding the "LMA" value) the .marker_safe_data section collides with .bss section.
But actually these sections have no "LOAD" attribute, so I would guess that their "LMA" should not be used anyway.
Those section should reside at their "VMA" addresses (0x802xxxxx) during runtime but they have no data to load.
Or am I getting something completely wrong?
Should I give an additional option to qemu?
I got this error with 2.0.0+dfsg-2ubuntu1.10 and 1.0.50-2012.03-0ubuntu2.1
I didn't get this error (but others) with 0.10.2
|