Skip to content

Commit

Permalink
GCC: ARM_CM0: Fix L6286E error on Keil MDK (#1131)
Browse files Browse the repository at this point in the history
Change the .b instruction to .bx with higher range to solve error
reported by MDK descibed bellow.

Fix:
Error: L6286E: Relocation #REL:0 in portasm.o(.text.SVC_Handler) with respect to vPortSVCHandler_C. Value(0x1a04) out of range(-0x800 - 0x7fe) for (R_ARM_THM_JUMP11)

Compiler: Keil MDK ARMClang 6.22.0

https://developer.arm.com/documentation/ka002847/latest/
https://developer.arm.com/documentation/dui0496/m/Linker-Errors-and-Warnings/List-of-the-armlink-error-and-warning-messages

Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
  • Loading branch information
TomasGalbickaNXP authored Aug 29, 2024
1 parent 23cfd11 commit e6d8308
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions portable/GCC/ARM_CM0/portasm.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,8 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" ldr r3, =%1 \n"
" cmp r2, r3 \n"
" beq system_call_exit \n"
" b vPortSVCHandler_C \n"
" ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n"
" system_call_enter: \n"
" push {lr} \n"
Expand Down Expand Up @@ -508,11 +509,13 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" \n"
" stacking_used_psp: \n"
" mrs r0, psp \n"
" b vPortSVCHandler_C \n"
" ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n"
" stacking_used_msp: \n"
" mrs r0, msp \n"
" b vPortSVCHandler_C \n"
" ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n"
" .align 4 \n"
);
Expand Down

0 comments on commit e6d8308

Please sign in to comment.