Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


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

If the program size is large, it cannot be linked normally (Cortex-A55)

■Questions
I'm trying to bare-metal debug on a Cortex-A55.
I want to perform simple memory read/write, but if the program size becomes large enough, the program hangs up. When I connected the DS-5 and checked the operation, I found that the branch instruction to a certain function was undefined. Why is this happening?

■ Disassembled code example
Here is a disassembled code example. Here is an example where I want to call a function called accesss_test2().

As shown below, the program branch destination is undefined. Stepping through this instruction hangs up.

If I remove a few lines of source code, accesss_test2() is called without issue. Even if you refer to the disassembled code, the branch instruction is inserted correctly.

■ Conditions
The only difference in the C source code between when the accesss_test2() function can be correctly branched and when it can't is whether or not there are a few lines of simple memory read/write processing within the accesss_test2() function. The whole function is less than 120 lines.

・The build environment uses the following project stored in the installation directory of DS-5 v5.29.3.
   startup_Cortex-A55_Cortex-A75

・Compiler is "Arm Compiler 6 (DS-5 built-in)".

・scatter.scat and startup.S are not edited.