-
Notifications
You must be signed in to change notification settings - Fork 5
Home
The Embedded Go compiler is the reference Go compiler with some additions to support bare-metal programming. As it's based on the original one it should generate the same binary code for all originally supported platforms (linux/amd64, windows/amd64, etc.) so you don't need two different compilers for OS and no-OS (bare-metal) programming.
Embedded Go compiler supports three additional GOOS/GOARCH targets: noos/thumb, noos/riscv64, linux/thumb.
noos/thumb is intended for 32-bit ARM microcontrolers (ARMv7-M, ARMv8-M ISA). noos/riscv is intended for 64-bit RISCV systems-on-chip (SOCs). linux/thumb was created mainly to facilitate testing GOARCH=thumb but can be used in place of linux/arm to produce smaller binaries for all systems that support Thumb2 ISA (almost all ARMv7-A and ARMv8-A CPUs).
To support embedded programming there are some additional packages in the standard library, all placed in embedded directory (do not confuse with embed which was introduced later and is for embedding files).