TinyGo Goes Multi-Core on the Raspberry Pi RP2040
Raspberry Pi's popular dual-core microcontroller is the first to benefit from TinyGo 0.38.0's new support for running on multiple CPU cores.
The TinyGo project, which offers a compiler designed to let Go programmers use their favorite language to develop for resource-constrained environments like Microcontrollers, has announced the release of a major new feature: support for multi-core processors.
"This release includes some very exciting new features, in particular our first multicore support," writes TinyGo developer Ron Evans of the software's 0.38.0 release. "Initially available on the [Raspberry Pi] RP2040 microcontrollers, now TinyGo can use both cores at the same time for true concurrency in hardware."
Built atop LLVM, TinyGo targets compilation for devices where resources are in relatively short supply β microcontrollers, naturally, but also WebAssembly running in-browser. At the time of writing TinyGo offered support for nearly a hundred different microcontroller development boards, but in all cases was only able to use a single processor core even when multiple cores were available.
The TinyGo 0.38.0 release changes that, at least for the Raspberry Pi Pico and other boards based on the RP2040 microcontroller. Programs compiled using TinyGo 0.38.0 can now use both of the RP2040's Arm Cortex-M0+ cores, a feature that will follow to other multi-core devices in due course β likely to include Raspberry Pi's more powerful successor microcontroller the RP2350.
Another new feature added in the latest release is support for USB Mass Storage Device (MSD) operation β which can be enabled, at the time of writing, on the Raspberry Pi RP2040 and RP2350 microcontroller families and the Microchip SAM D21 and SAM D51 range.
The latest release of TinyGo is available on the project's GitHub repository now, with binaries and source code published under a custom license.