Просмотр исходного кода

RISC-V: fix usage of special register when interrupts are enabled

Omar Chebib 4 лет назад
Родитель
Сommit
0f6f3c0ece
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      components/riscv/vectors.S

+ 3 - 3
components/riscv/vectors.S

@@ -267,8 +267,8 @@ _interrupt_handler:
 	#endif
 
 	/* call the C dispatcher */
-	mv      a0, sp		/* argument 1, stack pointer */
-	csrr    a1, mcause	/* argument 2, interrupt number */
+	mv      a0, sp      /* argument 1, stack pointer */
+	mv      a1, s1      /* argument 2, interrupt number (mcause) */
 	/* mask off the interrupt flag of mcause */
 	li	    t0, 0x7fffffff
 	and     a1, a1, t0
@@ -276,7 +276,7 @@ _interrupt_handler:
 
 	/* After dispatch c handler, disable interrupt to make freertos make context switch */
 
-	la t0, 0x8
+	li t0, 0x8
 	csrrc t0, mstatus, t0
 
 	/* restore the interrupt threshold level */