A few years ago, journalist Sara Bongiorni wrote a book called A Year Without “Made in China:” One Family’s True Life Adventure in the Global Economy, about her family’s yearlong quest to boycott Chinese-made products. The author never quite articulates the fundamental reasons for her boycott, nor explores the macroeconomic reasons for China’s manufacturing juggernaut. But she does succeed in making the point that yes, it’s pretty difficult for a middle-class American family to avoid buying products that are made in China or that contain Chinese components or materials.
An old joke in hardware engineering circles says, contrary to popular belief, electronic gizmos don’t run on electricity. They run on smoke. When something goes wrong, the smoke (sometimes accompanied by flames) escapes, and the device stops working.
What’s a computer?
Ask anyone that question, and you’ll probably get variations of, “A machine with a screen and a keyboard and pointing device, used for running various software programs.” This has been the general “high-level” definition since the personal computer became popular in homes and businesses in the early 1980s.
We’ve discussed recently the importance of firmware engineering, especially in light of the coming deluge of Internet of Things (IoT) devices.
Today we go into a bit more detail about firmware development: How we got where we are in the evolution of firmware development, some of the main differences between firmware development and PC or mobile software development, and how those differences drive the execution of a firmware project.