DDR_RZT1_ETH.cについて
Posted: 2015年12月02日(水) 10:17
DDR_RZT1_ETH.cの以下の関数が、コンパイラによっては警告が出ます。
eth_hwfnc_buf_rel、eth_hwfnc_macdma_tx_sta、eth_hwfnc_macdma_rx_ena、eth_hwfnc_macdma_rx_dis
R0の29ビット目が立つまで待機する処理
while ((r0 = ETHERC.R0.LONG) & (1UL << 29) == 0) { }
は、演算子の優先順位の関係で意図したとおりに動作しません。
括弧を追加して
while (((r0 = ETHERC.R0.LONG) & (1UL << 29)) == 0) { }
とすれば意図通りになるのではないかと思いますのでご確認お願いします。
eth_hwfnc_buf_rel、eth_hwfnc_macdma_tx_sta、eth_hwfnc_macdma_rx_ena、eth_hwfnc_macdma_rx_dis
R0の29ビット目が立つまで待機する処理
while ((r0 = ETHERC.R0.LONG) & (1UL << 29) == 0) { }
は、演算子の優先順位の関係で意図したとおりに動作しません。
括弧を追加して
while (((r0 = ETHERC.R0.LONG) & (1UL << 29)) == 0) { }
とすれば意図通りになるのではないかと思いますのでご確認お願いします。