RTCbソフトウェアリセットについて

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 の前に入れたところ現象が発生しなくなりました。

このような現象が発生したことはありますでしょうか。

Parents Reply Children
No Data