Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/machine/machine_atsamd21.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,15 +299,15 @@ func InitADC() {
// #define ADC_FUSES_LINEARITY_1_Msk (0x7u << ADC_FUSES_LINEARITY_1_Pos)
// #define ADC_FUSES_LINEARITY_1(value) ((ADC_FUSES_LINEARITY_1_Msk & ((value) << ADC_FUSES_LINEARITY_1_Pos)))

biasFuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
biasFuse := *(*uint32)(unsafe.Add(0x00806020, 4))
bias := uint16(biasFuse>>3) & uint16(0x7)

// ADC Linearity bits 4:0
linearity0Fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020)))
linearity := uint16(linearity0Fuse>>27) & uint16(0x1f)

// ADC Linearity bits 7:5
linearity1Fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
linearity1Fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
linearity |= uint16(linearity1Fuse) & uint16(0x7) << 5

// set calibration
Expand Down Expand Up @@ -1923,7 +1923,7 @@ func (f flashBlockDevice) WriteAt(p []byte, off int64) (n int, err error) {
for j := 0; j < len(padded); j += int(f.WriteBlockSize()) {
// page buffer is 64 bytes long, but only 4 bytes can be written at once
for k := 0; k < int(f.WriteBlockSize()); k += 4 {
*(*uint32)(unsafe.Pointer(address + uintptr(k))) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
*(*uint32)(unsafe.Add(address, k)) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
}

sam.NVMCTRL.SetADDR(uint32(address >> 1))
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_atsamd21_usb.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func handlePadCalibration() {
// #define USB_FUSES_TRIM_Msk (0x7u << USB_FUSES_TRIM_Pos)
// #define USB_FUSES_TRIM(value) ((USB_FUSES_TRIM_Msk & ((value) << USB_FUSES_TRIM_Pos)))
//
fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
calibTransN := uint16(fuse>>13) & uint16(0x1f)
calibTransP := uint16(fuse>>18) & uint16(0x1f)
calibTrim := uint16(fuse>>23) & uint16(0x7)
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_atsamd51.go
Original file line number Diff line number Diff line change
Expand Up @@ -2188,7 +2188,7 @@ func (f flashBlockDevice) WriteAt(p []byte, off int64) (n int, err error) {
for j := 0; j < len(padded); j += int(f.WriteBlockSize()) {
// page buffer is 512 bytes long, but only 4 bytes can be written at once
for k := 0; k < int(f.WriteBlockSize()); k += 4 {
*(*uint32)(unsafe.Pointer(address + uintptr(k))) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
*(*uint32)(unsafe.Add(address, k)) = binary.LittleEndian.Uint32(padded[j+k : j+k+4])
}

sam.NVMCTRL.SetADDR(uint32(address))
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_atsamd51_usb.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func handlePadCalibration() {
// #define USB_FUSES_TRIM_Msk (0x7u << USB_FUSES_TRIM_Pos)
// #define USB_FUSES_TRIM(value) ((USB_FUSES_TRIM_Msk & ((value) << USB_FUSES_TRIM_Pos)))
//
fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
calibTransN := uint16(fuse>>13) & uint16(0x1f)
calibTransP := uint16(fuse>>18) & uint16(0x1f)
calibTrim := uint16(fuse>>23) & uint16(0x7)
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_esp32_i2c.go
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ func (i2c *I2C) SetBaudRate(br uint32) error {
}

func (p Pin) pinReg() *volatile.Register32 {
return (*volatile.Register32)(unsafe.Pointer((uintptr(unsafe.Pointer(&esp.GPIO.PIN0)) + uintptr(p)*4)))
return (*volatile.Register32)(unsafe.Add(unsafe.Pointer(&esp.GPIO.PIN0), uintptr(p)*4))
}

func nextAddress(reg *volatile.Register32) *volatile.Register32 {
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_esp32c3.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ func (p Pin) outFunc() *volatile.Register32 {
}

func (p Pin) pinReg() *volatile.Register32 {
return (*volatile.Register32)(unsafe.Pointer((uintptr(unsafe.Pointer(&esp.GPIO.PIN0)) + uintptr(p)*4)))
return (*volatile.Register32)(unsafe.Add(unsafe.Pointer(&esp.GPIO.PIN0), uintptr(p)*4))
}

// inFunc returns the FUNCy_IN_SEL_CFG register used for configuring the input
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_nrf.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
return 0, errFlashCannotReadPastEOF
}

data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
copy(p, data)

return len(p), nil
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_stm32_flash.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
return 0, errFlashCannotReadPastEOF
}

data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
copy(p, data)

return len(p), nil
Expand Down
2 changes: 1 addition & 1 deletion src/machine/machine_stm32l0_flash.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (f flashBlockDevice) ReadAt(p []byte, off int64) (n int, err error) {
return 0, errFlashCannotReadPastEOF
}

data := unsafe.Slice((*byte)(unsafe.Pointer(FlashDataStart()+uintptr(off))), len(p))
data := unsafe.Slice((*byte)(unsafe.Add(FlashDataStart(), off)), len(p))
copy(p, data)

return len(p), nil
Expand Down
4 changes: 2 additions & 2 deletions src/runtime/dynamic_arm64.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func dynamicLoader(base uintptr, dyn *dyn64) {
for dyn.Tag != dtNULL {
switch dyn.Tag {
case dtRELA:
rela = (*rela64)(unsafe.Pointer(base + uintptr(dyn.Val)))
rela = (*rela64)(unsafe.Add(base, dyn.Val))
case dtRELASZ:
relasz = uint64(dyn.Val) / uint64(unsafe.Sizeof(rela64{}))
}
Expand All @@ -62,7 +62,7 @@ func dynamicLoader(base uintptr, dyn *dyn64) {
if debugLoader {
println("relocating ", uintptr(rela.Addend), " to ", base+uintptr(rela.Addend))
}
ptr := (*uint64)(unsafe.Pointer(base + uintptr(rela.Off)))
ptr := (*uint64)(unsafe.Add(base, rela.Off))
*ptr = uint64(base + uintptr(rela.Addend))
default:
if debugLoader {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/os_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func findGlobals(found func(start, end uintptr)) {
// pointer to that struct in advance.
var offset uintptr
var hasOffset bool
cmd := (*segmentLoadCommand)(unsafe.Pointer(uintptr(unsafe.Pointer(&libc_mh_execute_header)) + unsafe.Sizeof(machHeader{})))
cmd := (*segmentLoadCommand)(unsafe.Add(unsafe.Pointer(&libc_mh_execute_header), unsafe.Sizeof(machHeader{})))
for i := libc_mh_execute_header.ncmds; i != 0; i-- {
if cmd.cmd == LC_SEGMENT_64 {
if cmd.fileoff == 0 && cmd.nsects != 0 {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/os_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func findGlobals(found func(start, end uintptr)) {
PF_W = 0x2 // program flag: write access
)

headerPtr := unsafe.Pointer(uintptr(unsafe.Pointer(&ehdr_start)) + ehdr_start.phoff)
headerPtr := unsafe.Add(unsafe.Pointer(&ehdr_start), ehdr_start.phoff)
for i := 0; i < int(ehdr_start.phnum); i++ {
// Look for a writable segment and scan its contents.
// There is a little bit of duplication here, which is unfortunate. But
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/runtime_atsamd21.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func initClocks() {
// #define SYSCTRL_FUSES_OSC32K_CAL(value) ((SYSCTRL_FUSES_OSC32K_CAL_Msk & ((value) << SYSCTRL_FUSES_OSC32K_CAL_Pos)))
// u32_t fuse = *(u32_t *)FUSES_OSC32K_CAL_ADDR;
// u32_t calib = (fuse & FUSES_OSC32K_CAL_Msk) >> FUSES_OSC32K_CAL_Pos;
fuse := *(*uint32)(unsafe.Pointer(uintptr(0x00806020) + 4))
fuse := *(*uint32)(unsafe.Add(0x00806020, 4))
calib := (fuse & uint32(0x7f<<6)) >> 6

// SYSCTRL_OSC32K_CALIB(calib) |
Expand Down
Loading