From 89108dd2b9aa1bc533bbbdb0f1461ec0899c8d1d Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Tue, 25 Oct 2011 18:56:10 -0400 Subject: progress on bootloader bug - have implemented blocking USB_Recv. avrdude makes it to flash programming address 0400 or so before hanging --- bootloaders/nuevo_diskloader/src/USBCore.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bootloaders/nuevo_diskloader/src/USBCore.cpp') diff --git a/bootloaders/nuevo_diskloader/src/USBCore.cpp b/bootloaders/nuevo_diskloader/src/USBCore.cpp index cfcef73..fffe6f7 100644 --- a/bootloaders/nuevo_diskloader/src/USBCore.cpp +++ b/bootloaders/nuevo_diskloader/src/USBCore.cpp @@ -217,6 +217,19 @@ u8 USB_Available(u8 ep) return FifoByteCount(); } +void USB_Recv_block(u8 ep, u8* dst, int len) +{ + SetEP(ep); + while (len--) + { + while (!ReadWriteAllowed()) + ; + *dst++ = Recv8(); + if (!ReadWriteAllowed()) // release empty buffer + ReleaseRX(); + } +} + // Non Blocking receive // Return number of bytes read int USB_Recv(u8 ep, void* d, int len) -- cgit v1.2.3-18-g5258