Fixed stack unbalance.

This commit is contained in:
imi415 2022-05-02 22:28:13 +08:00
parent 6cb6382aeb
commit 7a78a24a2a
Signed by: imi415
GPG Key ID: 885EC2B5A8A6F8A7
1 changed files with 6 additions and 2 deletions

View File

@ -69,8 +69,12 @@ __IRQ_WEAK void NMI_Handler(void) {
__IRQ_NAKED void SysTick_Handler(void) {
/* Use naked function to generate a short call, without causing stack unbalance. */
asm volatile(
"li t0, 0xE000F004\n" /* Clear SysTick->SR */
"sw zero, 0(t0)\n"
"addi sp, sp, -4\n" /* Push */
"sw t0, 4(sp)\n" /* Save t0 on stack */
"li t0, 0xE000F004\n" /* SysTick->SR */
"sw zero, 0(t0)\n" /* Write 0 to clear */
"lw t0, 4(sp)\n" /* Restore t0 from stack */
"addi sp, sp, 4\n" /* Pop */
"j freertos_risc_v_mtimer_interrupt_handler"
);
}