In this installment of my “Embedded Toolbox” series, I would like to share with you the free source code cleanup utility called QClean for cleaning whitespace in your source files, header files, makefiles, linker scripts, etc. You probably wonder why you might need such a utility? In fact, the common thinking is that compilers (C, C++, etc.) […]
My Embedded Toolbox: Programmer’s Calculator
Like any craftsman, I have accumulated quite a few tools during my embedded software development career. Some of them proved to me more useful than others. And these generally useful tools ended up in my Embedded Toolbox. In this blog, I’d like to share some of my tools with you. Today, I’d like to start […]
Beyond the RTOS: A Better Way to Design Real-Time Embedded Software
An RTOS (Real-Time Operating System) is the most universally accepted way of designing and implementing embedded software. It is the most sought after component of any system that outgrows the venerable “superloop”. But it is also the design strategy that implies a certain programming paradigm, which leads to particularly brittle designs that often work only […]
A word about UL and FCC certification
The UL (Underwriters Laboratories) and the FCC (Federal Communications Commission) are two American organizations concerned with the safe and proper operation of electronic equipment and associated power supplies. These organizations, and others like CE, CCC, KCC, etc. do much more than worry about power supplies and electronic equipment but that is my focus today. I […]
Government-Sponsored Hacking of Embedded Systems
Everywhere you look these days, it is readily apparent that embedded systems of all types are under attack by hackers. In just one example from the last few weeks, researchers at Kaspersky Lab (a Moscow-headquartered maker of anti-virus and other software security products) published a report documenting a specific pernicious and malicious attack against “virtually all hard drive firmware”. […]
Freescale customer service
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 […]
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 […]
Fast, Deterministic, and Portable Counting Leading Zeros
Counting leading zeros in an integer number is a critical operation in many DSP algorithms, such as normalization of samples in sound or video processing, as well as in real-time schedulers to quickly find the highest-priority task ready-to-run. In most such algorithms, it is important that the count-leading zeros operation be fast and deterministic. For […]
First Impressions of Google Glass 2.0
Last week I took advantage of Google’s special 1-day-only buying opportunity to purchase an “Explorer” edition of Google Glass 2.0. My package arrived over the weekend and I finally found a few hours this morning for the unboxing and first use. Let me begin by saying that the current price is quite high and that the buying process itself is […]