Files
tinygo/src/runtime/runtime_tkey_baremetal.go
T
Ron Evans 17302ca762 targets: add implementation for Tillitis TKey device (#4631)
* initial implementation for Tillitis TKey device
* add UART implementation for TKey
* add Pin interface implementation for TKey touch sensor
* add RNG interface implementation for TKey
* add helpful machine package functions to return identifiers such as name and version for TKey
* use built-in timer for sleep timing on TKey
* modify UART implementation for TKey to implement Serialer interface
* implement BLAKE2s ROM function call for TKey device
* handle abort by triggering TKey device fault using illegal instruction to halt CPU
* simplify TKey implementation by inheriting from existing riscv32 target
* return error for trying to configure invalid baudrates on UART
* add tkey to builder test
* be very specific for features passed to LLVM for specific config in use for TKey
* handle feedback items from TKey device code review

Signed-off-by: deadprogram <ron@hybridgroup.com>
2024-12-14 14:26:03 +01:00

25 lines
454 B
Go

//go:build tkey && !qemu
package runtime
import "device/riscv"
// ticksToNanoseconds converts ticks (at 18MHz) to 10 µs.
func ticksToNanoseconds(ticks timeUnit) int64 {
return int64(ticks) * 10000
}
// nanosecondsToTicks converts 10 µs to ticks (at 18MHz).
func nanosecondsToTicks(ns int64) timeUnit {
return timeUnit(ns / 10000)
}
func exit(code int) {
abort()
}
func abort() {
// Force illegal instruction to halt CPU
riscv.Asm("unimp")
}