GCC: ARM_CM0: Fix L6286E error on Keil MDK (#1131)

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>
pull/1132/head
Tomas Galbicka 5 months ago committed by GitHub
parent 23cfd114d3
commit e6d8308fde
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -472,7 +472,8 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" ldr r3, =%1 \n" " ldr r3, =%1 \n"
" cmp r2, r3 \n" " cmp r2, r3 \n"
" beq system_call_exit \n" " beq system_call_exit \n"
" b vPortSVCHandler_C \n" " ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n" " \n"
" system_call_enter: \n" " system_call_enter: \n"
" push {lr} \n" " push {lr} \n"
@ -508,11 +509,13 @@ void vClearInterruptMask( __attribute__( ( unused ) ) uint32_t ulMask ) /* __att
" \n" " \n"
" stacking_used_psp: \n" " stacking_used_psp: \n"
" mrs r0, psp \n" " mrs r0, psp \n"
" b vPortSVCHandler_C \n" " ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n" " \n"
" stacking_used_msp: \n" " stacking_used_msp: \n"
" mrs r0, msp \n" " mrs r0, msp \n"
" b vPortSVCHandler_C \n" " ldr r3, =vPortSVCHandler_C \n"
" bx r3 \n"
" \n" " \n"
" .align 4 \n" " .align 4 \n"
); );

Loading…
Cancel
Save