-
Notifications
You must be signed in to change notification settings - Fork 35
Closed
Description
I think there is an error in the pmem example for MapAsPOD.
package main
import (
"log"
"periph.io/x/host/v3/pmem"
)
func main() {
// Let's say the CPU has 4 x 32 bits memory mapped registers at the address
// 0xDEADBEEF.
var reg *[4]uint32
if err := pmem.MapAsPOD(0xDEADBEAF, reg); err != nil {
log.Fatal(err)
}
// reg now points to physical memory.
}It only works when I add a referencing operator to the function call, like so: pmem.MapAsPOD(0xDEADBEAF, ®), so this code works for me:
var reg *[SMC_MEM_LEN / 2]uint16
if err := pmem.MapAsPOD(SMC_MEM_START, ®); err != nil {Otherwise, I get an error during runtime: pmem: require Ptr to Ptr, got invalid (or got slice/got array).
In case this is relevant, I'm compiling for an AT91SAM9G45 with Linux 3.0.0.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels