aboutsummaryrefslogtreecommitdiffstats
path: root/usbdrv/asmcommon.inc
diff options
context:
space:
mode:
authorChristian Starkjohann <cs+github@obdev.at>2008-06-10 17:44:17 +0000
committerChristian Starkjohann <cs+github@obdev.at>2008-06-10 17:44:17 +0000
commitdfb2c5fd5e27c6b82466a01ebc59a3ee00d125dc (patch)
tree0cb9d7efc98498debc9099479beacf8e7510cac6 /usbdrv/asmcommon.inc
parent72d295266837d4af7e67b3ffc5d0eed335438b13 (diff)
downloadv-usb-dfb2c5fd5e27c6b82466a01ebc59a3ee00d125dc.tar.gz
v-usb-dfb2c5fd5e27c6b82466a01ebc59a3ee00d125dc.tar.bz2
v-usb-dfb2c5fd5e27c6b82466a01ebc59a3ee00d125dc.zip
- added usbconfig.h option USB_CFG_CHECK_DATA_TOGGLING
Diffstat (limited to 'usbdrv/asmcommon.inc')
-rw-r--r--usbdrv/asmcommon.inc9
1 files changed, 6 insertions, 3 deletions
diff --git a/usbdrv/asmcommon.inc b/usbdrv/asmcommon.inc
index 819c0bd..febfeb0 100644
--- a/usbdrv/asmcommon.inc
+++ b/usbdrv/asmcommon.inc
@@ -103,8 +103,8 @@ sofError:
reti
handleData:
- lds token, usbCurrentTok;[18]
- tst token ;[20]
+ lds shift, usbCurrentTok;[18]
+ tst shift ;[20]
breq doReturn ;[21]
lds x2, usbRxLen ;[22]
tst x2 ;[24]
@@ -113,8 +113,11 @@ handleData:
; recognized if usbPoll() was called less frequently than once every 4 ms.
cpi cnt, 4 ;[26] zero sized data packets are status phase only -- ignore and ack
brmi sendAckAndReti ;[27] keep rx buffer clean -- we must not NAK next SETUP
+#if USB_CFG_CHECK_DATA_TOGGLING
+ sts usbCurrentDataToken, token ; store for checking by C code
+#endif
sts usbRxLen, cnt ;[28] store received data, swap buffers
- sts usbRxToken, token ;[30]
+ sts usbRxToken, shift ;[30]
lds x2, usbInputBufOffset;[32] swap buffers
ldi cnt, USB_BUFSIZE ;[34]
sub cnt, x2 ;[35]