I have to admit to having a soft spot for Freescale microprocessors. The first micro I ever used was a Motorola 6809 and for the first few years of my career I worked exclusively on 6800′s, 68HC11′s and 68000 processors. Times changed and I largely moved away from the product range, although I did return […]
Author: Nigel Jones
Firmalware
There’s a fascinating story from Reuters (with a far more detailed report from Kaspersky) about how a very sophisticated hacking operation, presumably the NSA, has been targeting computers by reflashing the firmware of hard drives such that the attacker controls what is loaded at boot time. If you think this has shades of Stuxnet about it, then you aren’t […]
Shifting Styles
To say it’s been some time since I last posted is an understatement! I won’t bore you with the details other than to note that sometimes there just aren’t enough hours in a day. Anyway, today’s post is about a stylistic issue I’ve noticed in just about all code I’ve ever looked at. Unless you […]
The engineering – marketing divide
We have all sat in surreal meetings with the sales and marketing folks. This video captures the dynamic perfectly (caution – you won’t know whether to laugh or cry): The Expert Video I actually have some sympathy for the marketing people portrayed here, as it must be very hard when you’re so far out of […]
Replacing nested switches with multi-dimensional arrays of pointers to functions
It’s been way too long since I’ve written a blog post. To those kind souls that have written to inquire if I’m still alive and kicking – thank you. The bottom line is that there simply aren’t enough hours in the day. Anyway in an effort to get back in the groove so to speak, […]
Idling along, (or what to do in the idle task)
If you are using an RTOS in your latest design then no doubt you have an idle task. (Most of the time, the idle task is explicit and is the user task with the lowest priority; sometimes it’s built into the RTOS). It’s been my experience that the idle task is an interesting beast. On […]
What’s in your main() header?
One of the consequences of being in the consulting business is that I get to look at a lot of code written by other people. Usually it is necessary for me to get up to speed on the code as quickly as possible, and so to this end, one of the first things I do […]
Real world variables
Part of what makes embedded systems fun for me is that they normally interact with the physical world. The physical world contains real parameters which we measure using transducers, signal conditioning circuits and so on, such that ultimately we end up with a variable in our embedded code that purports to represent this real world […]
2012 Explained – Toyota
Regular readers of this blog will no doubt have noticed the paltry number of articles posted by me this year. While there have been a number of contributing factors, one of the more significant has been Toyota. I have been part of the team that has spent a large part of 2012 examining the engine […]
All variables are equal, but some are more equal than others
With all due apologies to George Orwell for the title, I thought I’d offer a little tidbit on the practice of the following construct: uint8_t a,b,c,d; a = b = c = d = 0; This code declares four variables (a,b,c,d) and sets them all equal to 0. The question is, is this a good, […]