On 26 August 2016 at 10:02, <f...@gmx.li> wrote: > Hi > I'm trying to run a simple hello world with > qemu-system-tricore -machine tricore_testboard -cpu tc27x -nographic -kernel > Test.elf > The program is compiled with tricore-gcc (HighTec) for ROM target. The > adress range for the code is 0x80000000. > Unfortunately, I got this error message: > > (qemu) QEMU 2.6.94 monitor - type 'help' for more information > (qemu) rom: requested regions overlap (rom phdr #1: Test.elf. > free=0x0000000080000388, addr=0x0000000080000378) > qemu-system-tricore: rom check and register reset failed > > The both addresses are in the starup code containing the following > information > > 0x80000378 0x80000378 0 g __CTOR_LIST__ > 0x8000037c 0x8000037c 0 l __CTOR_LIST__ > 0x80000380 0x80000380 0 l __CTOR_END__ > 0x80000388 0x80000388 0 g __CTOR_END__ > 0x80000388 0x80000388 0 g __DTOR_LIST__ > 0x8000038c 0x8000038c 0 l __DTOR_LIST__ > > > I've already checked the the address ranges specified in tricore_testboard.c > The used code section is defined with > > memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024, > &error_fatal); > memory_region_add_subregion(sysmem, 0x80000000, ext_cram);
This error message isn't related to the QEMU code for defining the tricore board -- it's complaining that your ELF file has two program headers which define overlapping bits of code to be loaded. What does tricore-objdump --all-headers Test.elf say? (I don't know the exact name of the objdump binary for your cross toolchain, so it might be slightly different.) thanks -- PMM