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)

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.

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

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