Zen and the Art of Firmware Maintenance

In this article, I touch on coding style, coding standards and philosophy. To paraphrase Robert Pirsig from “Zen and the Art of Motorcycle Maintenance”, this article is not really about Zen and does not tell you how to maintain firmware (or software). However, if you follow my advice, you will be on the path to coding nirvana. And you will bring great joy and enlightenment to the world.Aspire to create a work of art and beauty with every piece of code you write. Remember that firmware lives for ever. Long after the developer has left for another job (or moved…

Continue ReadingZen and the Art of Firmware Maintenance

Writing a Bootloader for the ARM SAM3 SAM4 Microprocessor

A bootloader is a very important feature for many embedded devices. It allows a manufacturer to easily upgrade firmware, to add features and fix bugs after the product has been released. This can done on-site by a field service technician or remotely via the Internet.I will use as an example, software I wrote for a medical device that needed a bootloader. The system used multiple ARM processors. I needed to write a custom bootloader for the Atmel (now Microchip) SAM3E processor for this system to enable in circuit firmware updates. We were downloading the new firmware through a CAN bus…

Continue ReadingWriting a Bootloader for the ARM SAM3 SAM4 Microprocessor