RXマイコン用 FreeRTOS の依存部分コードを観ていて、疑問に思う場所があります。
ソースは
portable/Renesas/RX600/portmacro.h
で、SWINT を起動する部分です。
#pragma inline_asm vPortYield
/* Save clobbered register - may not actually be necessary if inline asm
}
上記の「553696」は「0x720E0」で、ICUの「ソフトウェア割り込み起動レジスタ(SWINTR)」
と思いますが、起動させる為、バイトで「1」を書いてから、32ビットで読み出しています。
ICUの説明を読んでも、書き込み後に32ビットで読み出す必要がある事は書かれていません。(RX64Mのハードウェアーマニュアル)
そもそも、SWINT を起動するなら、DTC用に用意してあるハードを叩かなくても、
「INT #27」のアセンブラ命令を実行すれば良いように思います。
何故、このような実装になっているか判る方いますか?