From 8fb9b3789e28252edaa9929d0f1ff3d6e015655f Mon Sep 17 00:00:00 2001 From: Shunyong Yang Date: Fri, 19 Mar 2021 16:47:50 +0800 Subject: [PATCH] Change vApplicationIRQHandlerConst to 64-bit align When MMU is disabled, all memory is device type and access should be aligned. For following code, ullPortInterruptNestingConst should be 64bit aligned. Otherwise, it will crash, /* Increment the interrupt nesting counter. */ LDR X5, ullPortInterruptNestingConst LDR X1, [X5] /* Old nesting count in X1. */ However, ullPortInterruptNestingConst is defined after word (32bit) aligned vApplicationIRQHandlerConst, which causes ullPortInterruptNestingConstit is also 32bit aligned, vApplicationIRQHandlerConst: .word vApplicationIRQHandler ullPortInterruptNestingConst: .dword ullPortInterruptNesting This patch define vApplicationIRQHandler as dword to solve this issue. Signed-off-by: Shunyong Yang --- portable/GCC/ARM_CA53_64_BIT/portASM.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portable/GCC/ARM_CA53_64_BIT/portASM.S b/portable/GCC/ARM_CA53_64_BIT/portASM.S index 47f7c7391..31d7ef9da 100644 --- a/portable/GCC/ARM_CA53_64_BIT/portASM.S +++ b/portable/GCC/ARM_CA53_64_BIT/portASM.S @@ -415,7 +415,7 @@ ullPortTaskHasFPUContextConst: .dword ullPortTaskHasFPUContext ullICCPMRConst: .dword ullICCPMR ullMaxAPIPriorityMaskConst: .dword ullMaxAPIPriorityMask -vApplicationIRQHandlerConst: .word vApplicationIRQHandler +vApplicationIRQHandlerConst: .dword vApplicationIRQHandler ullPortInterruptNestingConst: .dword ullPortInterruptNesting ullPortYieldRequiredConst: .dword ullPortYieldRequired ullICCIARConst: .dword ullICCIAR