IAR FreeRTOS ARM Cortex A9 project blocks

sorinl wrote on Thursday, March 15, 2018:


I have a blinking_led IAR FreeRTOS project for an ARM Cortex A9 card. The project is based on the
CORTEX_A9_Cyclone_V_SoC_DK FreeRTOS example for DS-5 (built with GCC Toolchain) that works,
that I addapted for IAR.

I 'm stepping with the IAR debugger and some points in the flow are :

prv_TimerTask (in timers.c) -> vTaskStartScheduler (in blink.c application file) ->xPortStartScheduler
(in port.c for ARM A9) -> vPortRestoreTaskContext (in portASM.s).

From here it goes (in the disassebler) to :

0x1: DC8 240
0x2: DC16 58703
0x4: LDR PC, [PC, #0x08]
0x8: LDR PC, [CPC, #0x08]
0xc: LDR PC, [CPC, #0x08]
0x10: LDR PC, [CPC, #0x08]

and then in :

Abort_Handler :
FiQ_Handler :
Prefetch_Handler :
SWI_Handler : symbols not displayed
0x1058db : B Abort_Handler

Here it blocks in the infinite loop (B = Branch instruction to itself.)

I have addapted the assembly language instructions and the definition for the start vector for IAR that are different than in DS-5.
I could not find any ready to run example project for IAR, FreeRTOS and ARM Cortex A9 processor.

Please advise.
Thank you in advance.

rtel wrote on Thursday, March 15, 2018:

None of the vectors in your post show an infinite loop, unless the
functions they jump to are infinite loops.

Is SWI_Handler actually defined, and not just left at its default?
Normally a default is implemented as an infinite loop with the
expectation you define it yourself.

Are you sure you are using the vector table definition that you think
you are? Can you set a break point on the vector table entry you think
you are executing?