This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Does DS-5 ultimate evaluation version offer an FVP to ARMv8 executable?

I have compiled a simple "Hello World" program on DS-5 ultimate evaluation version and couldn't find a bare metal FVP on which I can run it. When I select "ARM FVP->VE_AEMv8x1->Bare Metal Debug->Debug ARMAEMv8-A" in "Connection" tab of "Debug Configuration" connection fails and I see a message that "Unable to connect to armv8_FVP"

Parents
  • I got following reply from Ash Wilding - Applications Engineer through support-sw@arm.com that solved my problem.

    Hello Ashwani,

    This is because your Hello World program is being loaded into an invalid location. By default, programs are loaded to location 0x0000_0000. Consult the following memory map: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0834a/rob1395750469013.html

    As you can see, address 0x0000_0000 is the location of the Trusted Boot ROM / secureflash, so you definitely don't want to be loading your program here. Instead, you want to load the program at the location of DRAM, which is address 0x8000_0000 according to the memory map.

    To do this, first right-click your project in DS-5 and then navigate to Properties > C/C++ Build > Settings > ARM Linker 6 > Image Layout.

    In the "RO base address (--ro_base)" field, enter the following: 0x80000000

    Click "OK", rebuild your project, and attempt to run it again. This time you should see "Hello world" printed in the Target Console window.

    This method does not give you much control. More realistic projects instead use scatter files, passing these to the ARM Linker using the "--scatter=scatter.txt" option. For more information regarding scatter files, see this ARM Infocenter link: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0493h/BABFJEAI.html

    Also, be sure to check the ARMv8 Bare Metal examples provided with DS-5 as these include complete scatter files for the model.

    I hope this helps.

    Regards,

    Ash.

    --

    Ash Wilding - Applications Engineer

    ARM Ltd, 110 Fulbourn Road, Cambridge CB1 9NJ, England

Reply
  • I got following reply from Ash Wilding - Applications Engineer through support-sw@arm.com that solved my problem.

    Hello Ashwani,

    This is because your Hello World program is being loaded into an invalid location. By default, programs are loaded to location 0x0000_0000. Consult the following memory map: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0834a/rob1395750469013.html

    As you can see, address 0x0000_0000 is the location of the Trusted Boot ROM / secureflash, so you definitely don't want to be loading your program here. Instead, you want to load the program at the location of DRAM, which is address 0x8000_0000 according to the memory map.

    To do this, first right-click your project in DS-5 and then navigate to Properties > C/C++ Build > Settings > ARM Linker 6 > Image Layout.

    In the "RO base address (--ro_base)" field, enter the following: 0x80000000

    Click "OK", rebuild your project, and attempt to run it again. This time you should see "Hello world" printed in the Target Console window.

    This method does not give you much control. More realistic projects instead use scatter files, passing these to the ARM Linker using the "--scatter=scatter.txt" option. For more information regarding scatter files, see this ARM Infocenter link: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0493h/BABFJEAI.html

    Also, be sure to check the ARMv8 Bare Metal examples provided with DS-5 as these include complete scatter files for the model.

    I hope this helps.

    Regards,

    Ash.

    --

    Ash Wilding - Applications Engineer

    ARM Ltd, 110 Fulbourn Road, Cambridge CB1 9NJ, England

Children
No data