//go:build tinygo.riscv32 package runtime import "unsafe" //go:extern _sbss var _sbss [0]byte //go:extern _ebss var _ebss [0]byte //go:extern _sdata var _sdata [0]byte //go:extern _sidata var _sidata [0]byte //go:extern _edata var _edata [0]byte func preinit() { // Initialize .bss: zero-initialized global variables. ptr := unsafe.Pointer(&_sbss) for ptr != unsafe.Pointer(&_ebss) { *(*uint32)(ptr) = 0 ptr = unsafe.Add(ptr, 4) } // Initialize .data: global variables initialized from flash. src := unsafe.Pointer(&_sidata) dst := unsafe.Pointer(&_sdata) for dst != unsafe.Pointer(&_edata) { *(*uint32)(dst) = *(*uint32)(src) dst = unsafe.Add(dst, 4) src = unsafe.Add(src, 4) } }