Renesas Synergy™

FAQ 107019 : M3S-T2-Tinyのサンプルドライバプログラムで、TIMER_CNTの定数値が異常になります。

eth_drv.c及び、ppp_drv.cの該当箇所を以下のように修正してください。

<修正前>
--------------------------------------------------------------------------------
#define _TCP_UNIT_TIME 10
#define MPU_CLOCK 20000000 /* Hz */
#define TIMER_CNT ((_TCP_UNIT_TIME*1000/1000)*(long)MPU_CLOCK/(2048*1000))
--------------------------------------------------------------------------------

<修正後>
--------------------------------------------------------------------------------
#define _TCP_UNIT_TIME 10L
#define MPU_CLOCK 20000000L /* Hz */
#define TIMER_CNT ((_TCP_UNIT_TIME*1000L/1000L)*MPU_CLOCK/(2048L*1000L))
--------------------------------------------------------------------------------


修正前はコンパイラ依存のコードになっています。
定数式の計算途中でint型の値の範囲を超えた場合の処理は
コンパイラ依存であり、NC30 V.5.40 Release 00までは意図する値が計算されていましたが、
NC30 V.5.42 Release 00以降のバージョンやH8用コンパイラでは計算結果が意図しない値になります。

修正後のコードでは、定数の接尾語に"L"を付ける事で、定数値の型を明確にし、意図する値に計算されます。

 

 

適用製品

M3S-T2-Tiny
他にご質問がございましたら、リクエストを送信してください