logoalt Hacker News

ACCount39 • today at 1:21 AM • 2 replies • view on HN

By "mainstream" I mean "the bulk of development work done", not "the bulk of units shipped".

The boards that people reach for when they roll their first projects, the hardware that ends up in early prototypes and one-off devices, the hardware that gets targeted by open source projects. The chips that return more than a "databrief" 8 pages long and a single page on a vendor site inviting you to visit the snake pit with "contact sales for more information". The boards you can actually buy with a fixed price tag and a delivery to door, and can find writeups on how to use them for specific things.

If you know what "FAE" is, let alone can get into a meeting with one, you're deep in the trenches, and are pretty much expected to wrangle an extremely poorly documented MCU core that happens to be shipped in a SoC as an afterthought into submission.


Replies

dragontamer • today at 5:43 AM

There's multiple embedded companies, NXP i.MX, TI AM355x, STMicro STM32MP1 and MP2, Xilinx Zynq... that offer either Linux-CPU + realtime MCU, or Linux-CPU + FPGA. If we include Rasp. Pi PIO, there's even more companies offering main processor + coprocessor (including ESP32).

Those are just the ones off the top of my head. I'm sure there's more if I used Google to search. And of those companies, there's *multiple* lines of chips that offer these capabilities.

Its... pretty mainstream in the embedded world. The fact is that Linux is very bad for realtime, so adding a non-Linux coprocessor is one of the easiest ways to solve the problem. Run Linux for "regular" code, and then run the hard-realtime code on a dedicated chip (either Cortex M4 or some other MCU... or maybe a Cortex-R(something)). Or in the case of Xilinx, run the realtime stuff in FPGA-land.

Alternatively, you spend a ton of money on an OS that's well suited for hard-realtime (ex: VxWorks or something), but that also requires a processor with some guarantees (usually L1-like cache that's reserved by the programmer, some "always active" hard-realtime memory). This is more difficult in practice compared to just having a 2nd MCU or FPGA handle the realtime tasks though in a coprocessor like arrangement.

-------

I dunno what you're arguing for. Are you trying to say that the world of Linux capable core + Realtime core is somehow... niche?

➕ show 1 reply
kragen • today at 8:30 AM

The bulk of software development work done is probably people editing formulas in Excel, so that doesn't seem like a reasonable thing to say.