Hardware Reference
In-Depth Information
tionen gesperrt. Als bTag wird 0x00 gemeldet, wenn vorher noch nie ein Transfer
gelaufen ist. Andernfalls wird das bTag des letzten Transfers übermittelt.
STATUS_TRANSFER_NOT_IN_PROGRESS
Für diesen Status kann es folgende Gründe geben:
1. Das bTag des laufenden Transfers stimmt nicht mit dem bTag des Requests über-
ein. In diesem Fall wird als bTag das Tag des laufenden Transfers zurückgemeldet.
2.EsistzwarkeinTransferimGange,aberderBulk-OUTEndpointistnichtleer.
Als bTag wird das Tag des letzten laufenden Transfers gemeldet.
In beiden vorstehenden Fällen wird der Transfer des Bulk-OUT Endpoints nicht
gesperrt.
;******************************************************************************
; USBTMC Request: INITIATE_ABORT_BULK_OUT
;******************************************************************************
; Reference: USBTMC Chapter 4.2.1.2
INITIATE_ABORT_BULK_OUT
movlw controlINlow+1
movwf FSR0L
movlw controlINhigh
movwf FSR0H
movff BULKOUT_TAG,POSTDEC0 ;second byte is the bTag of the transfer
; transfer in progress?
movlw 0x00
cpfseq BULKOUT_PROGRESS
bra IABO_TestTag
bra IABO_TestProgress
; tags matching?
IABO_TestTag
movlw BULKOUT_TAG
cpfseq wValueLOW ;the bTag value associated with the transfer to abort
bra IABO_NoProgress
bra IABO_Success
; endpoint empty?
IABO_TestProgress
movlw 0x00
cpfseq BULKOUT_CONTENT
bra
IABO_NoProgress
bra
IABO_Fail
IABO_Success
bsf UEP1,EPSTALL ;stall bulk endpoint
movlw 0x01 ;STATUS_SUCCESS
bra IABO_exit
IABO_NoProgress
movlw 0x81
;STATUS_TRANSFER_NOT_IN_PROGRESS
bra
IABO_exit
IABO_Fail
movlw 0x80
;STATUS_FAILED
Search WWH ::




Custom Search