When is firmware good enough?

May 5th 2018

The question came up recently about when is firmware good enough to ship a product? This can be a difficult question but ultimately boils down to your product's tolerance for failures. For exampl … read more

Registers Bit Fields

May 1st 2018

So I was writing a interrupt driven UART driver and found that my receiver interrupts were being turned off.  Thanks to the wonderful GNU MCU Eclipse plugin, https://gnu-mcu-eclipse.github.i … read more

Time is hard, Part 2

Apr 30th 2018

As I had indicated I will continue with why time is hard.  In part 1 I discussed how a simple delay() function can be hard to implement.  Here I will discuss tracking time.This pro … read more

Time is hard

Apr 30th 2018

Dealing with time and timing on a microcontroller seems trivial from first glance but it is very hard. We will start with the delay() function in Arduino library for the Arudino Zero (SAMD21)void … read more

Memory Alignment

Apr 29th 2018

I was reviewing some code the other day which did the following://convert bytes to float uint8_t data[4]; float getFloat(uint8_t *ptrBytes) { uint8_t i; for (i=0; i<4; i++) { data[i … read more