我看過ECLIC Unit Introduction這份文檔了,但跟芯片的行為似乎沒辦法對起來...
首先,關於MTH的解釋,提到interrupt的LEVEL必須要高於MTH,才能夠對core順利觸發中斷...
Only when the level of the interrupt finally arbitrated by the ECLIC is higher than the value in the mth register, the interrupt can be sent to the processor core
我看到FreeRTOS內port.c內,也確實是透過"ECLIC_SetMth()"來完成"portDISABLE_INTERRUPTS()"
但我實際測試的結果卻發生我呼叫"portENTER_CRITICAL()",可以使RTOS的SystemTimer IRQ停止觸發...
但我如果自行呼叫ECLIC_SetMth(127); __RWMB();則是無法擋住SystemTimer IRQ的...
(目前 NLBITS = 4,configMAX_SYSCALL_INTERRUPT_PRIORITY= 7, uxMaxSysCallMTH = 127, SystemTimer IRQ的LVL為0)
不曉得是否我弄錯了甚麼?