Efficient C Tips #10 – Use unsigned integers

This is the tenth in a series of tips on writing efficient C for embedded systems. Today I consider the topic of whether one should use signed integers or unsigned integers in order to produce faster code. Well the short answer is that unsigned integers nearly always produce faster code. Why is this you ask? Well there […]

Read More

July 20, 1969

Yep, you are right. This is yet another blog on the Apollo moon landing. But hey – this was one of the great achievements of the 20th century and, frankly, I don’t expect to see it duplicated in my lifetime. We are likely to be stuck here on earth with 7 billion of our closest friends for the foreseeable […]

Read More

Lowering power consumption tip #1 – Avoid zeros on the I2C bus

I already have a series of tips on efficient C and another on effective C. Today I’m introducing a third series of tips – this time centered on lowering the power consumption of embedded systems. As well as the environmental benefits of reducing the power consumption of an embedded system, there are also a plethora of other advantages including […]

Read More

Firmware Wall of Shame: Garmin GPS Bootloader

Some of Garmin’s GPS units (including members of the popular nuvi product family) are apparently locking up during the software upgrade process. Sounds like a bug in their bootstrap loader (a.k.a., bootloader) to me. A fix is now available. Full details at http://garmin.blogs.com/my_weblog/2009/06/ask-garmin-free-mandatory-gps-software-available-now.html

Read More

Debugging with cell phones

If you walk in the door of a doctor’s office here in the USA, the chances are there will be a sign admonishing you to turn off your phone. Most people probably assume this has something to do with common courtesy – and I’m sure that’s part of it. However the larger issue is the […]

Read More

Schedules II – A New Paradigm

This is part 2 of a two-part discussion on schedules, scheduling, and adhering to schedules. Click on Schedules I – Bozos & Clowns to see part 1. Fixed schedules are the bane of engineering, not because of the fixed schedule but because of the stupid things it causes some managers to do. In many corporations there are times […]

Read More

Effective C Tip #4 – Prototyping static functions

This is the fourth in a series of tips on writing effective C. I have previously talked about the benefits of static functions. Today I’m addressing where to place static functions in a module. This posting is motivated by the fact that I’ve recently spent a considerable amount of time wading through code that locates its static functions at […]

Read More