From 926c02b6ffd852deda4c8e24fbfff858783c6306 Mon Sep 17 00:00:00 2001 From: sago35 Date: Fri, 15 Jul 2022 09:42:55 +0900 Subject: [PATCH] rp2040: reduced allocations --- src/machine/machine_rp2040_usb.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/machine/machine_rp2040_usb.go b/src/machine/machine_rp2040_usb.go index c5ac0ada..5f55ae68 100644 --- a/src/machine/machine_rp2040_usb.go +++ b/src/machine/machine_rp2040_usb.go @@ -105,6 +105,7 @@ func handleUSBIRQ(intr interrupt.Interrupt) { if usbRxHandler[i] != nil { usbRxHandler[i](buf) } + handleEndpointRxComplete(uint32(i)) } } @@ -229,17 +230,17 @@ func handleEndpointRx(ep uint32) []byte { ctrl := usbDPSRAM.EPxBufferControl[ep].Out.Get() usbDPSRAM.EPxBufferControl[ep].Out.Set(USBBufferLen & usbBuf0CtrlLenMask) sz := ctrl & usbBuf0CtrlLenMask - buf := make([]byte, sz) - copy(buf, usbDPSRAM.EPxBuffer[ep].Buffer0[:sz]) + return usbDPSRAM.EPxBuffer[ep].Buffer0[:sz] +} + +func handleEndpointRxComplete(ep uint32) { epXdata0[ep] = !epXdata0[ep] if epXdata0[ep] || ep == 0 { usbDPSRAM.EPxBufferControl[ep].Out.SetBits(usbBuf0CtrlData1Pid) } usbDPSRAM.EPxBufferControl[ep].Out.SetBits(usbBuf0CtrlAvail) - - return buf } func SendZlp() {