Hello World error - "Simulation code-translation cache failed to gain DMI"

Hi, 

I started using Development Studio. I created a Hello World, and compiled it. Than I created a launch configuration, just very simple per this tutorial:
https://developer.arm.com/tools-and-software/embedded/legacy-tools/ds-5-development-studio/resources/tutorials/debugging-hello-world-in-c-on-a-fixed-virtual-platform-fvp

However, I get a warnings "Simulation code-translation cache failed to gain DMI":

terminal_0: Listening for serial connection on port 5000
terminal_1: Listening for serial connection on port 5001
terminal_2: Listening for serial connection on port 5002
terminal_3: Listening for serial connection on port 5003
CADI server started listening to port 7000

Info: FVP_VE_Cortex_A9x1: CADI Debug Server started for ARM Models...
cadi server is reported on port 7000
ARM Core Model: WARNING - Simulation code-translation cache failed to gain DMI for PC=0x0000801c. Simulation performance will be reduced.
ARM Core Model: WARNING - Simulation code-translation cache failed to gain DMI for PC=0x0000801c (PA = s_-0000801c. Simulation performance will be reduced.

After this everything just stands still at first line of main(), and whatever I try - nothing happens. I can't F8 Continue, nor Step, etc. 

All windows are also empty, like Disassembly, etc. 

What could be wrong? 

I also first tried to do my own more complicated app, but I got completely the same behavior. That's why I went back to simple HelloWorld, but it didn't help.  

The Command windows shows this: 

Connected to stopped target Arm FVP (Installed with Arm DS) - VE_Cortex_A9x1
cd "C:\Users\D\Development Studio Workspace"
Working directory "C:\Users\D\Development Studio Workspace"
loadfile "C:\Users\D\Development Studio Workspace\t3\Debug\t3.axf"
Execution stopped in SVC mode at S:0x00000000
S:0x00000000 DCI 0xe7ff0010 ; ? Undefined
Loaded section ER_RO: S:0x00008000 ~ S:0x000092E7 (size 0x12E8)
Loaded section ER_RW: S:0x000092E8 ~ S:0x000092F7 (size 0x10)
Entry point S:0x00008000
Semihosting server socket created at port 8000
Semihosting enabled automatically due to semihosting symbol detected in image 't3.axf'
set debug-from main
start
Starting target with image C:\Users\Danijel\Development Studio Workspace\t3\Debug\t3.axf
Running from entry point
wait

Parents
  • Hi Danijel

    From this line:
    Loaded section ER_RO: S:0x00008000 ~ S:0x000092E7 (size 0x12E8)

    it appears that your image has been built to run from address 0x8000, but the Cortex-A9 FVP model does not have any RAM at that address.
    I suggest you change that to 0x80000000, where there is RAM modelled.
    You can do that with the Arm Compilation tools with the armlink option "--ro-base=0x80000000".

    The tutorial to which you refer is an old one for DS-5.  This is the latest for Arm DS:
    developer.arm.com/.../Tutorial--Hello-World
    This also shows, in "Configure your project" how to set 0x80000000 as the RO base address field in the GUI configurer.

    If your code still hangs before reaching the breakpoint on main, I suggest you set "Debug from entry point" rather than "Debug from symbol = main".  Then you will be able to set though the code to see where it is failing in the C library startup code.

    The warning "ARM Core Model: WARNING - Simulation code-translation cache failed to gain DMI for PC=0x0000801c (PA = s_-0000801c. Simulation performance will be reduced." can be safely ignored for the purpose of your example.

    Hope this helps

    Stephen

Reply
  • Hi Danijel

    From this line:
    Loaded section ER_RO: S:0x00008000 ~ S:0x000092E7 (size 0x12E8)

    it appears that your image has been built to run from address 0x8000, but the Cortex-A9 FVP model does not have any RAM at that address.
    I suggest you change that to 0x80000000, where there is RAM modelled.
    You can do that with the Arm Compilation tools with the armlink option "--ro-base=0x80000000".

    The tutorial to which you refer is an old one for DS-5.  This is the latest for Arm DS:
    developer.arm.com/.../Tutorial--Hello-World
    This also shows, in "Configure your project" how to set 0x80000000 as the RO base address field in the GUI configurer.

    If your code still hangs before reaching the breakpoint on main, I suggest you set "Debug from entry point" rather than "Debug from symbol = main".  Then you will be able to set though the code to see where it is failing in the C library startup code.

    The warning "ARM Core Model: WARNING - Simulation code-translation cache failed to gain DMI for PC=0x0000801c (PA = s_-0000801c. Simulation performance will be reduced." can be safely ignored for the purpose of your example.

    Hope this helps

    Stephen

Children
No data
More questions in this forum