Commit 3c2839b50928e0abe64db218b5b077b799624fd1
authorMichel Pollet <buserror@gmail.com>
Thu, 9 Apr 2015 20:28:51 +0000 (21:28 +0100)
committerMichel Pollet <buserror@gmail.com>
Thu, 9 Apr 2015 20:28:51 +0000 (21:28 +0100)
As it turn out, static analizer doesn't know lbt is >= 8. Added a
comment there all same for anyon else reading this.

Signed-off-by: Michel Pollet <buserror@gmail.com>
simavr/sim/avr_lin.c

index d719ee44e27af3fbe40c9ec18d733e71086c95b9..1be714157ab78becbdedf9cda1259613d9f01c21 100644 (file)
@@ -55,9 +55,10 @@ avr_lin_baud_write(
        }
        avr_core_watch_write(avr, addr, v); // actually set the value
 
-       uint32_t lbt = avr_regbit_get(avr, p->lbt);
+       uint32_t lbt = avr_regbit_get(avr, p->lbt); // Min value CANNOT be zero
        uint32_t lbrr = (avr->data[p->r_linbrrh] << 8) | avr->data[p->r_linbrrl];
        AVR_LOG(avr, LOG_TRACE, "LIN: UART LBT/LBRR to %04x/%04x\n", lbt, lbrr);
+       // there is no division by zero case here, lbt is >= 8
        uint32_t baud = avr->frequency / (lbt * (lbrr + 1));
        uint32_t word_size = 1 /*start*/+ 8 /*data bits*/+ 1 /*parity*/+ 1 /*stop*/;