CPU:RX210
tool:PDG Ver2.09 (RPDL RX210_library_little.lib 2014/4/16 14:38:10)
Power ON では起動途中でプログラムが途中で止まり、reset では滞りなく起動するという現象が発生しました。
途中で止まっている個所が関数 R_PG_RTC_Start であることが分かりましたので
RPDL のソースコードをリンクして、さらに追いかけると関数 R_RTC_Create の中の
/* Reset the RTC */RTC.RCR2.BIT.RESET = 1;/* Wait for the reset to complete */while (RTC.RCR2.BIT.RESET != 0);
while ループが抜けてこないことが判明しました。
基板によって動作が異なるのでハードウェアによるものと考えたのですが
FITの動作が知りたかったので、サンプルを作り動作を確認したところ現象は発生しませんでした。
FITとRPDLとのソースコードを見比べました。
FIT の関数 rtc_init にはソフトウェアリセットを実行する前に以下のコードが入っていました。
/* Disable RTC interrupts */RTC.RCR1.BYTE = 0x00u;while (0x00u != RTC.RCR1.BYTE){ /* Confirm that it has changed */ nop();}
そこでこの部分だけ取り出して、関数 R_PG_RTC_Start の前に入れたところ現象が発生しなくなりました。
このような現象が発生したことはありますでしょうか。