Describe the bug
RL78にてxEventGroupBitsFromISR APIが正常に動作しない。
具体的にはportYIELD_FROM_ISR()が正常動作しないようだ。
正しい手順は「BRK実行→スタック退避→コンテキストスイッチ→スタックロード」ですが、実装ミスによりコンテキストスイッチだけやっているようです。従って元に戻れず動けない。
|
#define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) if( xHigherPriorityTaskWoken ) vTaskSwitchContext() |
■誤り(現時点の記述)
#define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) if( xHigherPriorityTaskWoken ) vTaskSwitchContext()
■対策(修正)
RX600v2 の実装に合わせ、以下に変更することで直る。
#define portYIELD_FROM_ISR( x ) if( x != pdFALSE ) portYIELD()
Describe the bug
RL78にてxEventGroupBitsFromISR APIが正常に動作しない。
具体的にはportYIELD_FROM_ISR()が正常動作しないようだ。
正しい手順は「BRK実行→スタック退避→コンテキストスイッチ→スタックロード」ですが、実装ミスによりコンテキストスイッチだけやっているようです。従って元に戻れず動けない。
FreeRTOS-Kernel/portable/Renesas/RL78G2x/portmacro.h
Line 106 in ab7af2e
■誤り(現時点の記述)
#define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) if( xHigherPriorityTaskWoken ) vTaskSwitchContext()
■対策(修正)
RX600v2 の実装に合わせ、以下に変更することで直る。
#define portYIELD_FROM_ISR( x ) if( x != pdFALSE ) portYIELD()