diff options
Diffstat (limited to 'src/runtime/runtime_rp2040.go')
-rw-r--r-- | src/runtime/runtime_rp2040.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/runtime/runtime_rp2040.go b/src/runtime/runtime_rp2040.go new file mode 100644 index 000000000..162f18f1e --- /dev/null +++ b/src/runtime/runtime_rp2040.go @@ -0,0 +1,58 @@ +// +build rp2040 + +package runtime + +import ( + "device/arm" +) + +// machineTicks is provided by package machine. +func machineTicks() uint64 + +type timeUnit uint64 + +// ticks returns the number of ticks (microseconds) elapsed since power up. +func ticks() timeUnit { + t := machineTicks() + return timeUnit(t) +} + +func ticksToNanoseconds(ticks timeUnit) int64 { + return int64(ticks) * 1000 +} + +func nanosecondsToTicks(ns int64) timeUnit { + return timeUnit(ns / 1000) +} + +func sleepTicks(d timeUnit) { + if d == 0 { + return + } + sleepUntil := ticks() + d + for ticks() < sleepUntil { + } +} + +func waitForEvents() { + arm.Asm("wfe") +} + +func putchar(c byte) { +} + +// machineInit is provided by package machine. +func machineInit() + +func init() { + machineInit() +} + +func postinit() {} + +//export Reset_Handler +func main() { + preinit() + run() + abort() +} |