Top Page [◀◀] 2 3 4 5 6 7 8 9 ... [▶▶] Last Page
RL78/G14にてデバッグしてます。
INTP6 両エッジにて割り込みを発生させるために、PIF6 = 0U; PMK6 = 0U; するとリセットがかかり、2回目は正常に割り込みスタートできます。
リセット要因を調べたいのですが、どのタイミングでRESFを参照すればよいのでしょうか?
また、リセットの要因は何が考えられるでしょうか?
宜しくお願い致します。
In reply to fujita nozomu:
回答ありがとうございます。
チョコさん
わかりました。RAMパリティーエラーでした。
>具体的には、起動時に実行される"R_Systeminit"の中でR_CGC_Get_ResetSource()
>関数が呼ばれています。この関数はr_cg_cgc_user.cの中に存在し、RESFレジスタを
>読み出して、変数reset_flagに格納していました。
自動生成を利用して上記にてreset_flagをグローバル変数として宣言して、メインのはじめに読んでましたが、その間にスタートアップ中にRAM初期化されているのに気付きました。その場で読むときちんと0x04でRAMパリティーエラーでした。ありがとうございました。
fujitaさん
RESFの値をきちんと読んでませんでした。おっしゃる通りRAMパリティーエラーでした。ありがとうございました。
デタラメなこと書いてたので訂正: > C 言語では、演算のオーバーフローはエラー等となることはありません。 C言語では符号付整数のオーバーフローは未定義動作となるので結果が期待できません。何が起こるかも不明なのでオーバーフローを起こす可能性のある整数のオブジェクトは符号なしで宣言する等注意が必要となります。