renesas / FreeRTOS-Kernel

FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.
https://www.FreeRTOS.org
MIT License
3 stars 9 forks source link

[BUG] RL78 CCRLにてxEventGroupBitsFromISRが動作しない #21

Open KeitaKashima opened 1 year ago

KeitaKashima commented 1 year ago

Describe the bug

RL78にてxEventGroupBitsFromISR APIが正常に動作しない。 具体的にはportYIELD_FROM_ISR()が正常動作しないようだ。 正しい手順は「BRK実行→スタック退避→コンテキストスイッチ→スタックロード」ですが、実装ミスによりコンテキストスイッチだけやっているようです。従って元に戻れず動けない。

https://github.com/renesas/FreeRTOS-Kernel/blob/ab7af2eead696a15115cecfe1d085a8c6a994e15/portable/Renesas/RL78G2x/portmacro.h#L106

■誤り(現時点の記述)

define portYIELD_FROM_ISR( xHigherPriorityTaskWoken ) if( xHigherPriorityTaskWoken ) vTaskSwitchContext()

■対策(修正) RX600v2 の実装に合わせ、以下に変更することで直る。

define portYIELD_FROM_ISR( x ) if( x != pdFALSE ) portYIELD()

ShunichiroNakamura commented 1 month ago
ShunichiroNakamura commented 1 month ago