Electrical engineer Jay Carlson has published a detailed primer on the development of embedded Linux systems, including a walk through the design process for a series of custom single-board computers built on processors from companies including Microchip, Allwinner, NXP, Texas Instruments, and STMicroelectronics.
"Massive shifts over the last few years have seen internet-connected devices become more featureful (and hopefully, more secure), and I’m finding myself putting Linux into more and more places," Carlson writes by way of introduction. "Among beginner engineers, application processors supplicate reverence: one minor PCB bug and your $10,000 prototype becomes a paperweight. There’s an occult consortium of engineering pros who drop these chips into designs with utter confidence, while the uninitiated cower for their Raspberry Pis and overpriced industrial SOMs."
"This article is targeted at embedded engineers who are familiar with microcontrollers but not with microprocessors or Linux, so I wanted to put together something with a quick primer on why you’d want to run embedded Linux, a broad overview of what’s involved in designing around application processors, and then a dive into some specific parts you should check out — and others you should avoid — for entry-level embedded Linux systems."
The article goes through Carlson's reasons for moving from microcontrollers to microprocessors running embedded Linux, reasons why you might not want to follow, and his design workflow for both hardware and software. Where it differs from most, though, is that Carlson doesn't go into how to install Linux on off-the-shelf hardware — but rather builds a series of homebrew single-board computers built around popular off-the-shelf processors.
"This project re-affirmed the importance of practicing engineering (versus doing engineering)," Carlson explains. "When you force yourself to get away from interesting domain-specific problem-solving and focus on the low-level mechanics of design work, in a repeated fashion, you end up building up muscle memory for things you thought you’d always have to think about."
"By the time I got to the end of this project, working on the Rockchip RK3308, I was flying through things. I spent two hours researching, 20 minutes drawing the 355-pin schematic symbol, an hour routing the DDR3 bus, three hours fanning out the rest of the signals and routing power, and 30 minutes cleaning everything up. When the boards came back, I put on some music, pasted them up, hand-placed everything, threw it on a hot plate, flipped it over to do the back side, and less than an hour later, I was booted up on a command prompt, sitting in front of a quad-core 1.3 GHz computer I made from $10 worth of parts, mounted on a $20 PCB."
The full article is available on Jay Carlson's website.