runtime: merge common sleep() functions

This commit is contained in:
Ayke van Laethem
2018-09-22 01:40:04 +02:00
parent 7c16f6c904
commit 7517ac86e4
4 changed files with 7 additions and 17 deletions
+5
View File
@@ -115,3 +115,8 @@ func sliceCopy(dst, src unsafe.Pointer, dstLen, srcLen lenType, elemSize uintptr
memmove(dst, src, uintptr(n)*elemSize)
return n
}
//go:linkname sleep time.Sleep
func sleep(d int64) {
sleepTicks(timeUnit(d / tickMicros))
}
+1 -6
View File
@@ -68,15 +68,10 @@ func putchar(c byte) {
*avr.UDR0 = avr.RegValue(c) // send char
}
// Sleep by the given amount.
// Sleep this number of ticks of 16ms.
//
// TODO: not very accurate. Improve accuracy by calibrating on startup and every
// once in a while.
//go:linkname sleep time.Sleep
func sleep(d int64) {
sleepTicks(timeUnit(d / tickMicros))
}
func sleepTicks(d timeUnit) {
currentTime += d
for d != 0 {
-5
View File
@@ -91,11 +91,6 @@ func putchar(c byte) {
nrf.UART0.EVENTS_TXDRDY = 0
}
//go:linkname sleep time.Sleep
func sleep(d timeUnit) {
sleepTicks(d / tickMicros)
}
func sleepTicks(d timeUnit) {
for d != 0 {
ticks() // update timestamp
+1 -6
View File
@@ -34,13 +34,8 @@ func putchar(c byte) {
_Cfunc_putchar(int(c))
}
//go:linkname sleep time.Sleep
func sleep(d int64) {
_Cfunc_usleep(uint(d) / 1000)
}
func sleepTicks(d timeUnit) {
sleep(int64(d))
_Cfunc_usleep(uint(d) / 1000)
}
// Return monotonic time in nanoseconds.