■QuestionsI'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 exampleHere 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.
HiMy name is Stephen and I work at Arm.In the first screen shot, it looks like your program was not loaded correctly. The memory appears to contain all zeros (at least for addresses 0x80002874 to 288C). The UDF #0 instruction corresponds to opcode=0x0. Suggest you check the Commands view to check whether the program was loaded into memory correctly.Symbolic information (e.g. function names) are being shown correctly because that example uses add-symbol-file to load symbolic information for EL1N, in addition to loading the program & symbols for EL3.Hope this helpsStephen