When NDEBUG macro is defined during compilation, the assert macro produces empty code. The dev parameter is then unused.
This commit cleans up magic number and defines bitfields. Adds error codes for ADDR/DATA NACK and ARBLOSS Adds error handling, it corrects when an error occurs Protects from flags that could lockup the bus