Writing firmware that can be reused requires creation of a clean Application Program Interface (API). The API needs to be well thought out so that it makes re-use easy and productive. Ideally, the API ...