Originalquelltexte unter Source hinzugefügt
Dieser Commit ist enthalten in:
Ursprung
715ddc4e8f
Commit
5adf4429d9
4719
CAD/bom/canusb4-iso.html
Normale Datei
4719
CAD/bom/canusb4-iso.html
Normale Datei
Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist
60
Source/CAN/CAN_USB4.HEX
Normale Datei
60
Source/CAN/CAN_USB4.HEX
Normale Datei
@ -0,0 +1,60 @@
|
|||||||
|
:020000040000FA
|
||||||
|
:06000000000017EF05F0FF
|
||||||
|
:0400080020EF04F0F1
|
||||||
|
:040018003EEF04F0C3
|
||||||
|
:10084000000077BE03D077BA01D006D06F88779AC0
|
||||||
|
:10085000779E769A779E11000F0177A009D0779046
|
||||||
|
:100860007798108776900E017F87768800011100B7
|
||||||
|
:1008700077980E017F97000176801100100071BEFD
|
||||||
|
:1008800003D081B070D0FBD76F500F0B0C6E72503D
|
||||||
|
:10089000F00B0C10726E0D0E126E0FEE61F010EE7A
|
||||||
|
:1008A00061F0EECFE6FF122EFCD7609E00EE61F005
|
||||||
|
:1008B00011EE00F03A0EE66E62B703D0530EE66E0C
|
||||||
|
:1008C00002D0580EE66EEE508DEC05F07EC0E6FFCD
|
||||||
|
:1008D0007FC0E6FFEE508DEC05F07EC0E6FF7FC0E6
|
||||||
|
:1008E000E6FF62B703D0E92AE92A0ED0EE508DEC7C
|
||||||
|
:1008F00005F07EC0E6FF7FC0E6FFEE508DEC05F010
|
||||||
|
:100900007EC0E6FF7FC0E6FFEECF89F089BD03D051
|
||||||
|
:100910004E0EE66E03D0520EE66E899D896701D0B9
|
||||||
|
:1009200009D0EE508DEC05F07EC0E6FF7FC0E6FFFB
|
||||||
|
:10093000892FF7D73B0EE66EE150136E11EE00F0F3
|
||||||
|
:10094000000E946E81B2FED7818A81A2FDD7E6CFD8
|
||||||
|
:1009500082FF00000000819A00000000132EF2D7F1
|
||||||
|
:10096000FF0E946E8CD7866BFF0E946E81A05CD0C8
|
||||||
|
:10097000818881B0FED7000081983A0E825C54E1F4
|
||||||
|
:1009800081A0FED7818881B0FED700008198530EE8
|
||||||
|
:10099000825C04E0580E825C03E046D0869701D06A
|
||||||
|
:1009A0008687886B20EE18F081A0FED7818881B001
|
||||||
|
:1009B000FED7000081983B0E825C03E082CFDEFF11
|
||||||
|
:1009C000F3D782CFDEFF20EE18F010EE6FF0DECF0F
|
||||||
|
:1009D0007CF0DECF7DF0A1EC05F0E66E4E0EDF5C24
|
||||||
|
:1009E00005E0520EDF5C01E0F2D78685D92AE12AC4
|
||||||
|
:1009F00086B702D0E12AE12A3B0EDF5C09E0DECFB8
|
||||||
|
:100A00007CF0DECF7DF0A1EC05F0E66E882BF4D70C
|
||||||
|
:100A1000885186B54009736F080E86B77013866BD0
|
||||||
|
:100A20000A0E146E7AEC05F081983FEF04F0D19035
|
||||||
|
:100A30000001F26A0F015D6B5C6B5F6B5E6B5B6963
|
||||||
|
:100A40000001200E926E0B0E936E816A8184819854
|
||||||
|
:100A5000819AFF0E946EE06A7F6A6F8EB00E726E9E
|
||||||
|
:100A6000728A0F01606A306B208D108D0E017D6BD4
|
||||||
|
:100A7000806B906BA06BB06BC06BD06B7F97030EDD
|
||||||
|
:100A8000436F9E0E446F030E456F0001200E706E83
|
||||||
|
:100A90000EEEF8F0EE6AE962FDD7719E719C776AFE
|
||||||
|
:100AA0006F6ABB6A9F6AA26AA06A776A756A880ED3
|
||||||
|
:100AB0006F6E0F01030E206F106F116B126B156BB1
|
||||||
|
:100AC00000016F6A030E6E6F230EA56E9F6AA26A05
|
||||||
|
:100AD000A06AF16AF06A9E6AA16A776AB10E786EBE
|
||||||
|
:100AE000B10E766E819C818E3FEF04F00F0110876E
|
||||||
|
:100AF000000112000F0120B7FED7000100EE6EF0DA
|
||||||
|
:100B00001FEE20F0EE50E66E7C0EE962FBD70F017F
|
||||||
|
:100B100020B7FED7208700011200816F81390F0BAB
|
||||||
|
:100B2000300F7E6F390E7E6502D0070E7E270F0EC6
|
||||||
|
:100B30008115300F7F6F390E7F6502D0070E7F273A
|
||||||
|
:100B40001200300E7C5F090E7C6502D0070E7C5FC0
|
||||||
|
:100B50007C51826F823B300E7D5F090E7D6502D035
|
||||||
|
:0A0B6000070E7D5F7D518211120027
|
||||||
|
:020000040030CA
|
||||||
|
:040000001513661C52
|
||||||
|
:020005008981EF
|
||||||
|
:060008000FC00FE00F40E5
|
||||||
|
:00000001FF
|
||||||
785
Source/CAN/CAN_USB4.asm
Normale Datei
785
Source/CAN/CAN_USB4.asm
Normale Datei
@ -0,0 +1,785 @@
|
|||||||
|
TITLE "Source for CAN-USB4 interface for CBUS"
|
||||||
|
; filename CAN_USB4.asm 15/09/14
|
||||||
|
;
|
||||||
|
; Uses 4 MHz resonator and PLL for 16 MHz clock
|
||||||
|
; This interface does not have a Node Number
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; The setup timer is TMR3. This should not be used for anything else
|
||||||
|
; CAN bit rate of 125 Kbits/sec
|
||||||
|
; Standard frame only
|
||||||
|
; Uses 'Gridconnect' protocol for USB
|
||||||
|
; Works with FTDI 245AM for now.
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
; added RUN LED switch on.
|
||||||
|
; no full diagnostics yet.
|
||||||
|
|
||||||
|
|
||||||
|
; Doesn't use interrupts - for speed.
|
||||||
|
; Working at full speed with minimum CAN frames (no data bytes)
|
||||||
|
; 390 uSec per frame
|
||||||
|
; PC gets all frames 08/05/08
|
||||||
|
; Mod so it sends response to RTR (FLiM compatibility)
|
||||||
|
; Fixed CAN_ID at 7E to avoid conflict with CAN_RS
|
||||||
|
; RTR response removed. Avoids possibility of buffer overflow
|
||||||
|
; Allows true sniffer capability for checking self enum. of other modules.
|
||||||
|
; FLiM should never have a CAN_ID of 7E
|
||||||
|
|
||||||
|
; This version is based on the CAN_USBm code but changed for the 25K80 and
|
||||||
|
; for use with the 14K50 as an altenative to Andrew's C code vrsion
|
||||||
|
; Incorporates ECAN overflow and busy mechanism as in the CAN_CAN
|
||||||
|
; Working with the 14K50 OK. 17/09/14
|
||||||
|
|
||||||
|
;
|
||||||
|
; Assembly options
|
||||||
|
LIST P=18F25K80,r=hex,N=75,C=120,T=ON
|
||||||
|
|
||||||
|
include "p18f25K80.inc"
|
||||||
|
|
||||||
|
;definitions Change these to suit hardware.
|
||||||
|
|
||||||
|
#DEFINE CDAV 5
|
||||||
|
#DEFINE UREQ 4
|
||||||
|
#DEFINE CREQ 1
|
||||||
|
#DEFINE UDAV 0
|
||||||
|
|
||||||
|
;set config registers
|
||||||
|
|
||||||
|
;config for 18F25K80
|
||||||
|
|
||||||
|
CONFIG FCMEN = OFF, FOSC = HS1, IESO = OFF, PLLCFG = ON
|
||||||
|
CONFIG PWRTEN = ON, BOREN = SBORDIS, BORV=0, SOSCSEL = DIG
|
||||||
|
CONFIG WDTEN = OFF, WDTPS = 128 ;watchdog 512 mSec
|
||||||
|
CONFIG MCLRE = ON, CANMX = PORTB
|
||||||
|
CONFIG BBSIZ = BB1K
|
||||||
|
|
||||||
|
CONFIG XINST = OFF,STVREN = ON,CP0 = OFF
|
||||||
|
CONFIG CP1 = OFF, CPB = OFF, CPD = OFF,WRT0 = OFF,WRT1 = OFF, WRTB = OFF
|
||||||
|
CONFIG WRTC = OFF,WRTD = OFF, EBTR0 = OFF, EBTR1 = OFF, EBTRB = OFF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; processor uses 4 MHz. Resonator
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;****************************************************************
|
||||||
|
; define RAM storage
|
||||||
|
|
||||||
|
CBLOCK 0 ;file registers - access bank
|
||||||
|
;interrupt stack for low priority
|
||||||
|
;hpint uses fast stack
|
||||||
|
W_tempL
|
||||||
|
St_tempL
|
||||||
|
Bsr_tempL
|
||||||
|
PCH_tempH ;save PCH in hpint
|
||||||
|
PCH_tempL ;save PCH in lpint (if used)
|
||||||
|
Fsr_temp0L
|
||||||
|
Fsr_temp0H
|
||||||
|
Fsr_temp1L
|
||||||
|
Fsr_temp1H
|
||||||
|
Fsr_temp2L
|
||||||
|
Fsr_hold
|
||||||
|
Fsr_holx
|
||||||
|
TempCANCON
|
||||||
|
TempCANSTAT
|
||||||
|
CanID_tmp ;temp for CAN Node ID
|
||||||
|
IDtemph ;used in ID shuffle
|
||||||
|
IDtempl
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Datmode ;flag for data waiting
|
||||||
|
Count ;counter for loading
|
||||||
|
Count1
|
||||||
|
Latcount ;latency counter
|
||||||
|
|
||||||
|
Temp ;temps
|
||||||
|
Temp1
|
||||||
|
;the above variables must be in access space (00 to 5F)
|
||||||
|
|
||||||
|
Buffer ;temp buffer in access bank for data
|
||||||
|
RXbuf ;:0x1C USB serial receive packet buffer
|
||||||
|
RXbuf1
|
||||||
|
RXbuf2
|
||||||
|
RXbuf3
|
||||||
|
RXbuf4
|
||||||
|
RXbuf5
|
||||||
|
RXbuf6
|
||||||
|
RXbuf7
|
||||||
|
RXbuf8
|
||||||
|
RXbuf9
|
||||||
|
RXbufA
|
||||||
|
RXbufB
|
||||||
|
RXbufC
|
||||||
|
RXbufD
|
||||||
|
RXbufE
|
||||||
|
RxbufF
|
||||||
|
RXbuf10
|
||||||
|
RXbuf11
|
||||||
|
RXbuf12
|
||||||
|
RXbuf13
|
||||||
|
RXbuf14
|
||||||
|
RXbuf15
|
||||||
|
RXbuf16
|
||||||
|
RXbuf17
|
||||||
|
RXbuf18
|
||||||
|
RXbuf19
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDC ;ends at 5F
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CBLOCK h'60' ;rest of bank 0
|
||||||
|
|
||||||
|
Rx0con ;start of receive packet 0
|
||||||
|
Rx0sidh
|
||||||
|
Rx0sidl
|
||||||
|
Rx0eidh
|
||||||
|
Rx0eidl
|
||||||
|
Rx0dlc
|
||||||
|
Rx0d0
|
||||||
|
Rx0d1
|
||||||
|
Rx0d2
|
||||||
|
Rx0d3
|
||||||
|
Rx0d4
|
||||||
|
Rx0d5
|
||||||
|
Rx0d6
|
||||||
|
Rx0d7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tx0con ;start of transmit frame 0
|
||||||
|
Tx0sidh
|
||||||
|
Tx0sidl
|
||||||
|
Tx0eidh
|
||||||
|
Tx0eidl
|
||||||
|
Tx0dlc
|
||||||
|
Tx0d0
|
||||||
|
Tx0d1
|
||||||
|
Tx0d2
|
||||||
|
Tx0d3
|
||||||
|
Tx0d4
|
||||||
|
Tx0d5
|
||||||
|
Tx0d6
|
||||||
|
Tx0d7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;add variables to suit
|
||||||
|
|
||||||
|
;****************************************************************
|
||||||
|
; used in ASCII to HEX and HEX to ASCII and decimal conversions
|
||||||
|
Abyte1 ;first ascii char of a hex byte for ascii input
|
||||||
|
Abyte2 ;second ascii char of a hex byte
|
||||||
|
Hbyte1 ;first ascii char of a hex byte for ascii output
|
||||||
|
Hbyte2
|
||||||
|
Atemp ;temp store
|
||||||
|
Htemp
|
||||||
|
Hexcon ;answer to ascii to hex conversion
|
||||||
|
;*************************************************************
|
||||||
|
; used in USB transmit and receive
|
||||||
|
Srbyte_n ;number of serial bytes received in packet
|
||||||
|
Stbyte_n ;number of serial bytes to send
|
||||||
|
TXmode ;state during serial send
|
||||||
|
RXmode ;state during serial receive
|
||||||
|
RXtemp ;temp store for received byte
|
||||||
|
RXnum ;number of chars in receive string
|
||||||
|
Datnum ;no. of data bytes in a received frame
|
||||||
|
|
||||||
|
;**************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENDC
|
||||||
|
|
||||||
|
CBLOCK 0x100
|
||||||
|
|
||||||
|
TXbuf ;USB transmit packet buffer to PC
|
||||||
|
TXbuf1
|
||||||
|
TXbuf2
|
||||||
|
TXbuf3
|
||||||
|
TXbuf4
|
||||||
|
TXbuf5
|
||||||
|
TXbuf6
|
||||||
|
TXbuf7
|
||||||
|
TXbuf8
|
||||||
|
TXbuf9
|
||||||
|
TXbuf10
|
||||||
|
TXbuf11
|
||||||
|
TXbuf12
|
||||||
|
TXbuf13
|
||||||
|
TXbuf14
|
||||||
|
TXbuf15
|
||||||
|
TXbuf16
|
||||||
|
TXbuf17
|
||||||
|
Txbuf18
|
||||||
|
TXbuf19
|
||||||
|
TXbuf20
|
||||||
|
TXbuf21
|
||||||
|
TXbuf22
|
||||||
|
TXbuf23
|
||||||
|
TXbuf24
|
||||||
|
TXbuf25
|
||||||
|
|
||||||
|
ENDC
|
||||||
|
|
||||||
|
;****************************************************************
|
||||||
|
;
|
||||||
|
; start of program code
|
||||||
|
|
||||||
|
ORG 0000h
|
||||||
|
nop ;for debug
|
||||||
|
goto setup
|
||||||
|
|
||||||
|
ORG 0008h
|
||||||
|
goto hpint ;high priority interrupt
|
||||||
|
|
||||||
|
ORG 0018h
|
||||||
|
goto lpint ;low priority interrupt
|
||||||
|
|
||||||
|
|
||||||
|
;*******************************************************************
|
||||||
|
|
||||||
|
ORG 0840h ;start of program
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; high priority interrupt.
|
||||||
|
|
||||||
|
hpint nop
|
||||||
|
btfsc PIR5,IRXIF ;a bus error?
|
||||||
|
bra err
|
||||||
|
btfsc PIR5,ERRIF
|
||||||
|
bra err
|
||||||
|
bra no_err
|
||||||
|
err
|
||||||
|
bsf CANCON,ABAT ;abort transmission
|
||||||
|
bcf PIR5,ERRIF ;clear interrupts
|
||||||
|
bcf PIR5,IRXIF
|
||||||
|
bcf PIE5,ERRIF
|
||||||
|
|
||||||
|
bcf PIR5,IRXIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
retfie 1
|
||||||
|
|
||||||
|
no_err
|
||||||
|
movlb .15
|
||||||
|
btfss PIR5,FIFOWMIF,0
|
||||||
|
bra no_fifo
|
||||||
|
bcf PIR5,FIFOWMIF,0 ;clear FIFO flag
|
||||||
|
bcf PIR5,4,0 ;clear busy frame flag
|
||||||
|
bsf TXB1CON,TXREQ ;send busy frame
|
||||||
|
bcf PIE5,FIFOWMIE,0 ;disable FIFO interrupt
|
||||||
|
movlb .14
|
||||||
|
bsf TXBIE,TXB1IE ;enable IRQ for busy frame sent
|
||||||
|
bsf PIE5,4,0 ;enable IRQ for busy frame sent
|
||||||
|
movlb 0
|
||||||
|
retfie 1
|
||||||
|
|
||||||
|
no_fifo bcf PIR5,4,0 ;clear busy frame flag
|
||||||
|
movlb .14
|
||||||
|
bcf TXBIE,TXB1IE ;no busy frame IRQ
|
||||||
|
movlb 0
|
||||||
|
bsf PIE5,FIFOWMIE ;wait for next FIFO IRQ
|
||||||
|
|
||||||
|
retfie 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;**************************************************************
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; low priority interrupt. (if used)
|
||||||
|
;
|
||||||
|
|
||||||
|
lpint retfie
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;*********************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main btfsc COMSTAT,7 ;fast loop for CAN detection
|
||||||
|
bra incan
|
||||||
|
btfsc PORTB,UDAV
|
||||||
|
bra inusb
|
||||||
|
bra main
|
||||||
|
|
||||||
|
; move incoming CAN frame to serial output buffer
|
||||||
|
|
||||||
|
incan movf CANCON,W ;sort out ECAN buffer
|
||||||
|
andlw B'00001111'
|
||||||
|
movwf TempCANCON
|
||||||
|
movf ECANCON,W
|
||||||
|
andlw B'11110000'
|
||||||
|
iorwf TempCANCON,W
|
||||||
|
movwf ECANCON
|
||||||
|
movlw .13
|
||||||
|
movwf Count
|
||||||
|
lfsr FSR0,RXB0SIDH ; ;start of CAN frame in RB0
|
||||||
|
lfsr FSR1,Rx0sidh
|
||||||
|
incan1 movff POSTINC0,POSTINC1 ;save ECAN buffer
|
||||||
|
decfsz Count
|
||||||
|
bra incan1
|
||||||
|
bcf RXB0CON,RXFUL
|
||||||
|
lfsr FSR0,Rx0sidh
|
||||||
|
lfsr FSR1,TXbuf ;start of serial string for PC
|
||||||
|
movlw ":" ;serial start
|
||||||
|
movwf POSTINC1
|
||||||
|
btfsc Rx0sidl,3 ;is it extended
|
||||||
|
bra exide
|
||||||
|
movlw "S" ;standard frames only
|
||||||
|
movwf POSTINC1
|
||||||
|
bra serload
|
||||||
|
exide movlw "X"
|
||||||
|
movwf POSTINC1
|
||||||
|
|
||||||
|
serload movf POSTINC0,W ;get byte
|
||||||
|
call hexasc ;convert to acsii
|
||||||
|
movff Hbyte1,POSTINC1
|
||||||
|
movff Hbyte2,POSTINC1
|
||||||
|
movf POSTINC0,W ;get byte
|
||||||
|
call hexasc ;convert to acsii
|
||||||
|
movff Hbyte1,POSTINC1
|
||||||
|
movff Hbyte2,POSTINC1
|
||||||
|
btfsc Rx0sidl,3 ;is it extended
|
||||||
|
bra exload
|
||||||
|
incf FSR0L ;skip the extended ID bytes
|
||||||
|
incf FSR0L
|
||||||
|
bra serlo1
|
||||||
|
exload movf POSTINC0,W ;get byte
|
||||||
|
call hexasc ;convert to acsii
|
||||||
|
movff Hbyte1,POSTINC1
|
||||||
|
movff Hbyte2,POSTINC1
|
||||||
|
movf POSTINC0,W ;get byte
|
||||||
|
call hexasc ;convert to acsii
|
||||||
|
movff Hbyte1,POSTINC1
|
||||||
|
movff Hbyte2,POSTINC1
|
||||||
|
serlo1 movff POSTINC0,Datnum ;get dlc byte
|
||||||
|
btfsc Datnum,6 ;is it an RTR
|
||||||
|
bra rtrset
|
||||||
|
movlw "N"
|
||||||
|
movwf POSTINC1
|
||||||
|
bra datbyte
|
||||||
|
rtrset movlw "R"
|
||||||
|
movwf POSTINC1
|
||||||
|
bcf Datnum,6 ;Datnum now has just the number
|
||||||
|
datbyte tstfsz Datnum
|
||||||
|
bra datload
|
||||||
|
bra back2
|
||||||
|
datload movf POSTINC0,W ;get byte
|
||||||
|
call hexasc ;convert to acsii
|
||||||
|
movff Hbyte1,POSTINC1
|
||||||
|
movff Hbyte2,POSTINC1
|
||||||
|
decfsz Datnum
|
||||||
|
bra datload
|
||||||
|
back2 movlw ";"
|
||||||
|
movwf POSTINC1
|
||||||
|
movf FSR1L,W ;get last
|
||||||
|
movwf Count1 ;number of bytes to send
|
||||||
|
|
||||||
|
|
||||||
|
lfsr FSR1,TXbuf
|
||||||
|
|
||||||
|
|
||||||
|
;set to output
|
||||||
|
|
||||||
|
|
||||||
|
usbwr movlw B'00000000'
|
||||||
|
movwf TRISC
|
||||||
|
|
||||||
|
|
||||||
|
notwr1 btfsc PORTB,CREQ ;CREQ must be lo to write to USB initially
|
||||||
|
bra notwr1
|
||||||
|
|
||||||
|
|
||||||
|
notwr bsf PORTB,CDAV
|
||||||
|
btfss PORTB,CREQ ;CREQ must be hi to write to USB
|
||||||
|
bra notwr
|
||||||
|
movff POSTINC1,PORTC ;output byte
|
||||||
|
nop ;settling time
|
||||||
|
nop
|
||||||
|
|
||||||
|
bcf PORTB,CDAV ;flag to USB
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
|
||||||
|
decfsz Count1
|
||||||
|
bra notwr1
|
||||||
|
movlw B'11111111'
|
||||||
|
movwf TRISC ;back to inputs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
endwr bra main
|
||||||
|
|
||||||
|
inusb clrf RXmode ;clear receive mode flags
|
||||||
|
movlw B'11111111'
|
||||||
|
movwf TRISC ;set to input
|
||||||
|
btfss PORTB,UDAV ;any USB data?
|
||||||
|
bra notin ;loop
|
||||||
|
|
||||||
|
bsf PORTB,UREQ ;can take
|
||||||
|
inusb1 btfsc PORTB,UDAV ;is data
|
||||||
|
bra inusb1
|
||||||
|
nop
|
||||||
|
bcf PORTB,UREQ
|
||||||
|
|
||||||
|
movlw ":"
|
||||||
|
subwf PORTC,W
|
||||||
|
bnz notin ;not start of frame
|
||||||
|
|
||||||
|
inusb2 btfss PORTB,UDAV ;is data
|
||||||
|
bra inusb2
|
||||||
|
bsf PORTB,UREQ
|
||||||
|
inusb3 btfsc PORTB,UDAV
|
||||||
|
bra inusb3
|
||||||
|
nop
|
||||||
|
bcf PORTB,UREQ
|
||||||
|
|
||||||
|
movlw "S" ;is it S (standard) or X (extended)
|
||||||
|
subwf PORTC,W
|
||||||
|
bz instd
|
||||||
|
movlw "X"
|
||||||
|
subwf PORTC,W
|
||||||
|
bz inext
|
||||||
|
bra notin ;neither so abort
|
||||||
|
instd bcf RXmode,3 ;flag standard
|
||||||
|
bra instart
|
||||||
|
inext bsf RXmode,3 ;flag extended
|
||||||
|
instart clrf RXnum ;byte counter
|
||||||
|
lfsr FSR2,RXbuf ;set to start
|
||||||
|
|
||||||
|
|
||||||
|
inloop btfss PORTB,UDAV ;read all USB till end
|
||||||
|
bra inloop
|
||||||
|
bsf PORTB,UREQ ;can take
|
||||||
|
inloop1 btfsc PORTB,UDAV ;data?
|
||||||
|
bra inloop1
|
||||||
|
nop
|
||||||
|
bcf PORTB,UREQ
|
||||||
|
|
||||||
|
|
||||||
|
movlw ";" ;end?
|
||||||
|
subwf PORTC,W
|
||||||
|
bz lastin
|
||||||
|
movff PORTC,POSTINC2 ;bug fix
|
||||||
|
bra inloop
|
||||||
|
|
||||||
|
lastin movff PORTC,POSTINC2
|
||||||
|
|
||||||
|
|
||||||
|
lfsr FSR2,RXbuf ;point to serial receive buffer
|
||||||
|
lfsr FSR1,Tx0sidh ;point to CAN TX buffer 1 - lowest priority
|
||||||
|
txload movff POSTINC2,Abyte1
|
||||||
|
movff POSTINC2,Abyte2
|
||||||
|
call aschex
|
||||||
|
movwf POSTINC1 ;put in CAN TX buffer
|
||||||
|
movlw "N"
|
||||||
|
subwf INDF2,W
|
||||||
|
bz txload1
|
||||||
|
movlw "R"
|
||||||
|
subwf INDF2,W
|
||||||
|
bz txload5
|
||||||
|
bra txload
|
||||||
|
txload5 bsf RXmode,2 ;flag R
|
||||||
|
txload1 incf FSR2L ;miss N or R
|
||||||
|
incf FSR1L ;miss dlc
|
||||||
|
btfsc RXmode,3 ;is it ext
|
||||||
|
bra txload2
|
||||||
|
incf FSR1L ;miss out EIDH and EIDL if not extended
|
||||||
|
incf FSR1L
|
||||||
|
|
||||||
|
txload2 movlw ";"
|
||||||
|
subwf INDF2,W
|
||||||
|
bz txdone
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
txload4 movff POSTINC2,Abyte1
|
||||||
|
movff POSTINC2,Abyte2
|
||||||
|
call aschex
|
||||||
|
movwf POSTINC1 ;put in CAN TX buffer
|
||||||
|
incf RXnum,F
|
||||||
|
bra txload2
|
||||||
|
txdone movf RXnum,W ;get number of data bytes
|
||||||
|
btfsc RXmode,2 ;is it a RTR
|
||||||
|
iorlw B'01000000' ;set RTR bit
|
||||||
|
movwf Tx0dlc
|
||||||
|
movlw B'00001000'
|
||||||
|
btfsc RXmode,3 ;extended?
|
||||||
|
iorwf Tx0sidl,F ;add extended bit
|
||||||
|
clrf RXmode ;ready for next
|
||||||
|
movlw .10
|
||||||
|
movwf Latcount ;ten tries at low priority
|
||||||
|
call sendTX0
|
||||||
|
|
||||||
|
notin bcf PORTB,UREQ ;clear
|
||||||
|
|
||||||
|
goto main
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;***************************************************************************
|
||||||
|
; main setup routine
|
||||||
|
;*************************************************************************
|
||||||
|
|
||||||
|
setup bcf WDTCON,SWDTEN ;WDT off during reset
|
||||||
|
movlb 0
|
||||||
|
clrf INTCON ;no interrupts yet
|
||||||
|
|
||||||
|
movlb .15
|
||||||
|
|
||||||
|
clrf ANCON0 ;disable A/D
|
||||||
|
clrf ANCON1
|
||||||
|
clrf CM1CON
|
||||||
|
clrf CM2CON
|
||||||
|
setf WPUB ;pullups set
|
||||||
|
movlb 0
|
||||||
|
|
||||||
|
|
||||||
|
;port settings will be hardware dependent. RB2 and RB3 are for CAN.
|
||||||
|
;set S_PORT and S_BIT to correspond to port used for setup.
|
||||||
|
;rest are hardware options
|
||||||
|
|
||||||
|
|
||||||
|
movlw B'00100000' ;Port A outputs except reset pin
|
||||||
|
movwf TRISA ;
|
||||||
|
movlw B'00001011' ;RB0 is UDAV, RB1 is CREQ, RB2 = CANTX, RB3 = CANRX, RB4 = UREQ, RB5 = CDAV
|
||||||
|
;RB6,7 for debug and ICSP and diagnostic LEDs
|
||||||
|
movwf TRISB
|
||||||
|
clrf PORTB
|
||||||
|
bsf PORTB,2 ;CAN recessive
|
||||||
|
bcf PORTB,4 ;USB write strobe
|
||||||
|
bcf PORTB,5 ;USB read strobe
|
||||||
|
movlw B'11111111' ;Port C USB interface
|
||||||
|
movwf TRISC
|
||||||
|
|
||||||
|
; next segment is essential.
|
||||||
|
|
||||||
|
clrf BSR ;set to bank 0
|
||||||
|
clrf EECON1 ;no accesses to program memory
|
||||||
|
bsf CANCON,7 ;CAN to config mode
|
||||||
|
movlw B'10110000'
|
||||||
|
movwf ECANCON ;CAN mode 2
|
||||||
|
bsf ECANCON,5
|
||||||
|
|
||||||
|
movlb .15
|
||||||
|
|
||||||
|
clrf RXB0CON
|
||||||
|
clrf RXB1CON
|
||||||
|
bsf TXB0CON,TXABT ;abort any pending messages
|
||||||
|
bsf TXB1CON,TXABT
|
||||||
|
|
||||||
|
|
||||||
|
movlb .14
|
||||||
|
|
||||||
|
clrf BSEL0 ;8 frame FIFO
|
||||||
|
clrf B0CON
|
||||||
|
clrf B1CON
|
||||||
|
clrf B2CON
|
||||||
|
clrf B3CON
|
||||||
|
clrf B4CON
|
||||||
|
clrf B5CON
|
||||||
|
bcf TXBIE,TXB1IE ;no interrupt on busy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
movlw B'00000011' ;set CAN bit rate at 125000 for now. 4 MHz
|
||||||
|
movwf BRGCON1
|
||||||
|
movlw B'10011110' ;set phase 1 etc
|
||||||
|
movwf BRGCON2
|
||||||
|
movlw B'00000011' ;set phase 2 etc
|
||||||
|
movwf BRGCON3
|
||||||
|
movlb 0
|
||||||
|
|
||||||
|
movlw B'00100000'
|
||||||
|
movwf CIOCON ;CAN to high when off
|
||||||
|
|
||||||
|
|
||||||
|
mskload lfsr FSR0,RXM0SIDH ;Clear masks, point to start
|
||||||
|
mskloop clrf POSTINC0
|
||||||
|
cpfseq FSR0L
|
||||||
|
bra mskloop
|
||||||
|
|
||||||
|
bcf COMSTAT,RXB0OVFL ;clear overflow flags if set
|
||||||
|
bcf COMSTAT,RXB1OVFL
|
||||||
|
clrf PIR5 ;clear all flags
|
||||||
|
clrf CANCON ;out of CAN setup mode
|
||||||
|
clrf CCP1CON
|
||||||
|
|
||||||
|
clrf IPR1 ;all peripheral interrupts are low priority
|
||||||
|
clrf IPR2
|
||||||
|
clrf PIE2
|
||||||
|
clrf PIR5 ;can FLAGS
|
||||||
|
clrf EEADRH ;clear EEPROM Hi byte
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
movlw B'10001000' ;Config TX1 buffer for busy frame
|
||||||
|
movwf CANCON
|
||||||
|
movlb .15 ;buffer in bank 15
|
||||||
|
movlw B'00000011'
|
||||||
|
movwf TXB0CON ;no send yet
|
||||||
|
movwf TXB1CON
|
||||||
|
clrf TXB1SIDH
|
||||||
|
clrf TXB1SIDL
|
||||||
|
clrf TXB1DLC
|
||||||
|
movlb 0 ;back to bank 0
|
||||||
|
clrf CANCON ;out of CAN setup mode
|
||||||
|
|
||||||
|
movlw 3
|
||||||
|
movwf Tx0con ;set transmit priority
|
||||||
|
|
||||||
|
movlw B'00100011'
|
||||||
|
movwf IPR3 ;high priority CAN RX and Tx error interrupts(for now)
|
||||||
|
clrf IPR1 ;all peripheral interrupts are low priority
|
||||||
|
clrf IPR2
|
||||||
|
clrf PIE2
|
||||||
|
|
||||||
|
clrf INTCON2 ;
|
||||||
|
clrf INTCON3 ;
|
||||||
|
|
||||||
|
clrf PIR1
|
||||||
|
clrf PIR2
|
||||||
|
|
||||||
|
clrf PIR5
|
||||||
|
movlw B'10110001'
|
||||||
|
movwf IPR5 ;FIFOHWM and TXB are high priority
|
||||||
|
movlw B'10110001'
|
||||||
|
movwf PIE5 ;FIFOHWM IRQ, error interrupts and TX complete only
|
||||||
|
|
||||||
|
bcf PORTB,6
|
||||||
|
bsf PORTB,7 ;put run LED on.
|
||||||
|
goto main
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;****************************************************************************
|
||||||
|
; start of subroutines
|
||||||
|
|
||||||
|
;*****************************************************************************
|
||||||
|
; send a busy frame - already preloaded in TX0.
|
||||||
|
|
||||||
|
sendTX1 movlb .15 ;set to bank 1
|
||||||
|
bsf TXB1CON,TXREQ ;send immediately
|
||||||
|
movlb 0 ;back to bank 0
|
||||||
|
return
|
||||||
|
;******************************************************************
|
||||||
|
|
||||||
|
; Send contents of Tx1 buffer via CAN TXB1
|
||||||
|
|
||||||
|
sendTX0 movlb .15 ;check for buffer access
|
||||||
|
tx_loop btfsc TXB0CON,TXREQ
|
||||||
|
bra tx_loop
|
||||||
|
movlb 0
|
||||||
|
|
||||||
|
lfsr FSR0,Tx0con
|
||||||
|
lfsr FSR1,TXB0CON
|
||||||
|
ldTX0 movf POSTINC0,W
|
||||||
|
movwf POSTINC1 ;load TXB1
|
||||||
|
movlw Tx0d7+1
|
||||||
|
cpfseq FSR0L
|
||||||
|
bra ldTX0
|
||||||
|
|
||||||
|
|
||||||
|
movlb .15 ;bank 15
|
||||||
|
tx0test btfsc TXB0CON,TXREQ ;test if clear to send
|
||||||
|
bra tx0test
|
||||||
|
bsf TXB0CON,TXREQ ;OK so send
|
||||||
|
|
||||||
|
tx1done movlb 0 ;bank 0
|
||||||
|
return ;successful send
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
; converts one hex byte to two ascii bytes
|
||||||
|
|
||||||
|
hexasc movwf Htemp ;save hex. comes in W
|
||||||
|
swapf Htemp,W
|
||||||
|
andlw B'00001111' ;mask
|
||||||
|
addlw 30h
|
||||||
|
movwf Hbyte1
|
||||||
|
movlw 39h
|
||||||
|
cpfsgt Hbyte1
|
||||||
|
bra nxtnib
|
||||||
|
movlw 7
|
||||||
|
addwf Hbyte1,F
|
||||||
|
nxtnib movlw B'00001111'
|
||||||
|
andwf Htemp,W
|
||||||
|
addlw 30h
|
||||||
|
movwf Hbyte2
|
||||||
|
movlw 39h
|
||||||
|
cpfsgt Hbyte2
|
||||||
|
bra ascend
|
||||||
|
movlw 7
|
||||||
|
addwf Hbyte2,F
|
||||||
|
ascend return ;Hbyte1 has high nibble, Hbyte2 has low nibble
|
||||||
|
|
||||||
|
|
||||||
|
;****************************************************************************
|
||||||
|
; converts two ascii bytes to one hex byte.
|
||||||
|
; for consistency, ascii hi byte in Abyte1, ascii low byte in Abyte2
|
||||||
|
; answer in Hexcon
|
||||||
|
|
||||||
|
aschex movlw 30h
|
||||||
|
subwf Abyte1,F
|
||||||
|
movlw 9
|
||||||
|
cpfsgt Abyte1
|
||||||
|
bra hinib
|
||||||
|
movlw 7
|
||||||
|
subwf Abyte1,F
|
||||||
|
hinib movf Abyte1,W
|
||||||
|
movwf Hexcon
|
||||||
|
swapf Hexcon,F
|
||||||
|
movlw 30h
|
||||||
|
subwf Abyte2,F
|
||||||
|
movlw 9
|
||||||
|
cpfsgt Abyte2
|
||||||
|
bra hexend
|
||||||
|
movlw 7
|
||||||
|
subwf Abyte2,F
|
||||||
|
hexend movf Abyte2,W
|
||||||
|
iorwf Hexcon,W
|
||||||
|
return
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
;************************************************************************
|
||||||
|
|
||||||
|
end
|
||||||
113
Source/USB/HardwareProfile.h
Normale Datei
113
Source/USB/HardwareProfile.h
Normale Datei
@ -0,0 +1,113 @@
|
|||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
; PICFT245
|
||||||
|
;
|
||||||
|
; FTDI FT245 replacement in a POC18F14K50 (C) SPROG DCC 2012
|
||||||
|
; web: http://www.sprog-dcc.co.uk
|
||||||
|
; e-mail: sprog@sprog-dcc.co.uk
|
||||||
|
;-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef HARDWARE_PROFILE_H
|
||||||
|
#define HARDWARE_PROFILE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
18F14K50 MERG CAN USB 4 pinout
|
||||||
|
|
||||||
|
|----------------------------|
|
||||||
|
Power |1 Vdd VSS 20| Power
|
||||||
|
Xtal |2 RA5/OSC1 D+/RA0 19| USB
|
||||||
|
Xtal |3 RA4/OSC2 D-/RA1 18| USB
|
||||||
|
MCLR |4 RA3/MCLR VUSB 17| USB
|
||||||
|
D5 |5 RC5/CCP1 AN4/RC0 16| D0
|
||||||
|
D4 |6 RC4/P1B AN5/RC1 15| D1
|
||||||
|
D3 |7 RC3/AN7 AN6/RC2 14| D2
|
||||||
|
D6 |8 RC6/AN8 AN10/RB4 13| UDAV
|
||||||
|
D7 |9 RC7/AN9 RX/AN11/RB5 12| CREQ
|
||||||
|
CDAV |10 RB7/TX RB6 11| UREQ
|
||||||
|
|----------------------------|
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Port C
|
||||||
|
#define DATA_PORT PORTC
|
||||||
|
#define DATA_PORTbits PORTCbits
|
||||||
|
|
||||||
|
// Default to inputs
|
||||||
|
#define PORTC_DDR 0b11111111
|
||||||
|
#define PORTC_INIT 0b00000000
|
||||||
|
|
||||||
|
//
|
||||||
|
// Port B
|
||||||
|
//
|
||||||
|
#define UDAV RB4 //
|
||||||
|
#define CREQ RB5 //
|
||||||
|
#define UREQ RB6 //
|
||||||
|
#define CDAV RB7 //
|
||||||
|
|
||||||
|
//
|
||||||
|
#define PORTB_DDR 0b11000000
|
||||||
|
#define PORTB_INIT 0b00000000
|
||||||
|
|
||||||
|
//
|
||||||
|
// Port A
|
||||||
|
//
|
||||||
|
// USB D+ RA0 // reserved
|
||||||
|
// USB D- RA1 // reserved
|
||||||
|
// [VUSB] RA2 // reserved
|
||||||
|
// MCLR RA3 // reserved
|
||||||
|
// OSC2 RA4 // reserved
|
||||||
|
// OSC1 RA5 // reserved
|
||||||
|
|
||||||
|
#define PORTA_DDR 0xFF
|
||||||
|
#define PORTA_INIT 0x00
|
||||||
|
|
||||||
|
//
|
||||||
|
// From low pin count hardware profile
|
||||||
|
//
|
||||||
|
/*******************************************************************/
|
||||||
|
/******** USB stack hardware selection options *********************/
|
||||||
|
/*******************************************************************/
|
||||||
|
//This section is the set of definitions required by the MCHPFSUSB
|
||||||
|
// framework. These definitions tell the firmware what mode it is
|
||||||
|
// running in, and where it can find the results to some information
|
||||||
|
// that the stack needs.
|
||||||
|
//These definitions are required by every application developed with
|
||||||
|
// this revision of the MCHPFSUSB framework. Please review each
|
||||||
|
// option carefully and determine which options are desired/required
|
||||||
|
// for your application.
|
||||||
|
|
||||||
|
#define self_power 1
|
||||||
|
|
||||||
|
#define USB_BUS_SENSE 1
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/******** Application specific definitions *************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
/** Board definition ***********************************************/
|
||||||
|
//These defintions will tell the main() function which board is
|
||||||
|
// currently selected. This will allow the application to add
|
||||||
|
// the correct configuration bits as wells use the correct
|
||||||
|
// initialization functions for the board. These defitions are only
|
||||||
|
// required in the stack provided demos. They are not required in
|
||||||
|
// final application design.
|
||||||
|
|
||||||
|
#define CLOCK_FREQ 48000000
|
||||||
|
#define GetSystemClock() CLOCK_FREQ
|
||||||
|
|
||||||
|
/** LED ************************************************************/
|
||||||
|
#define mLED_1
|
||||||
|
#define mLED_2
|
||||||
|
|
||||||
|
#define mGetLED_1()
|
||||||
|
#define mGetLED_2()
|
||||||
|
|
||||||
|
#define mLED_1_On()
|
||||||
|
#define mLED_2_On()
|
||||||
|
|
||||||
|
#define mLED_1_Off()
|
||||||
|
#define mLED_2_Off()
|
||||||
|
|
||||||
|
#define mLED_1_Toggle()
|
||||||
|
#define mLED_2_Toggle()
|
||||||
|
|
||||||
|
#endif //HARDWARE_PROFILE_H
|
||||||
1055
Source/USB/USB2.9i_cdc/USB/CDC Device Driver/usb_function_cdc.c
Normale Datei
1055
Source/USB/USB2.9i_cdc/USB/CDC Device Driver/usb_function_cdc.c
Normale Datei
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
3134
Source/USB/USB2.9i_cdc/USB/usb_device.c
Normale Datei
3134
Source/USB/USB2.9i_cdc/USB/usb_device.c
Normale Datei
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
490
Source/USB/USB2.9i_cdc/USB/usb_device_local.h
Normale Datei
490
Source/USB/USB2.9i_cdc/USB/usb_device_local.h
Normale Datei
@ -0,0 +1,490 @@
|
|||||||
|
/********************************************************************
|
||||||
|
File Information:
|
||||||
|
FileName: usb_device_local.h
|
||||||
|
Dependencies: See INCLUDES section
|
||||||
|
Processor: PIC18,PIC24, PIC32 and dsPIC33E USB Microcontrollers
|
||||||
|
Hardware: The code is natively intended to be used on the following
|
||||||
|
hardware platforms: PICDEM™ FS USB Demo Board,
|
||||||
|
PIC18F87J50 FS USB Plug-In Module, or
|
||||||
|
Explorer 16 + compatible USB PIM. The firmware may be
|
||||||
|
modified for use on other USB platforms by editing the
|
||||||
|
HardwareProfile.h file.
|
||||||
|
Complier: Microchip C18 (for PIC18),C30 (for PIC24 and dsPIC33E)
|
||||||
|
and C32 (for PIC32)
|
||||||
|
Company: Microchip Technology, Inc.
|
||||||
|
|
||||||
|
Software License Agreement:
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the “Company”) for its PIC® Microcontroller is intended and
|
||||||
|
supplied to you, the Company’s customer, for use solely and
|
||||||
|
exclusively on Microchip PIC Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file contains functions, macros, definitions, variables,
|
||||||
|
datatypes, etc. that are required for usage with the MCHPFSUSB device
|
||||||
|
stack. This file should be included in projects that use the device stack.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
USB Device Stack File
|
||||||
|
|
||||||
|
This file contains functions, macros, definitions, variables,
|
||||||
|
datatypes, etc. that are required for usage with the MCHPFSUSB device
|
||||||
|
stack. This file should be included in projects that use the device stack.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
..\\..\\MicrochipInclude
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
|
||||||
|
********************************************************************
|
||||||
|
File Description:
|
||||||
|
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---- -----------
|
||||||
|
2.8 Initial revision. Contents extracted from the previous usb_device.c
|
||||||
|
file, so as to make the usb_device.c file less cluttered.
|
||||||
|
Fixed BD() and EP() macro computation error, when running in
|
||||||
|
USB_PING_PONG__EP0_OUT_ONLY mode.
|
||||||
|
2.9 No functional change. Fixed spelling typo in the name of
|
||||||
|
"USB_TRANSFER_COMPLETE_HANDLER()"
|
||||||
|
********************************************************************/
|
||||||
|
#include "usb_config.h"
|
||||||
|
|
||||||
|
/* Short Packet States - Used by Control Transfer Read - CTRL_TRF_TX */
|
||||||
|
#define SHORT_PKT_NOT_USED 0
|
||||||
|
#define SHORT_PKT_PENDING 1
|
||||||
|
#define SHORT_PKT_SENT 2
|
||||||
|
|
||||||
|
/* Control Transfer States */
|
||||||
|
#define WAIT_SETUP 0
|
||||||
|
#define CTRL_TRF_TX 1
|
||||||
|
#define CTRL_TRF_RX 2
|
||||||
|
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char ping_pong_state :1;
|
||||||
|
unsigned char transfer_terminated :1;
|
||||||
|
} bits;
|
||||||
|
BYTE Val;
|
||||||
|
} EP_STATUS;
|
||||||
|
|
||||||
|
#if (USB_PING_PONG_MODE == USB_PING_PONG__NO_PING_PONG)
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0000 // Used in USB Device Mode only
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0000 // Used in USB Device Mode only
|
||||||
|
#define USB_NEXT_PING_PONG 0x0000 // Used in USB Device Mode only
|
||||||
|
#define EP0_OUT_EVEN 0 // Used in USB Device Mode only
|
||||||
|
#define EP0_OUT_ODD 0 // Used in USB Device Mode only
|
||||||
|
#define EP0_IN_EVEN 1 // Used in USB Device Mode only
|
||||||
|
#define EP0_IN_ODD 1 // Used in USB Device Mode only
|
||||||
|
#define EP1_OUT_EVEN 2 // Used in USB Device Mode only
|
||||||
|
#define EP1_OUT_ODD 2 // Used in USB Device Mode only
|
||||||
|
#define EP1_IN_EVEN 3 // Used in USB Device Mode only
|
||||||
|
#define EP1_IN_ODD 3 // Used in USB Device Mode only
|
||||||
|
#define EP2_OUT_EVEN 4 // Used in USB Device Mode only
|
||||||
|
#define EP2_OUT_ODD 4 // Used in USB Device Mode only
|
||||||
|
#define EP2_IN_EVEN 5 // Used in USB Device Mode only
|
||||||
|
#define EP2_IN_ODD 5 // Used in USB Device Mode only
|
||||||
|
#define EP3_OUT_EVEN 6 // Used in USB Device Mode only
|
||||||
|
#define EP3_OUT_ODD 6 // Used in USB Device Mode only
|
||||||
|
#define EP3_IN_EVEN 7 // Used in USB Device Mode only
|
||||||
|
#define EP3_IN_ODD 7 // Used in USB Device Mode only
|
||||||
|
#define EP4_OUT_EVEN 8 // Used in USB Device Mode only
|
||||||
|
#define EP4_OUT_ODD 8 // Used in USB Device Mode only
|
||||||
|
#define EP4_IN_EVEN 9 // Used in USB Device Mode only
|
||||||
|
#define EP4_IN_ODD 9 // Used in USB Device Mode only
|
||||||
|
#define EP5_OUT_EVEN 10 // Used in USB Device Mode only
|
||||||
|
#define EP5_OUT_ODD 10 // Used in USB Device Mode only
|
||||||
|
#define EP5_IN_EVEN 11 // Used in USB Device Mode only
|
||||||
|
#define EP5_IN_ODD 11 // Used in USB Device Mode only
|
||||||
|
#define EP6_OUT_EVEN 12 // Used in USB Device Mode only
|
||||||
|
#define EP6_OUT_ODD 12 // Used in USB Device Mode only
|
||||||
|
#define EP6_IN_EVEN 13 // Used in USB Device Mode only
|
||||||
|
#define EP6_IN_ODD 13 // Used in USB Device Mode only
|
||||||
|
#define EP7_OUT_EVEN 14 // Used in USB Device Mode only
|
||||||
|
#define EP7_OUT_ODD 14 // Used in USB Device Mode only
|
||||||
|
#define EP7_IN_EVEN 15 // Used in USB Device Mode only
|
||||||
|
#define EP7_IN_ODD 15 // Used in USB Device Mode only
|
||||||
|
#define EP8_OUT_EVEN 16 // Used in USB Device Mode only
|
||||||
|
#define EP8_OUT_ODD 16 // Used in USB Device Mode only
|
||||||
|
#define EP8_IN_EVEN 17 // Used in USB Device Mode only
|
||||||
|
#define EP8_IN_ODD 17 // Used in USB Device Mode only
|
||||||
|
#define EP9_OUT_EVEN 18 // Used in USB Device Mode only
|
||||||
|
#define EP9_OUT_ODD 18 // Used in USB Device Mode only
|
||||||
|
#define EP9_IN_EVEN 19 // Used in USB Device Mode only
|
||||||
|
#define EP9_IN_ODD 19 // Used in USB Device Mode only
|
||||||
|
#define EP10_OUT_EVEN 20 // Used in USB Device Mode only
|
||||||
|
#define EP10_OUT_ODD 20 // Used in USB Device Mode only
|
||||||
|
#define EP10_IN_EVEN 21 // Used in USB Device Mode only
|
||||||
|
#define EP10_IN_ODD 21 // Used in USB Device Mode only
|
||||||
|
#define EP11_OUT_EVEN 22 // Used in USB Device Mode only
|
||||||
|
#define EP11_OUT_ODD 22 // Used in USB Device Mode only
|
||||||
|
#define EP11_IN_EVEN 23 // Used in USB Device Mode only
|
||||||
|
#define EP11_IN_ODD 23 // Used in USB Device Mode only
|
||||||
|
#define EP12_OUT_EVEN 24 // Used in USB Device Mode only
|
||||||
|
#define EP12_OUT_ODD 24 // Used in USB Device Mode only
|
||||||
|
#define EP12_IN_EVEN 25 // Used in USB Device Mode only
|
||||||
|
#define EP12_IN_ODD 25 // Used in USB Device Mode only
|
||||||
|
#define EP13_OUT_EVEN 26 // Used in USB Device Mode only
|
||||||
|
#define EP13_OUT_ODD 26 // Used in USB Device Mode only
|
||||||
|
#define EP13_IN_EVEN 27 // Used in USB Device Mode only
|
||||||
|
#define EP13_IN_ODD 27 // Used in USB Device Mode only
|
||||||
|
#define EP14_OUT_EVEN 28 // Used in USB Device Mode only
|
||||||
|
#define EP14_OUT_ODD 28 // Used in USB Device Mode only
|
||||||
|
#define EP14_IN_EVEN 29 // Used in USB Device Mode only
|
||||||
|
#define EP14_IN_ODD 29 // Used in USB Device Mode only
|
||||||
|
#define EP15_OUT_EVEN 30 // Used in USB Device Mode only
|
||||||
|
#define EP15_OUT_ODD 30 // Used in USB Device Mode only
|
||||||
|
#define EP15_IN_EVEN 31 // Used in USB Device Mode only
|
||||||
|
#define EP15_IN_ODD 31 // Used in USB Device Mode only
|
||||||
|
|
||||||
|
#define EP(ep,dir,pp) (2*ep+dir) // Used in USB Device Mode only
|
||||||
|
#define BD(ep,dir,pp) ((8 * ep) + (4 * dir)) // Used in USB Device Mode only
|
||||||
|
|
||||||
|
#elif (USB_PING_PONG_MODE == USB_PING_PONG__EP0_OUT_ONLY)
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0004
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0000
|
||||||
|
#define USB_NEXT_PING_PONG 0x0000
|
||||||
|
#define EP0_OUT_EVEN 0
|
||||||
|
#define EP0_OUT_ODD 1
|
||||||
|
#define EP0_IN_EVEN 2
|
||||||
|
#define EP0_IN_ODD 2
|
||||||
|
#define EP1_OUT_EVEN 3
|
||||||
|
#define EP1_OUT_ODD 3
|
||||||
|
#define EP1_IN_EVEN 4
|
||||||
|
#define EP1_IN_ODD 4
|
||||||
|
#define EP2_OUT_EVEN 5
|
||||||
|
#define EP2_OUT_ODD 5
|
||||||
|
#define EP2_IN_EVEN 6
|
||||||
|
#define EP2_IN_ODD 6
|
||||||
|
#define EP3_OUT_EVEN 7
|
||||||
|
#define EP3_OUT_ODD 7
|
||||||
|
#define EP3_IN_EVEN 8
|
||||||
|
#define EP3_IN_ODD 8
|
||||||
|
#define EP4_OUT_EVEN 9
|
||||||
|
#define EP4_OUT_ODD 9
|
||||||
|
#define EP4_IN_EVEN 10
|
||||||
|
#define EP4_IN_ODD 10
|
||||||
|
#define EP5_OUT_EVEN 11
|
||||||
|
#define EP5_OUT_ODD 11
|
||||||
|
#define EP5_IN_EVEN 12
|
||||||
|
#define EP5_IN_ODD 12
|
||||||
|
#define EP6_OUT_EVEN 13
|
||||||
|
#define EP6_OUT_ODD 13
|
||||||
|
#define EP6_IN_EVEN 14
|
||||||
|
#define EP6_IN_ODD 14
|
||||||
|
#define EP7_OUT_EVEN 15
|
||||||
|
#define EP7_OUT_ODD 15
|
||||||
|
#define EP7_IN_EVEN 16
|
||||||
|
#define EP7_IN_ODD 16
|
||||||
|
#define EP8_OUT_EVEN 17
|
||||||
|
#define EP8_OUT_ODD 17
|
||||||
|
#define EP8_IN_EVEN 18
|
||||||
|
#define EP8_IN_ODD 18
|
||||||
|
#define EP9_OUT_EVEN 19
|
||||||
|
#define EP9_OUT_ODD 19
|
||||||
|
#define EP9_IN_EVEN 20
|
||||||
|
#define EP9_IN_ODD 20
|
||||||
|
#define EP10_OUT_EVEN 21
|
||||||
|
#define EP10_OUT_ODD 21
|
||||||
|
#define EP10_IN_EVEN 22
|
||||||
|
#define EP10_IN_ODD 22
|
||||||
|
#define EP11_OUT_EVEN 23
|
||||||
|
#define EP11_OUT_ODD 23
|
||||||
|
#define EP11_IN_EVEN 24
|
||||||
|
#define EP11_IN_ODD 24
|
||||||
|
#define EP12_OUT_EVEN 25
|
||||||
|
#define EP12_OUT_ODD 25
|
||||||
|
#define EP12_IN_EVEN 26
|
||||||
|
#define EP12_IN_ODD 26
|
||||||
|
#define EP13_OUT_EVEN 27
|
||||||
|
#define EP13_OUT_ODD 27
|
||||||
|
#define EP13_IN_EVEN 28
|
||||||
|
#define EP13_IN_ODD 28
|
||||||
|
#define EP14_OUT_EVEN 29
|
||||||
|
#define EP14_OUT_ODD 29
|
||||||
|
#define EP14_IN_EVEN 30
|
||||||
|
#define EP14_IN_ODD 30
|
||||||
|
#define EP15_OUT_EVEN 31
|
||||||
|
#define EP15_OUT_ODD 31
|
||||||
|
#define EP15_IN_EVEN 32
|
||||||
|
#define EP15_IN_ODD 32
|
||||||
|
|
||||||
|
#define EP(ep,dir,pp) (2u*ep+dir+(((ep==0)&&(dir==0))?pp:1))
|
||||||
|
#define BD(ep,dir,pp) (4u*((2u*ep)+dir+(((ep==0)&&(dir==0))?pp:1)))
|
||||||
|
|
||||||
|
#elif (USB_PING_PONG_MODE == USB_PING_PONG__FULL_PING_PONG)
|
||||||
|
#if defined (__18CXX) || defined(__C30__) || defined __XC16__ || defined(__XC8)
|
||||||
|
#if (defined (__dsPIC33E__) || defined (__PIC24E__))
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0008
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0008
|
||||||
|
#define USB_NEXT_PING_PONG 0x0008
|
||||||
|
#else
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0004
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0004
|
||||||
|
#define USB_NEXT_PING_PONG 0x0004
|
||||||
|
#endif
|
||||||
|
#elif defined(__C32__)
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0008
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0008
|
||||||
|
#define USB_NEXT_PING_PONG 0x0008
|
||||||
|
#else
|
||||||
|
#error "Not defined for this compiler"
|
||||||
|
#endif
|
||||||
|
#define EP0_OUT_EVEN 0
|
||||||
|
#define EP0_OUT_ODD 1
|
||||||
|
#define EP0_IN_EVEN 2
|
||||||
|
#define EP0_IN_ODD 3
|
||||||
|
#define EP1_OUT_EVEN 4
|
||||||
|
#define EP1_OUT_ODD 5
|
||||||
|
#define EP1_IN_EVEN 6
|
||||||
|
#define EP1_IN_ODD 7
|
||||||
|
#define EP2_OUT_EVEN 8
|
||||||
|
#define EP2_OUT_ODD 9
|
||||||
|
#define EP2_IN_EVEN 10
|
||||||
|
#define EP2_IN_ODD 11
|
||||||
|
#define EP3_OUT_EVEN 12
|
||||||
|
#define EP3_OUT_ODD 13
|
||||||
|
#define EP3_IN_EVEN 14
|
||||||
|
#define EP3_IN_ODD 15
|
||||||
|
#define EP4_OUT_EVEN 16
|
||||||
|
#define EP4_OUT_ODD 17
|
||||||
|
#define EP4_IN_EVEN 18
|
||||||
|
#define EP4_IN_ODD 19
|
||||||
|
#define EP5_OUT_EVEN 20
|
||||||
|
#define EP5_OUT_ODD 21
|
||||||
|
#define EP5_IN_EVEN 22
|
||||||
|
#define EP5_IN_ODD 23
|
||||||
|
#define EP6_OUT_EVEN 24
|
||||||
|
#define EP6_OUT_ODD 25
|
||||||
|
#define EP6_IN_EVEN 26
|
||||||
|
#define EP6_IN_ODD 27
|
||||||
|
#define EP7_OUT_EVEN 28
|
||||||
|
#define EP7_OUT_ODD 29
|
||||||
|
#define EP7_IN_EVEN 30
|
||||||
|
#define EP7_IN_ODD 31
|
||||||
|
#define EP8_OUT_EVEN 32
|
||||||
|
#define EP8_OUT_ODD 33
|
||||||
|
#define EP8_IN_EVEN 34
|
||||||
|
#define EP8_IN_ODD 35
|
||||||
|
#define EP9_OUT_EVEN 36
|
||||||
|
#define EP9_OUT_ODD 37
|
||||||
|
#define EP9_IN_EVEN 38
|
||||||
|
#define EP9_IN_ODD 39
|
||||||
|
#define EP10_OUT_EVEN 40
|
||||||
|
#define EP10_OUT_ODD 41
|
||||||
|
#define EP10_IN_EVEN 42
|
||||||
|
#define EP10_IN_ODD 43
|
||||||
|
#define EP11_OUT_EVEN 44
|
||||||
|
#define EP11_OUT_ODD 45
|
||||||
|
#define EP11_IN_EVEN 46
|
||||||
|
#define EP11_IN_ODD 47
|
||||||
|
#define EP12_OUT_EVEN 48
|
||||||
|
#define EP12_OUT_ODD 49
|
||||||
|
#define EP12_IN_EVEN 50
|
||||||
|
#define EP12_IN_ODD 51
|
||||||
|
#define EP13_OUT_EVEN 52
|
||||||
|
#define EP13_OUT_ODD 53
|
||||||
|
#define EP13_IN_EVEN 54
|
||||||
|
#define EP13_IN_ODD 55
|
||||||
|
#define EP14_OUT_EVEN 56
|
||||||
|
#define EP14_OUT_ODD 57
|
||||||
|
#define EP14_IN_EVEN 58
|
||||||
|
#define EP14_IN_ODD 59
|
||||||
|
#define EP15_OUT_EVEN 60
|
||||||
|
#define EP15_OUT_ODD 61
|
||||||
|
#define EP15_IN_EVEN 62
|
||||||
|
#define EP15_IN_ODD 63
|
||||||
|
|
||||||
|
#define EP(ep,dir,pp) (4*ep+2*dir+pp)
|
||||||
|
|
||||||
|
#if defined (__18CXX) || defined(__C30__) || defined __XC16__ || (__XC8)
|
||||||
|
#if (defined(__dsPIC33E__) || defined (__PIC24E__))
|
||||||
|
#define BD(ep,dir,pp) (8*(4*ep+2*dir+pp))
|
||||||
|
#else
|
||||||
|
#define BD(ep,dir,pp) (4*(4*ep+2*dir+pp))
|
||||||
|
#endif
|
||||||
|
#elif defined(__C32__)
|
||||||
|
#define BD(ep,dir,pp) (8*(4*ep+2*dir+pp))
|
||||||
|
#else
|
||||||
|
#error "Not defined for this compiler"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif (USB_PING_PONG_MODE == USB_PING_PONG__ALL_BUT_EP0)
|
||||||
|
#define USB_NEXT_EP0_OUT_PING_PONG 0x0000
|
||||||
|
#define USB_NEXT_EP0_IN_PING_PONG 0x0000
|
||||||
|
#define USB_NEXT_PING_PONG 0x0004
|
||||||
|
#define EP0_OUT_EVEN 0
|
||||||
|
#define EP0_OUT_ODD 0
|
||||||
|
#define EP0_IN_EVEN 1
|
||||||
|
#define EP0_IN_ODD 1
|
||||||
|
#define EP1_OUT_EVEN 2
|
||||||
|
#define EP1_OUT_ODD 3
|
||||||
|
#define EP1_IN_EVEN 4
|
||||||
|
#define EP1_IN_ODD 5
|
||||||
|
#define EP2_OUT_EVEN 6
|
||||||
|
#define EP2_OUT_ODD 7
|
||||||
|
#define EP2_IN_EVEN 8
|
||||||
|
#define EP2_IN_ODD 9
|
||||||
|
#define EP3_OUT_EVEN 10
|
||||||
|
#define EP3_OUT_ODD 11
|
||||||
|
#define EP3_IN_EVEN 12
|
||||||
|
#define EP3_IN_ODD 13
|
||||||
|
#define EP4_OUT_EVEN 14
|
||||||
|
#define EP4_OUT_ODD 15
|
||||||
|
#define EP4_IN_EVEN 16
|
||||||
|
#define EP4_IN_ODD 17
|
||||||
|
#define EP5_OUT_EVEN 18
|
||||||
|
#define EP5_OUT_ODD 19
|
||||||
|
#define EP5_IN_EVEN 20
|
||||||
|
#define EP5_IN_ODD 21
|
||||||
|
#define EP6_OUT_EVEN 22
|
||||||
|
#define EP6_OUT_ODD 23
|
||||||
|
#define EP6_IN_EVEN 24
|
||||||
|
#define EP6_IN_ODD 25
|
||||||
|
#define EP7_OUT_EVEN 26
|
||||||
|
#define EP7_OUT_ODD 27
|
||||||
|
#define EP7_IN_EVEN 28
|
||||||
|
#define EP7_IN_ODD 29
|
||||||
|
#define EP8_OUT_EVEN 30
|
||||||
|
#define EP8_OUT_ODD 31
|
||||||
|
#define EP8_IN_EVEN 32
|
||||||
|
#define EP8_IN_ODD 33
|
||||||
|
#define EP9_OUT_EVEN 34
|
||||||
|
#define EP9_OUT_ODD 35
|
||||||
|
#define EP9_IN_EVEN 36
|
||||||
|
#define EP9_IN_ODD 37
|
||||||
|
#define EP10_OUT_EVEN 38
|
||||||
|
#define EP10_OUT_ODD 39
|
||||||
|
#define EP10_IN_EVEN 40
|
||||||
|
#define EP10_IN_ODD 41
|
||||||
|
#define EP11_OUT_EVEN 42
|
||||||
|
#define EP11_OUT_ODD 43
|
||||||
|
#define EP11_IN_EVEN 44
|
||||||
|
#define EP11_IN_ODD 45
|
||||||
|
#define EP12_OUT_EVEN 46
|
||||||
|
#define EP12_OUT_ODD 47
|
||||||
|
#define EP12_IN_EVEN 48
|
||||||
|
#define EP12_IN_ODD 49
|
||||||
|
#define EP13_OUT_EVEN 50
|
||||||
|
#define EP13_OUT_ODD 51
|
||||||
|
#define EP13_IN_EVEN 52
|
||||||
|
#define EP13_IN_ODD 53
|
||||||
|
#define EP14_OUT_EVEN 54
|
||||||
|
#define EP14_OUT_ODD 55
|
||||||
|
#define EP14_IN_EVEN 56
|
||||||
|
#define EP14_IN_ODD 57
|
||||||
|
#define EP15_OUT_EVEN 58
|
||||||
|
#define EP15_OUT_ODD 59
|
||||||
|
#define EP15_IN_EVEN 60
|
||||||
|
#define EP15_IN_ODD 61
|
||||||
|
|
||||||
|
#define EP(ep,dir,pp) (4*ep+2*dir+((ep==0)?0:(pp-2)))
|
||||||
|
#define BD(ep,dir,pp) (4*(4*ep+2*dir+((ep==0)?0:(pp-2))))
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "No ping pong mode defined."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****** Event callback enabling/disabling macros ********************
|
||||||
|
This section of code is used to disable specific USB events that may not be
|
||||||
|
desired by the user. This can save code size and increase throughput and
|
||||||
|
decrease CPU utiliazation.
|
||||||
|
********************************************************************/
|
||||||
|
#if defined USB_DISABLE_SUSPEND_HANDLER
|
||||||
|
#define USB_SUSPEND_HANDLER(event,pointer,size)
|
||||||
|
|
||||||
|
#warning "Disabling the suspend handler is not recommended. Proper suspend handling is required to create a compliant USB device."
|
||||||
|
#else
|
||||||
|
#define USB_SUSPEND_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_WAKEUP_FROM_SUSPEND_HANDLER
|
||||||
|
#define USB_WAKEUP_FROM_SUSPEND_HANDLER(event,pointer,size)
|
||||||
|
|
||||||
|
#warning "Disabling the wake from suspend handler is not recommended. Proper suspend handling is required to create a compliant USB device."
|
||||||
|
#else
|
||||||
|
#define USB_WAKEUP_FROM_SUSPEND_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_SOF_HANDLER
|
||||||
|
#define USB_SOF_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_SOF_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_TRANSFER_TERMINATED_HANDLER
|
||||||
|
#define USB_TRANSFER_TERMINATED_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_TRANSFER_TERMINATED_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_ERROR_HANDLER
|
||||||
|
#define USB_ERROR_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_ERROR_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_NONSTANDARD_EP0_REQUEST_HANDLER
|
||||||
|
#define USB_NONSTANDARD_EP0_REQUEST_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_NONSTANDARD_EP0_REQUEST_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_SET_DESCRIPTOR_HANDLER
|
||||||
|
#define USB_SET_DESCRIPTOR_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_SET_DESCRIPTOR_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_SET_CONFIGURATION_HANDLER
|
||||||
|
#define USB_SET_CONFIGURATION_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_SET_CONFIGURATION_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined USB_DISABLE_TRANSFER_COMPLETE_HANDLER
|
||||||
|
#define USB_TRANSFER_COMPLETE_HANDLER(event,pointer,size)
|
||||||
|
#else
|
||||||
|
#define USB_TRANSFER_COMPLETE_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER(event,pointer,size)
|
||||||
|
#endif
|
||||||
|
|
||||||
218
Source/USB/USB2.9i_cdc/include/Compiler.h
Normale Datei
218
Source/USB/USB2.9i_cdc/include/Compiler.h
Normale Datei
@ -0,0 +1,218 @@
|
|||||||
|
/*********************************************************************
|
||||||
|
*
|
||||||
|
* Compiler and hardware specific definitions
|
||||||
|
*
|
||||||
|
*********************************************************************
|
||||||
|
* FileName: Compiler.h
|
||||||
|
* Dependencies: None
|
||||||
|
* Processor: PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC, PIC32
|
||||||
|
* Compiler: Microchip C32 v2.02 or higher
|
||||||
|
* Microchip C30 v3.31 or higher
|
||||||
|
* Microchip C18 v3.40 or higher
|
||||||
|
* HI-TECH PICC-18 PRO 9.66 or higher
|
||||||
|
* HI-TECH PICC PRO V9.81 or higher
|
||||||
|
* Company: Microchip Technology, Inc.
|
||||||
|
*
|
||||||
|
* Software License Agreement
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012 Microchip Technology Inc. All rights
|
||||||
|
* reserved.
|
||||||
|
*
|
||||||
|
* Microchip licenses to you the right to use, modify, copy, and
|
||||||
|
* distribute:
|
||||||
|
* (i) the Software when embedded on a Microchip microcontroller or
|
||||||
|
* digital signal controller product ("Device") which is
|
||||||
|
* integrated into Licensee's product; or
|
||||||
|
* (ii) ONLY the Software driver source files ENC28J60.c and
|
||||||
|
* ENC28J60.h ported to a non-Microchip device used in
|
||||||
|
* conjunction with a Microchip ethernet controller for the
|
||||||
|
* sole purpose of interfacing with the ethernet controller.
|
||||||
|
*
|
||||||
|
* You should refer to the license agreement accompanying this
|
||||||
|
* Software for additional information regarding your rights and
|
||||||
|
* obligations.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT
|
||||||
|
* WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT
|
||||||
|
* LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* MICROCHIP BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF
|
||||||
|
* PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
|
||||||
|
* BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE
|
||||||
|
* THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER
|
||||||
|
* SIMILAR COSTS, WHETHER ASSERTED ON THE BASIS OF CONTRACT, TORT
|
||||||
|
* (INCLUDING NEGLIGENCE), BREACH OF WARRANTY, OR OTHERWISE.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Date Comment
|
||||||
|
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
* 10/03/2006 Original, copied from old Compiler.h
|
||||||
|
* 11/07/2007 Reorganized and simplified
|
||||||
|
* 03/31/2010 Removed dependency on WORD and DWORD typedefs
|
||||||
|
* 04/14/2010 Added defines to uniquely identify each compiler
|
||||||
|
* 10/13/2010 Added support for PIC10, PIC12, and PIC16 with PICC compiler
|
||||||
|
* 02/15/2012 Added re-define check for Nop, ClrWdt, Reset, Sleep
|
||||||
|
********************************************************************/
|
||||||
|
#ifndef __COMPILER_H
|
||||||
|
#define __COMPILER_H
|
||||||
|
|
||||||
|
// Include proper device header file
|
||||||
|
#if defined(__18CXX) && !defined(HI_TECH_C)
|
||||||
|
// PIC18 processor with Microchip C18 compiler
|
||||||
|
#define COMPILER_MPLAB_C18
|
||||||
|
#include <p18cxxx.h>
|
||||||
|
#elif defined(__PICC18__) && defined(HI_TECH_C)
|
||||||
|
// PIC18 processor with (Microchip) HI-TECH PICC-18 compiler
|
||||||
|
#if !defined(__18CXX)
|
||||||
|
#define __18CXX
|
||||||
|
#endif
|
||||||
|
#define COMPILER_HITECH_PICC18
|
||||||
|
#include <htc.h>
|
||||||
|
#elif (defined(_PIC12) || defined(_PIC14) || defined(_PIC14E)) && defined(HI_TECH_C)
|
||||||
|
// PIC10/12/16 processor with (Microchip) HI-TECH PICC compiler
|
||||||
|
#define COMPILER_HITECH_PICC
|
||||||
|
#include <htc.h>
|
||||||
|
#elif (defined(__PIC24F__) || defined(__PIC24FK__)) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// PIC24F processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p24Fxxxx.h>
|
||||||
|
#elif defined(__PIC24H__) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// PIC24H processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p24Hxxxx.h>
|
||||||
|
#elif defined(__PIC24E__) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// PIC24E processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p24Exxxx.h>
|
||||||
|
#elif defined(__dsPIC33F__) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// dsPIC33F processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p33Fxxxx.h>
|
||||||
|
#elif defined(__dsPIC33E__) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// dsPIC33E processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p33Exxxx.h>
|
||||||
|
#elif defined(__dsPIC30F__) && defined(__C30__) // Microchip C30 compiler
|
||||||
|
// dsPIC30F processor
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p30fxxxx.h>
|
||||||
|
#elif defined(__C30__) // Microchip C30 compiler, but targeting "generic-16bit" processor.
|
||||||
|
#define COMPILER_MPLAB_C30
|
||||||
|
#include <p30sim.h>
|
||||||
|
// Define some useful inline assembly functions which are normally in the
|
||||||
|
// processor header files, but absent from the generic p30sim.h file.
|
||||||
|
#if !defined(Nop)
|
||||||
|
#define Nop() __builtin_nop()
|
||||||
|
#define ClrWdt() {__asm__ volatile ("clrwdt");}
|
||||||
|
#define Sleep() {__asm__ volatile ("pwrsav #0");}
|
||||||
|
#define Idle() {__asm__ volatile ("pwrsav #1");}
|
||||||
|
#endif
|
||||||
|
#elif defined(__PIC32MX__) // Microchip C32 compiler
|
||||||
|
#if !defined(__C32__)
|
||||||
|
#define __C32__
|
||||||
|
#endif
|
||||||
|
#define COMPILER_MPLAB_C32
|
||||||
|
#include <p32xxxx.h>
|
||||||
|
#include <plib.h>
|
||||||
|
#else
|
||||||
|
#error Unknown processor or compiler. See Compiler.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
// Base RAM and ROM pointer types for given architecture
|
||||||
|
#if defined(__PIC32MX__)
|
||||||
|
#define PTR_BASE unsigned long
|
||||||
|
#define ROM_PTR_BASE unsigned long
|
||||||
|
#elif defined(__C30__)
|
||||||
|
#define PTR_BASE unsigned short
|
||||||
|
#define ROM_PTR_BASE unsigned short
|
||||||
|
#elif defined(COMPILER_MPLAB_C18)
|
||||||
|
#define PTR_BASE unsigned short
|
||||||
|
#define ROM_PTR_BASE unsigned short long
|
||||||
|
#elif defined(COMPILER_HITECH_PICC18)
|
||||||
|
#define PTR_BASE unsigned short
|
||||||
|
#define ROM_PTR_BASE unsigned long
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Definitions that apply to all except Microchip MPLAB C Compiler for PIC18 MCUs (C18)
|
||||||
|
#if !defined(COMPILER_MPLAB_C18)
|
||||||
|
#define memcmppgm2ram(a,b,c) memcmp(a,b,c)
|
||||||
|
#define strcmppgm2ram(a,b) strcmp(a,b)
|
||||||
|
#define memcpypgm2ram(a,b,c) memcpy(a,b,c)
|
||||||
|
#define strcpypgm2ram(a,b) strcpy(a,b)
|
||||||
|
#define strncpypgm2ram(a,b,c) strncpy(a,b,c)
|
||||||
|
#define strstrrampgm(a,b) strstr(a,b)
|
||||||
|
#define strlenpgm(a) strlen(a)
|
||||||
|
#define strchrpgm(a,b) strchr(a,b)
|
||||||
|
#define strcatpgm2ram(a,b) strcat(a,b)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Definitions that apply to all 8-bit products
|
||||||
|
// (PIC10, PIC12, PIC16, PIC18)
|
||||||
|
#if defined(__18CXX) || defined(COMPILER_HITECH_PICC)
|
||||||
|
#define __attribute__(a)
|
||||||
|
|
||||||
|
#define FAR far
|
||||||
|
|
||||||
|
// Microchip C18 specific defines
|
||||||
|
#if defined(COMPILER_MPLAB_C18)
|
||||||
|
#define ROM rom
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// HI TECH specific defines
|
||||||
|
#if defined(COMPILER_HITECH_PICC18) || defined(COMPILER_HITECH_PICC)
|
||||||
|
#define ROM const
|
||||||
|
#define rom
|
||||||
|
#ifndef Nop()
|
||||||
|
#define Nop() asm("NOP");
|
||||||
|
#endif
|
||||||
|
#ifndef ClrWdt()
|
||||||
|
#define ClrWdt() asm("CLRWDT");
|
||||||
|
#endif
|
||||||
|
#ifndef Reset()
|
||||||
|
#define Reset() asm("RESET");
|
||||||
|
#endif
|
||||||
|
#ifndef Sleep()
|
||||||
|
#define Sleep() asm("SLEEP");
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Definitions that apply to all 16-bit and 32-bit products
|
||||||
|
// (PIC24F, PIC24H, dsPIC30F, dsPIC33F, and PIC32)
|
||||||
|
#else
|
||||||
|
#define ROM const
|
||||||
|
|
||||||
|
// 16-bit specific defines (PIC24F, PIC24H, dsPIC30F, dsPIC33F)
|
||||||
|
#if defined(__C30__)
|
||||||
|
#define Reset() asm("reset")
|
||||||
|
#define FAR __attribute__((far))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 32-bit specific defines (PIC32)
|
||||||
|
#if defined(__PIC32MX__)
|
||||||
|
#if (__C32_VERSION__ < 200)
|
||||||
|
#define persistent
|
||||||
|
#endif
|
||||||
|
#define far
|
||||||
|
#define FAR
|
||||||
|
#define Reset() SoftReset()
|
||||||
|
#define ClrWdt() (WDTCONSET = _WDTCON_WDTCLR_MASK)
|
||||||
|
|
||||||
|
// MPLAB C Compiler for PIC32 MCUs version 1.04 and below don't have a
|
||||||
|
// Nop() function. However, version 1.05 has Nop() declared as _nop().
|
||||||
|
#if !defined(Nop) && (__C32_VERSION__ <= 104)
|
||||||
|
#define Nop() asm("nop")
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
549
Source/USB/USB2.9i_cdc/include/GenericTypeDefs.h
Normale Datei
549
Source/USB/USB2.9i_cdc/include/GenericTypeDefs.h
Normale Datei
@ -0,0 +1,549 @@
|
|||||||
|
/*******************************************************************
|
||||||
|
|
||||||
|
Generic Type Definitions
|
||||||
|
|
||||||
|
********************************************************************
|
||||||
|
FileName: GenericTypeDefs.h
|
||||||
|
Dependencies: None
|
||||||
|
Processor: PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC, PIC32
|
||||||
|
Compiler: MPLAB C Compilers for PIC18, PIC24, dsPIC, & PIC32
|
||||||
|
Hi-Tech PICC PRO, Hi-Tech PICC18 PRO
|
||||||
|
Company: Microchip Technology Inc.
|
||||||
|
|
||||||
|
Software License Agreement
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the "Company") is intended and supplied to you, the Company's
|
||||||
|
customer, for use solely and exclusively with products manufactured
|
||||||
|
by the Company.
|
||||||
|
|
||||||
|
The software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
********************************************************************
|
||||||
|
File Description:
|
||||||
|
|
||||||
|
Change History:
|
||||||
|
Rev Date Description
|
||||||
|
1.1 09/11/06 Add base signed types
|
||||||
|
1.2 02/28/07 Add QWORD, LONGLONG, QWORD_VAL
|
||||||
|
1.3 02/06/08 Add def's for PIC32
|
||||||
|
1.4 08/08/08 Remove LSB/MSB Macros, adopted by Peripheral lib
|
||||||
|
1.5 08/14/08 Simplify file header
|
||||||
|
2.0 07/13/09 Updated for new release of coding standards
|
||||||
|
3.1 05/28/10 MiWi DE 3.1
|
||||||
|
*******************************************************************/
|
||||||
|
|
||||||
|
#ifndef __GENERIC_TYPE_DEFS_H_
|
||||||
|
#define __GENERIC_TYPE_DEFS_H_
|
||||||
|
|
||||||
|
/* Specify an extension for GCC based compilers */
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
#define __EXTENSION __extension__
|
||||||
|
#else
|
||||||
|
#define __EXTENSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__PACKED)
|
||||||
|
#define __PACKED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* get compiler defined type definitions (NULL, size_t, etc) */
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
typedef enum _BOOL { FALSE = 0, TRUE } BOOL; /* Undefined size */
|
||||||
|
typedef enum _BIT { CLEAR = 0, SET } BIT;
|
||||||
|
|
||||||
|
#define PUBLIC /* Function attributes */
|
||||||
|
#define PROTECTED
|
||||||
|
#define PRIVATE static
|
||||||
|
|
||||||
|
/* INT is processor specific in length may vary in size */
|
||||||
|
typedef signed int INT;
|
||||||
|
typedef signed char INT8;
|
||||||
|
typedef signed short int INT16;
|
||||||
|
typedef signed long int INT32;
|
||||||
|
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
#if !defined(__18CXX)
|
||||||
|
__EXTENSION typedef signed long long INT64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* UINT is processor specific in length may vary in size */
|
||||||
|
typedef unsigned int UINT;
|
||||||
|
typedef unsigned char UINT8;
|
||||||
|
typedef unsigned short int UINT16;
|
||||||
|
/* 24-bit type only available on C18 */
|
||||||
|
#if defined(__18CXX)
|
||||||
|
typedef unsigned short long UINT24;
|
||||||
|
#endif
|
||||||
|
typedef unsigned long int UINT32; /* other name for 32-bit integer */
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
#if !defined(__18CXX)
|
||||||
|
__EXTENSION typedef unsigned long long UINT64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
UINT8 Val;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
__EXTENSION UINT8 b0:1;
|
||||||
|
__EXTENSION UINT8 b1:1;
|
||||||
|
__EXTENSION UINT8 b2:1;
|
||||||
|
__EXTENSION UINT8 b3:1;
|
||||||
|
__EXTENSION UINT8 b4:1;
|
||||||
|
__EXTENSION UINT8 b5:1;
|
||||||
|
__EXTENSION UINT8 b6:1;
|
||||||
|
__EXTENSION UINT8 b7:1;
|
||||||
|
} bits;
|
||||||
|
} UINT8_VAL, UINT8_BITS;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
UINT16 Val;
|
||||||
|
UINT8 v[2] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT8 LB;
|
||||||
|
UINT8 HB;
|
||||||
|
} byte;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION UINT8 b0:1;
|
||||||
|
__EXTENSION UINT8 b1:1;
|
||||||
|
__EXTENSION UINT8 b2:1;
|
||||||
|
__EXTENSION UINT8 b3:1;
|
||||||
|
__EXTENSION UINT8 b4:1;
|
||||||
|
__EXTENSION UINT8 b5:1;
|
||||||
|
__EXTENSION UINT8 b6:1;
|
||||||
|
__EXTENSION UINT8 b7:1;
|
||||||
|
__EXTENSION UINT8 b8:1;
|
||||||
|
__EXTENSION UINT8 b9:1;
|
||||||
|
__EXTENSION UINT8 b10:1;
|
||||||
|
__EXTENSION UINT8 b11:1;
|
||||||
|
__EXTENSION UINT8 b12:1;
|
||||||
|
__EXTENSION UINT8 b13:1;
|
||||||
|
__EXTENSION UINT8 b14:1;
|
||||||
|
__EXTENSION UINT8 b15:1;
|
||||||
|
} bits;
|
||||||
|
} UINT16_VAL, UINT16_BITS;
|
||||||
|
|
||||||
|
/* 24-bit type only available on C18 */
|
||||||
|
#if defined(__18CXX)
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
UINT24 Val;
|
||||||
|
UINT8 v[3] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT8 LB;
|
||||||
|
UINT8 HB;
|
||||||
|
UINT8 UB;
|
||||||
|
} byte;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION UINT8 b0:1;
|
||||||
|
__EXTENSION UINT8 b1:1;
|
||||||
|
__EXTENSION UINT8 b2:1;
|
||||||
|
__EXTENSION UINT8 b3:1;
|
||||||
|
__EXTENSION UINT8 b4:1;
|
||||||
|
__EXTENSION UINT8 b5:1;
|
||||||
|
__EXTENSION UINT8 b6:1;
|
||||||
|
__EXTENSION UINT8 b7:1;
|
||||||
|
__EXTENSION UINT8 b8:1;
|
||||||
|
__EXTENSION UINT8 b9:1;
|
||||||
|
__EXTENSION UINT8 b10:1;
|
||||||
|
__EXTENSION UINT8 b11:1;
|
||||||
|
__EXTENSION UINT8 b12:1;
|
||||||
|
__EXTENSION UINT8 b13:1;
|
||||||
|
__EXTENSION UINT8 b14:1;
|
||||||
|
__EXTENSION UINT8 b15:1;
|
||||||
|
__EXTENSION UINT8 b16:1;
|
||||||
|
__EXTENSION UINT8 b17:1;
|
||||||
|
__EXTENSION UINT8 b18:1;
|
||||||
|
__EXTENSION UINT8 b19:1;
|
||||||
|
__EXTENSION UINT8 b20:1;
|
||||||
|
__EXTENSION UINT8 b21:1;
|
||||||
|
__EXTENSION UINT8 b22:1;
|
||||||
|
__EXTENSION UINT8 b23:1;
|
||||||
|
} bits;
|
||||||
|
} UINT24_VAL, UINT24_BITS;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
UINT32 Val;
|
||||||
|
UINT16 w[2] __PACKED;
|
||||||
|
UINT8 v[4] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT16 LW;
|
||||||
|
UINT16 HW;
|
||||||
|
} word;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT8 LB;
|
||||||
|
UINT8 HB;
|
||||||
|
UINT8 UB;
|
||||||
|
UINT8 MB;
|
||||||
|
} byte;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT16_VAL low;
|
||||||
|
UINT16_VAL high;
|
||||||
|
}wordUnion;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION UINT8 b0:1;
|
||||||
|
__EXTENSION UINT8 b1:1;
|
||||||
|
__EXTENSION UINT8 b2:1;
|
||||||
|
__EXTENSION UINT8 b3:1;
|
||||||
|
__EXTENSION UINT8 b4:1;
|
||||||
|
__EXTENSION UINT8 b5:1;
|
||||||
|
__EXTENSION UINT8 b6:1;
|
||||||
|
__EXTENSION UINT8 b7:1;
|
||||||
|
__EXTENSION UINT8 b8:1;
|
||||||
|
__EXTENSION UINT8 b9:1;
|
||||||
|
__EXTENSION UINT8 b10:1;
|
||||||
|
__EXTENSION UINT8 b11:1;
|
||||||
|
__EXTENSION UINT8 b12:1;
|
||||||
|
__EXTENSION UINT8 b13:1;
|
||||||
|
__EXTENSION UINT8 b14:1;
|
||||||
|
__EXTENSION UINT8 b15:1;
|
||||||
|
__EXTENSION UINT8 b16:1;
|
||||||
|
__EXTENSION UINT8 b17:1;
|
||||||
|
__EXTENSION UINT8 b18:1;
|
||||||
|
__EXTENSION UINT8 b19:1;
|
||||||
|
__EXTENSION UINT8 b20:1;
|
||||||
|
__EXTENSION UINT8 b21:1;
|
||||||
|
__EXTENSION UINT8 b22:1;
|
||||||
|
__EXTENSION UINT8 b23:1;
|
||||||
|
__EXTENSION UINT8 b24:1;
|
||||||
|
__EXTENSION UINT8 b25:1;
|
||||||
|
__EXTENSION UINT8 b26:1;
|
||||||
|
__EXTENSION UINT8 b27:1;
|
||||||
|
__EXTENSION UINT8 b28:1;
|
||||||
|
__EXTENSION UINT8 b29:1;
|
||||||
|
__EXTENSION UINT8 b30:1;
|
||||||
|
__EXTENSION UINT8 b31:1;
|
||||||
|
} bits;
|
||||||
|
} UINT32_VAL;
|
||||||
|
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
#if !defined(__18CXX)
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
UINT64 Val;
|
||||||
|
UINT32 d[2] __PACKED;
|
||||||
|
UINT16 w[4] __PACKED;
|
||||||
|
UINT8 v[8] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT32 LD;
|
||||||
|
UINT32 HD;
|
||||||
|
} dword;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
UINT16 LW;
|
||||||
|
UINT16 HW;
|
||||||
|
UINT16 UW;
|
||||||
|
UINT16 MW;
|
||||||
|
} word;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION UINT8 b0:1;
|
||||||
|
__EXTENSION UINT8 b1:1;
|
||||||
|
__EXTENSION UINT8 b2:1;
|
||||||
|
__EXTENSION UINT8 b3:1;
|
||||||
|
__EXTENSION UINT8 b4:1;
|
||||||
|
__EXTENSION UINT8 b5:1;
|
||||||
|
__EXTENSION UINT8 b6:1;
|
||||||
|
__EXTENSION UINT8 b7:1;
|
||||||
|
__EXTENSION UINT8 b8:1;
|
||||||
|
__EXTENSION UINT8 b9:1;
|
||||||
|
__EXTENSION UINT8 b10:1;
|
||||||
|
__EXTENSION UINT8 b11:1;
|
||||||
|
__EXTENSION UINT8 b12:1;
|
||||||
|
__EXTENSION UINT8 b13:1;
|
||||||
|
__EXTENSION UINT8 b14:1;
|
||||||
|
__EXTENSION UINT8 b15:1;
|
||||||
|
__EXTENSION UINT8 b16:1;
|
||||||
|
__EXTENSION UINT8 b17:1;
|
||||||
|
__EXTENSION UINT8 b18:1;
|
||||||
|
__EXTENSION UINT8 b19:1;
|
||||||
|
__EXTENSION UINT8 b20:1;
|
||||||
|
__EXTENSION UINT8 b21:1;
|
||||||
|
__EXTENSION UINT8 b22:1;
|
||||||
|
__EXTENSION UINT8 b23:1;
|
||||||
|
__EXTENSION UINT8 b24:1;
|
||||||
|
__EXTENSION UINT8 b25:1;
|
||||||
|
__EXTENSION UINT8 b26:1;
|
||||||
|
__EXTENSION UINT8 b27:1;
|
||||||
|
__EXTENSION UINT8 b28:1;
|
||||||
|
__EXTENSION UINT8 b29:1;
|
||||||
|
__EXTENSION UINT8 b30:1;
|
||||||
|
__EXTENSION UINT8 b31:1;
|
||||||
|
__EXTENSION UINT8 b32:1;
|
||||||
|
__EXTENSION UINT8 b33:1;
|
||||||
|
__EXTENSION UINT8 b34:1;
|
||||||
|
__EXTENSION UINT8 b35:1;
|
||||||
|
__EXTENSION UINT8 b36:1;
|
||||||
|
__EXTENSION UINT8 b37:1;
|
||||||
|
__EXTENSION UINT8 b38:1;
|
||||||
|
__EXTENSION UINT8 b39:1;
|
||||||
|
__EXTENSION UINT8 b40:1;
|
||||||
|
__EXTENSION UINT8 b41:1;
|
||||||
|
__EXTENSION UINT8 b42:1;
|
||||||
|
__EXTENSION UINT8 b43:1;
|
||||||
|
__EXTENSION UINT8 b44:1;
|
||||||
|
__EXTENSION UINT8 b45:1;
|
||||||
|
__EXTENSION UINT8 b46:1;
|
||||||
|
__EXTENSION UINT8 b47:1;
|
||||||
|
__EXTENSION UINT8 b48:1;
|
||||||
|
__EXTENSION UINT8 b49:1;
|
||||||
|
__EXTENSION UINT8 b50:1;
|
||||||
|
__EXTENSION UINT8 b51:1;
|
||||||
|
__EXTENSION UINT8 b52:1;
|
||||||
|
__EXTENSION UINT8 b53:1;
|
||||||
|
__EXTENSION UINT8 b54:1;
|
||||||
|
__EXTENSION UINT8 b55:1;
|
||||||
|
__EXTENSION UINT8 b56:1;
|
||||||
|
__EXTENSION UINT8 b57:1;
|
||||||
|
__EXTENSION UINT8 b58:1;
|
||||||
|
__EXTENSION UINT8 b59:1;
|
||||||
|
__EXTENSION UINT8 b60:1;
|
||||||
|
__EXTENSION UINT8 b61:1;
|
||||||
|
__EXTENSION UINT8 b62:1;
|
||||||
|
__EXTENSION UINT8 b63:1;
|
||||||
|
} bits;
|
||||||
|
} UINT64_VAL;
|
||||||
|
#endif /* __18CXX */
|
||||||
|
|
||||||
|
/***********************************************************************************/
|
||||||
|
|
||||||
|
/* Alternate definitions */
|
||||||
|
typedef void VOID;
|
||||||
|
|
||||||
|
typedef char CHAR8;
|
||||||
|
typedef unsigned char UCHAR8;
|
||||||
|
|
||||||
|
typedef unsigned char BYTE; /* 8-bit unsigned */
|
||||||
|
typedef unsigned short int WORD; /* 16-bit unsigned */
|
||||||
|
typedef unsigned long DWORD; /* 32-bit unsigned */
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
__EXTENSION
|
||||||
|
typedef unsigned long long QWORD; /* 64-bit unsigned */
|
||||||
|
typedef signed char CHAR; /* 8-bit signed */
|
||||||
|
typedef signed short int SHORT; /* 16-bit signed */
|
||||||
|
typedef signed long LONG; /* 32-bit signed */
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
__EXTENSION
|
||||||
|
typedef signed long long LONGLONG; /* 64-bit signed */
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
BYTE Val;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION BYTE b0:1;
|
||||||
|
__EXTENSION BYTE b1:1;
|
||||||
|
__EXTENSION BYTE b2:1;
|
||||||
|
__EXTENSION BYTE b3:1;
|
||||||
|
__EXTENSION BYTE b4:1;
|
||||||
|
__EXTENSION BYTE b5:1;
|
||||||
|
__EXTENSION BYTE b6:1;
|
||||||
|
__EXTENSION BYTE b7:1;
|
||||||
|
} bits;
|
||||||
|
} BYTE_VAL, BYTE_BITS;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
WORD Val;
|
||||||
|
BYTE v[2] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
BYTE LB;
|
||||||
|
BYTE HB;
|
||||||
|
} byte;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION BYTE b0:1;
|
||||||
|
__EXTENSION BYTE b1:1;
|
||||||
|
__EXTENSION BYTE b2:1;
|
||||||
|
__EXTENSION BYTE b3:1;
|
||||||
|
__EXTENSION BYTE b4:1;
|
||||||
|
__EXTENSION BYTE b5:1;
|
||||||
|
__EXTENSION BYTE b6:1;
|
||||||
|
__EXTENSION BYTE b7:1;
|
||||||
|
__EXTENSION BYTE b8:1;
|
||||||
|
__EXTENSION BYTE b9:1;
|
||||||
|
__EXTENSION BYTE b10:1;
|
||||||
|
__EXTENSION BYTE b11:1;
|
||||||
|
__EXTENSION BYTE b12:1;
|
||||||
|
__EXTENSION BYTE b13:1;
|
||||||
|
__EXTENSION BYTE b14:1;
|
||||||
|
__EXTENSION BYTE b15:1;
|
||||||
|
} bits;
|
||||||
|
} WORD_VAL, WORD_BITS;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
DWORD Val;
|
||||||
|
WORD w[2] __PACKED;
|
||||||
|
BYTE v[4] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
WORD LW;
|
||||||
|
WORD HW;
|
||||||
|
} word;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
BYTE LB;
|
||||||
|
BYTE HB;
|
||||||
|
BYTE UB;
|
||||||
|
BYTE MB;
|
||||||
|
} byte;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
WORD_VAL low;
|
||||||
|
WORD_VAL high;
|
||||||
|
}wordUnion;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION BYTE b0:1;
|
||||||
|
__EXTENSION BYTE b1:1;
|
||||||
|
__EXTENSION BYTE b2:1;
|
||||||
|
__EXTENSION BYTE b3:1;
|
||||||
|
__EXTENSION BYTE b4:1;
|
||||||
|
__EXTENSION BYTE b5:1;
|
||||||
|
__EXTENSION BYTE b6:1;
|
||||||
|
__EXTENSION BYTE b7:1;
|
||||||
|
__EXTENSION BYTE b8:1;
|
||||||
|
__EXTENSION BYTE b9:1;
|
||||||
|
__EXTENSION BYTE b10:1;
|
||||||
|
__EXTENSION BYTE b11:1;
|
||||||
|
__EXTENSION BYTE b12:1;
|
||||||
|
__EXTENSION BYTE b13:1;
|
||||||
|
__EXTENSION BYTE b14:1;
|
||||||
|
__EXTENSION BYTE b15:1;
|
||||||
|
__EXTENSION BYTE b16:1;
|
||||||
|
__EXTENSION BYTE b17:1;
|
||||||
|
__EXTENSION BYTE b18:1;
|
||||||
|
__EXTENSION BYTE b19:1;
|
||||||
|
__EXTENSION BYTE b20:1;
|
||||||
|
__EXTENSION BYTE b21:1;
|
||||||
|
__EXTENSION BYTE b22:1;
|
||||||
|
__EXTENSION BYTE b23:1;
|
||||||
|
__EXTENSION BYTE b24:1;
|
||||||
|
__EXTENSION BYTE b25:1;
|
||||||
|
__EXTENSION BYTE b26:1;
|
||||||
|
__EXTENSION BYTE b27:1;
|
||||||
|
__EXTENSION BYTE b28:1;
|
||||||
|
__EXTENSION BYTE b29:1;
|
||||||
|
__EXTENSION BYTE b30:1;
|
||||||
|
__EXTENSION BYTE b31:1;
|
||||||
|
} bits;
|
||||||
|
} DWORD_VAL;
|
||||||
|
|
||||||
|
/* MPLAB C Compiler for PIC18 does not support 64-bit integers */
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
QWORD Val;
|
||||||
|
DWORD d[2] __PACKED;
|
||||||
|
WORD w[4] __PACKED;
|
||||||
|
BYTE v[8] __PACKED;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
DWORD LD;
|
||||||
|
DWORD HD;
|
||||||
|
} dword;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
WORD LW;
|
||||||
|
WORD HW;
|
||||||
|
WORD UW;
|
||||||
|
WORD MW;
|
||||||
|
} word;
|
||||||
|
struct __PACKED
|
||||||
|
{
|
||||||
|
__EXTENSION BYTE b0:1;
|
||||||
|
__EXTENSION BYTE b1:1;
|
||||||
|
__EXTENSION BYTE b2:1;
|
||||||
|
__EXTENSION BYTE b3:1;
|
||||||
|
__EXTENSION BYTE b4:1;
|
||||||
|
__EXTENSION BYTE b5:1;
|
||||||
|
__EXTENSION BYTE b6:1;
|
||||||
|
__EXTENSION BYTE b7:1;
|
||||||
|
__EXTENSION BYTE b8:1;
|
||||||
|
__EXTENSION BYTE b9:1;
|
||||||
|
__EXTENSION BYTE b10:1;
|
||||||
|
__EXTENSION BYTE b11:1;
|
||||||
|
__EXTENSION BYTE b12:1;
|
||||||
|
__EXTENSION BYTE b13:1;
|
||||||
|
__EXTENSION BYTE b14:1;
|
||||||
|
__EXTENSION BYTE b15:1;
|
||||||
|
__EXTENSION BYTE b16:1;
|
||||||
|
__EXTENSION BYTE b17:1;
|
||||||
|
__EXTENSION BYTE b18:1;
|
||||||
|
__EXTENSION BYTE b19:1;
|
||||||
|
__EXTENSION BYTE b20:1;
|
||||||
|
__EXTENSION BYTE b21:1;
|
||||||
|
__EXTENSION BYTE b22:1;
|
||||||
|
__EXTENSION BYTE b23:1;
|
||||||
|
__EXTENSION BYTE b24:1;
|
||||||
|
__EXTENSION BYTE b25:1;
|
||||||
|
__EXTENSION BYTE b26:1;
|
||||||
|
__EXTENSION BYTE b27:1;
|
||||||
|
__EXTENSION BYTE b28:1;
|
||||||
|
__EXTENSION BYTE b29:1;
|
||||||
|
__EXTENSION BYTE b30:1;
|
||||||
|
__EXTENSION BYTE b31:1;
|
||||||
|
__EXTENSION BYTE b32:1;
|
||||||
|
__EXTENSION BYTE b33:1;
|
||||||
|
__EXTENSION BYTE b34:1;
|
||||||
|
__EXTENSION BYTE b35:1;
|
||||||
|
__EXTENSION BYTE b36:1;
|
||||||
|
__EXTENSION BYTE b37:1;
|
||||||
|
__EXTENSION BYTE b38:1;
|
||||||
|
__EXTENSION BYTE b39:1;
|
||||||
|
__EXTENSION BYTE b40:1;
|
||||||
|
__EXTENSION BYTE b41:1;
|
||||||
|
__EXTENSION BYTE b42:1;
|
||||||
|
__EXTENSION BYTE b43:1;
|
||||||
|
__EXTENSION BYTE b44:1;
|
||||||
|
__EXTENSION BYTE b45:1;
|
||||||
|
__EXTENSION BYTE b46:1;
|
||||||
|
__EXTENSION BYTE b47:1;
|
||||||
|
__EXTENSION BYTE b48:1;
|
||||||
|
__EXTENSION BYTE b49:1;
|
||||||
|
__EXTENSION BYTE b50:1;
|
||||||
|
__EXTENSION BYTE b51:1;
|
||||||
|
__EXTENSION BYTE b52:1;
|
||||||
|
__EXTENSION BYTE b53:1;
|
||||||
|
__EXTENSION BYTE b54:1;
|
||||||
|
__EXTENSION BYTE b55:1;
|
||||||
|
__EXTENSION BYTE b56:1;
|
||||||
|
__EXTENSION BYTE b57:1;
|
||||||
|
__EXTENSION BYTE b58:1;
|
||||||
|
__EXTENSION BYTE b59:1;
|
||||||
|
__EXTENSION BYTE b60:1;
|
||||||
|
__EXTENSION BYTE b61:1;
|
||||||
|
__EXTENSION BYTE b62:1;
|
||||||
|
__EXTENSION BYTE b63:1;
|
||||||
|
} bits;
|
||||||
|
} QWORD_VAL;
|
||||||
|
|
||||||
|
#undef __EXTENSION
|
||||||
|
|
||||||
|
#endif /* __GENERIC_TYPE_DEFS_H_ */
|
||||||
146
Source/USB/USB2.9i_cdc/include/USB/usb.h
Normale Datei
146
Source/USB/USB2.9i_cdc/include/USB/usb.h
Normale Datei
@ -0,0 +1,146 @@
|
|||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/*********************************************************************
|
||||||
|
* The following lines are used by VDI.
|
||||||
|
* GUID=E537A0C0-6FEE-4afd-89B9-0C35BF72A80B
|
||||||
|
* GUIInterfaceVersion=1.00
|
||||||
|
* LibraryVersion=2.4
|
||||||
|
*********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
USB Header File
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file aggregates all necessary header files for the Microchip USB Host,
|
||||||
|
Device, and OTG libraries. It provides a single-file can be included in
|
||||||
|
application code. The USB libraries simplify the implementation of USB
|
||||||
|
applications by providing an abstraction of the USB module and its registers
|
||||||
|
and bits such that the source code for the can be the same across various
|
||||||
|
hardware platforms.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This file aggregates all necessary header files for the Microchip USB Host,
|
||||||
|
Device, and OTG libraries. It provides a single-file can be included in
|
||||||
|
application code. The USB libraries simplify the implementation of USB
|
||||||
|
applications by providing an abstraction of the USB module and its registers
|
||||||
|
and bits such that the source code for the can be the same across various
|
||||||
|
hardware platforms.
|
||||||
|
|
||||||
|
Note that this file does not include the header files for any client or
|
||||||
|
function drivers.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
|
||||||
|
..\\..\\Microchip\\Include
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
|
||||||
|
******************************************************************************/
|
||||||
|
/******************************************************************************
|
||||||
|
FileName: usb.h
|
||||||
|
Dependencies: See INCLUDES section
|
||||||
|
Processor: PIC18, PIC24, & PIC32 USB Microcontrollers
|
||||||
|
Hardware:
|
||||||
|
Complier: Microchip C18 (for PIC18), C30 (for PIC24), or C32 (for PIC32)
|
||||||
|
Company: Microchip Technology, Inc.
|
||||||
|
|
||||||
|
Software License Agreement:
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the "Company") for its PICmicro(r) Microcontroller is intended and
|
||||||
|
supplied to you, the Company's customer, for use solely and
|
||||||
|
exclusively on Microchip PICmicro Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/********************************************************************
|
||||||
|
File Description:
|
||||||
|
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---------- -----------
|
||||||
|
2.6 - 2.9 No change except stack revision number
|
||||||
|
********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
#ifndef _USB_H_
|
||||||
|
#define _USB_H_
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: All necessary USB Library headers
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
#include "GenericTypeDefs.h"
|
||||||
|
#include "Compiler.h"
|
||||||
|
|
||||||
|
#include "usb_config.h" // Must be defined by the application
|
||||||
|
|
||||||
|
#include "USB/usb_common.h" // Common USB library definitions
|
||||||
|
#include "USB/usb_ch9.h" // USB device framework definitions
|
||||||
|
|
||||||
|
#if defined( USB_SUPPORT_DEVICE )
|
||||||
|
#include "USB/usb_device.h" // USB Device abstraction layer interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined( USB_SUPPORT_HOST )
|
||||||
|
#include "USB/usb_host.h" // USB Host abstraction layer interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined ( USB_SUPPORT_OTG )
|
||||||
|
#include "USB/usb_otg.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "USB/usb_hal.h" // Hardware Abstraction Layer interface
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: MCHPFSUSB Firmware Version
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
#define USB_MAJOR_VER 2 // Firmware version, major release number.
|
||||||
|
#define USB_MINOR_VER 9 // Firmware version, minor release number.
|
||||||
|
#define USB_DOT_VER 0 // Firmware version, dot release number.
|
||||||
|
|
||||||
|
#endif // _USB_H_
|
||||||
|
/*************************************************************************
|
||||||
|
* EOF
|
||||||
|
*/
|
||||||
|
|
||||||
618
Source/USB/USB2.9i_cdc/include/USB/usb_ch9.h
Normale Datei
618
Source/USB/USB2.9i_cdc/include/USB/usb_ch9.h
Normale Datei
@ -0,0 +1,618 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
USB Chapter 9 Protocol (Header File)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file defines data structures, constants, and macros that are used to
|
||||||
|
to support the USB Device Framework protocol described in Chapter 9 of the
|
||||||
|
USB 2.0 specification.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This file defines data structures, constants, and macros that are used to
|
||||||
|
to support the USB Device Framework protocol described in Chapter 9 of the
|
||||||
|
USB 2.0 specification.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
|
||||||
|
..\\..\\Microchip\\Include
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
* FileName: usb_ch9.h
|
||||||
|
* Dependencies: None
|
||||||
|
* Processor: PIC18/PIC24/PIC32MX microcontrollers with USB module
|
||||||
|
* Compiler: C18 v3.13+/C30 v2.01+/C32 v0.00.18+
|
||||||
|
* Company: Microchip Technology, Inc.
|
||||||
|
* File Description:
|
||||||
|
* This file contains the definitions and prototypes used for
|
||||||
|
* specification chapter 9 compliance.
|
||||||
|
|
||||||
|
Software License Agreement
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the “Company”) for its PICmicro® Microcontroller is intended and
|
||||||
|
supplied to you, the Company’s customer, for use solely and
|
||||||
|
exclusively on Microchip PICmicro Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/********************************************************************
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---- -----------
|
||||||
|
2.6 Moved many of the CH9 defintions from the device stack files
|
||||||
|
into this file.
|
||||||
|
********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
#ifndef _USB_CH9_H_
|
||||||
|
#define _USB_CH9_H_
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: USB Descriptors
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
#define USB_DESCRIPTOR_DEVICE 0x01 // bDescriptorType for a Device Descriptor.
|
||||||
|
#define USB_DESCRIPTOR_CONFIGURATION 0x02 // bDescriptorType for a Configuration Descriptor.
|
||||||
|
#define USB_DESCRIPTOR_STRING 0x03 // bDescriptorType for a String Descriptor.
|
||||||
|
#define USB_DESCRIPTOR_INTERFACE 0x04 // bDescriptorType for an Interface Descriptor.
|
||||||
|
#define USB_DESCRIPTOR_ENDPOINT 0x05 // bDescriptorType for an Endpoint Descriptor.
|
||||||
|
#define USB_DESCRIPTOR_DEVICE_QUALIFIER 0x06 // bDescriptorType for a Device Qualifier.
|
||||||
|
#define USB_DESCRIPTOR_OTHER_SPEED 0x07 // bDescriptorType for a Other Speed Configuration.
|
||||||
|
#define USB_DESCRIPTOR_INTERFACE_POWER 0x08 // bDescriptorType for Interface Power.
|
||||||
|
#define USB_DESCRIPTOR_OTG 0x09 // bDescriptorType for an OTG Descriptor.
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB Device Descriptor Structure
|
||||||
|
|
||||||
|
This struct defines the structure of a USB Device Descriptor. Note that this
|
||||||
|
structure may need to be packed, or even accessed as bytes, to properly access
|
||||||
|
the correct fields when used on some device architectures.
|
||||||
|
*/
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_DEVICE_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Length of this descriptor.
|
||||||
|
BYTE bDescriptorType; // DEVICE descriptor type (USB_DESCRIPTOR_DEVICE).
|
||||||
|
WORD bcdUSB; // USB Spec Release Number (BCD).
|
||||||
|
BYTE bDeviceClass; // Class code (assigned by the USB-IF). 0xFF-Vendor specific.
|
||||||
|
BYTE bDeviceSubClass; // Subclass code (assigned by the USB-IF).
|
||||||
|
BYTE bDeviceProtocol; // Protocol code (assigned by the USB-IF). 0xFF-Vendor specific.
|
||||||
|
BYTE bMaxPacketSize0; // Maximum packet size for endpoint 0.
|
||||||
|
WORD idVendor; // Vendor ID (assigned by the USB-IF).
|
||||||
|
WORD idProduct; // Product ID (assigned by the manufacturer).
|
||||||
|
WORD bcdDevice; // Device release number (BCD).
|
||||||
|
BYTE iManufacturer; // Index of String Descriptor describing the manufacturer.
|
||||||
|
BYTE iProduct; // Index of String Descriptor describing the product.
|
||||||
|
BYTE iSerialNumber; // Index of String Descriptor with the device's serial number.
|
||||||
|
BYTE bNumConfigurations; // Number of possible configurations.
|
||||||
|
} USB_DEVICE_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB Configuration Descriptor Structure
|
||||||
|
|
||||||
|
This struct defines the structure of a USB Configuration Descriptor. Note that this
|
||||||
|
structure may need to be packed, or even accessed as bytes, to properly access
|
||||||
|
the correct fields when used on some device architectures.
|
||||||
|
*/
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_CONFIGURATION_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Length of this descriptor.
|
||||||
|
BYTE bDescriptorType; // CONFIGURATION descriptor type (USB_DESCRIPTOR_CONFIGURATION).
|
||||||
|
WORD wTotalLength; // Total length of all descriptors for this configuration.
|
||||||
|
BYTE bNumInterfaces; // Number of interfaces in this configuration.
|
||||||
|
BYTE bConfigurationValue; // Value of this configuration (1 based).
|
||||||
|
BYTE iConfiguration; // Index of String Descriptor describing the configuration.
|
||||||
|
BYTE bmAttributes; // Configuration characteristics.
|
||||||
|
BYTE bMaxPower; // Maximum power consumed by this configuration.
|
||||||
|
} USB_CONFIGURATION_DESCRIPTOR;
|
||||||
|
|
||||||
|
// Attributes bits
|
||||||
|
#define USB_CFG_DSC_REQUIRED 0x80 // Required attribute
|
||||||
|
#define USB_CFG_DSC_SELF_PWR (0x40|USB_CFG_DSC_REQUIRED) // Device is self powered.
|
||||||
|
#define USB_CFG_DSC_REM_WAKE (0x20|USB_CFG_DSC_REQUIRED) // Device can request remote wakup
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB Interface Descriptor Structure
|
||||||
|
|
||||||
|
This struct defines the structure of a USB Interface Descriptor. Note that this
|
||||||
|
structure may need to be packed, or even accessed as bytes, to properly access
|
||||||
|
the correct fields when used on some device architectures.
|
||||||
|
*/
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_INTERFACE_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Length of this descriptor.
|
||||||
|
BYTE bDescriptorType; // INTERFACE descriptor type (USB_DESCRIPTOR_INTERFACE).
|
||||||
|
BYTE bInterfaceNumber; // Number of this interface (0 based).
|
||||||
|
BYTE bAlternateSetting; // Value of this alternate interface setting.
|
||||||
|
BYTE bNumEndpoints; // Number of endpoints in this interface.
|
||||||
|
BYTE bInterfaceClass; // Class code (assigned by the USB-IF). 0xFF-Vendor specific.
|
||||||
|
BYTE bInterfaceSubClass; // Subclass code (assigned by the USB-IF).
|
||||||
|
BYTE bInterfaceProtocol; // Protocol code (assigned by the USB-IF). 0xFF-Vendor specific.
|
||||||
|
BYTE iInterface; // Index of String Descriptor describing the interface.
|
||||||
|
} USB_INTERFACE_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB Endpoint Descriptor Structure
|
||||||
|
|
||||||
|
This struct defines the structure of a USB Endpoint Descriptor. Note that this
|
||||||
|
structure may need to be packed, or even accessed as bytes, to properly access
|
||||||
|
the correct fields when used on some device architectures.
|
||||||
|
*/
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_ENDPOINT_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Length of this descriptor.
|
||||||
|
BYTE bDescriptorType; // ENDPOINT descriptor type (USB_DESCRIPTOR_ENDPOINT).
|
||||||
|
BYTE bEndpointAddress; // Endpoint address. Bit 7 indicates direction (0=OUT, 1=IN).
|
||||||
|
BYTE bmAttributes; // Endpoint transfer type.
|
||||||
|
WORD wMaxPacketSize; // Maximum packet size.
|
||||||
|
BYTE bInterval; // Polling interval in frames.
|
||||||
|
} USB_ENDPOINT_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
// Endpoint Direction
|
||||||
|
#define EP_DIR_IN 0x80 // Data flows from device to host
|
||||||
|
#define EP_DIR_OUT 0x00 // Data flows from host to device
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// USB Endpoint Attributes
|
||||||
|
// ******************************************************************
|
||||||
|
|
||||||
|
// Section: Transfer Types
|
||||||
|
#define EP_ATTR_CONTROL (0<<0) // Endoint used for control transfers
|
||||||
|
#define EP_ATTR_ISOCH (1<<0) // Endpoint used for isochronous transfers
|
||||||
|
#define EP_ATTR_BULK (2<<0) // Endpoint used for bulk transfers
|
||||||
|
#define EP_ATTR_INTR (3<<0) // Endpoint used for interrupt transfers
|
||||||
|
|
||||||
|
// Section: Synchronization Types (for isochronous enpoints)
|
||||||
|
#define EP_ATTR_NO_SYNC (0<<2) // No Synchronization
|
||||||
|
#define EP_ATTR_ASYNC (1<<2) // Asynchronous
|
||||||
|
#define EP_ATTR_ADAPT (2<<2) // Adaptive synchronization
|
||||||
|
#define EP_ATTR_SYNC (3<<2) // Synchronous
|
||||||
|
|
||||||
|
// Section: Usage Types (for isochronous endpoints)
|
||||||
|
#define EP_ATTR_DATA (0<<4) // Data Endpoint
|
||||||
|
#define EP_ATTR_FEEDBACK (1<<4) // Feedback endpoint
|
||||||
|
#define EP_ATTR_IMP_FB (2<<4) // Implicit Feedback data EP
|
||||||
|
|
||||||
|
// Section: Max Packet Sizes
|
||||||
|
#define EP_MAX_PKT_INTR_LS 8 // Max low-speed interrupt packet
|
||||||
|
#define EP_MAX_PKT_INTR_FS 64 // Max full-speed interrupt packet
|
||||||
|
#define EP_MAX_PKT_ISOCH_FS 1023 // Max full-speed isochronous packet
|
||||||
|
#define EP_MAX_PKT_BULK_FS 64 // Max full-speed bulk packet
|
||||||
|
#define EP_LG_PKT_BULK_FS 32 // Large full-speed bulk packet
|
||||||
|
#define EP_MED_PKT_BULK_FS 16 // Medium full-speed bulk packet
|
||||||
|
#define EP_SM_PKT_BULK_FS 8 // Small full-speed bulk packet
|
||||||
|
|
||||||
|
/* Descriptor IDs
|
||||||
|
The descriptor ID type defines the information required by the HOST during a
|
||||||
|
GET_DESCRIPTOR request
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE index;
|
||||||
|
BYTE type;
|
||||||
|
UINT16 language_id;
|
||||||
|
|
||||||
|
} DESCRIPTOR_ID;
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB OTG Descriptor Structure
|
||||||
|
|
||||||
|
This struct defines the structure of a USB OTG Descriptor. Note that this
|
||||||
|
structure may need to be packed, or even accessed as bytes, to properly access
|
||||||
|
the correct fields when used on some device architectures.
|
||||||
|
*/
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_OTG_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Length of this descriptor.
|
||||||
|
BYTE bDescriptorType; // OTG descriptor type (USB_DESCRIPTOR_OTG).
|
||||||
|
BYTE bmAttributes; // OTG attributes.
|
||||||
|
} USB_OTG_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// Section: USB String Descriptor Structure
|
||||||
|
// ******************************************************************
|
||||||
|
// This structure describes the USB string descriptor. The string
|
||||||
|
// descriptor provides user-readable information about various aspects of
|
||||||
|
// the device. The first string desriptor (string descriptor zero (0)),
|
||||||
|
// provides a list of the number of languages supported by the set of
|
||||||
|
// string descriptors for this device instead of an actual string.
|
||||||
|
//
|
||||||
|
// Note: The strings are in 2-byte-per-character unicode, not ASCII.
|
||||||
|
//
|
||||||
|
// Note: This structure only describes the "header" of the string
|
||||||
|
// descriptor. The actual data (either the language ID array or the
|
||||||
|
// array of unicode characters making up the string, must be allocated
|
||||||
|
// immediately following this header with no padding between them.
|
||||||
|
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_STRING_DSC
|
||||||
|
{
|
||||||
|
BYTE bLength; // Size of this descriptor
|
||||||
|
BYTE bDescriptorType; // Type, USB_DSC_STRING
|
||||||
|
|
||||||
|
} USB_STRING_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// Section: USB Device Qualifier Descriptor Structure
|
||||||
|
// ******************************************************************
|
||||||
|
// This structure describes the device qualifier descriptor. The device
|
||||||
|
// qualifier descriptor provides overall device information if the device
|
||||||
|
// supports "other" speeds.
|
||||||
|
//
|
||||||
|
// Note: A high-speed device may support "other" speeds (ie. full or low).
|
||||||
|
// If so, it may need to implement the the device qualifier and other
|
||||||
|
// speed descriptors.
|
||||||
|
|
||||||
|
typedef struct __attribute__ ((packed)) _USB_DEVICE_QUALIFIER_DESCRIPTOR
|
||||||
|
{
|
||||||
|
BYTE bLength; // Size of this descriptor
|
||||||
|
BYTE bType; // Type, always USB_DESCRIPTOR_DEVICE_QUALIFIER
|
||||||
|
WORD bcdUSB; // USB spec version, in BCD
|
||||||
|
BYTE bDeviceClass; // Device class code
|
||||||
|
BYTE bDeviceSubClass; // Device sub-class code
|
||||||
|
BYTE bDeviceProtocol; // Device protocol
|
||||||
|
BYTE bMaxPacketSize0; // EP0, max packet size
|
||||||
|
BYTE bNumConfigurations; // Number of "other-speed" configurations
|
||||||
|
BYTE bReserved; // Always zero (0)
|
||||||
|
|
||||||
|
} USB_DEVICE_QUALIFIER_DESCRIPTOR;
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// Section: USB Setup Packet Structure
|
||||||
|
// ******************************************************************
|
||||||
|
// This structure describes the data contained in a USB standard device
|
||||||
|
// request's setup packet. It is the data packet sent from the host to
|
||||||
|
// the device to control and configure the device.
|
||||||
|
//
|
||||||
|
// Note: Refer to the USB 2.0 specification for additional details on the
|
||||||
|
// usage of the setup packet and standard device requests.
|
||||||
|
typedef union __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
/** Standard Device Requests ***********************************/
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
BYTE bmRequestType; //from table 9-2 of USB2.0 spec
|
||||||
|
BYTE bRequest; //from table 9-2 of USB2.0 spec
|
||||||
|
WORD wValue; //from table 9-2 of USB2.0 spec
|
||||||
|
WORD wIndex; //from table 9-2 of USB2.0 spec
|
||||||
|
WORD wLength; //from table 9-2 of USB2.0 spec
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
WORD_VAL W_Value; //from table 9-2 of USB2.0 spec, allows byte/bitwise access
|
||||||
|
WORD_VAL W_Index; //from table 9-2 of USB2.0 spec, allows byte/bitwise access
|
||||||
|
WORD_VAL W_Length; //from table 9-2 of USB2.0 spec, allows byte/bitwise access
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned Recipient:5; //Device,Interface,Endpoint,Other
|
||||||
|
unsigned RequestType:2; //Standard,Class,Vendor,Reserved
|
||||||
|
unsigned DataDir:1; //Host-to-device,Device-to-host
|
||||||
|
unsigned :8;
|
||||||
|
BYTE bFeature; //DEVICE_REMOTE_WAKEUP,ENDPOINT_HALT
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
union // offset description
|
||||||
|
{ // ------ ------------------------
|
||||||
|
BYTE bmRequestType; // 0 Bit-map of request type
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
BYTE recipient: 5; // Recipient of the request
|
||||||
|
BYTE type: 2; // Type of request
|
||||||
|
BYTE direction: 1; // Direction of data X-fer
|
||||||
|
};
|
||||||
|
}requestInfo;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
BYTE bDscIndex; //For Configuration and String DSC Only
|
||||||
|
BYTE bDescriptorType; //Device,Configuration,String
|
||||||
|
WORD wLangID; //Language ID
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
BYTE_VAL bDevADR; //Device Address 0-127
|
||||||
|
BYTE bDevADRH; //Must equal zero
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
BYTE bConfigurationValue; //Configuration Value 0-255
|
||||||
|
BYTE bCfgRSD; //Must equal zero (Reserved)
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
BYTE bAltID; //Alternate Setting Value 0-255
|
||||||
|
BYTE bAltID_H; //Must equal zero
|
||||||
|
BYTE bIntfID; //Interface Number Value 0-255
|
||||||
|
BYTE bIntfID_H; //Must equal zero
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
BYTE bEPID; //Endpoint ID (Number & Direction)
|
||||||
|
BYTE bEPID_H; //Must equal zero
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
struct __attribute__ ((packed))
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned EPNum:4; //Endpoint Number 0-15
|
||||||
|
unsigned :3;
|
||||||
|
unsigned EPDir:1; //Endpoint Direction: 0-OUT, 1-IN
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** End: Standard Device Requests ******************************/
|
||||||
|
|
||||||
|
} CTRL_TRF_SETUP, SETUP_PKT, *PSETUP_PKT;
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************************************
|
||||||
|
// ******************************************************************
|
||||||
|
// Section: USB Specification Constants
|
||||||
|
// ******************************************************************
|
||||||
|
// ******************************************************************
|
||||||
|
|
||||||
|
// Section: Valid PID Values
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
#define PID_OUT 0x1 // PID for an OUT token
|
||||||
|
#define PID_ACK 0x2 // PID for an ACK handshake
|
||||||
|
#define PID_DATA0 0x3 // PID for DATA0 data
|
||||||
|
#define PID_PING 0x4 // Special PID PING
|
||||||
|
#define PID_SOF 0x5 // PID for a SOF token
|
||||||
|
#define PID_NYET 0x6 // PID for a NYET handshake
|
||||||
|
#define PID_DATA2 0x7 // PID for DATA2 data
|
||||||
|
#define PID_SPLIT 0x8 // Special PID SPLIT
|
||||||
|
#define PID_IN 0x9 // PID for a IN token
|
||||||
|
#define PID_NAK 0xA // PID for a NAK handshake
|
||||||
|
#define PID_DATA1 0xB // PID for DATA1 data
|
||||||
|
#define PID_PRE 0xC // Special PID PRE (Same as PID_ERR)
|
||||||
|
#define PID_ERR 0xC // Special PID ERR (Same as PID_PRE)
|
||||||
|
#define PID_SETUP 0xD // PID for a SETUP token
|
||||||
|
#define PID_STALL 0xE // PID for a STALL handshake
|
||||||
|
#define PID_MDATA 0xF // PID for MDATA data
|
||||||
|
|
||||||
|
#define PID_MASK_DATA 0x03 // Data PID mask
|
||||||
|
#define PID_MASK_DATA_SHIFTED (PID_MASK_DATA << 2) // Data PID shift to proper position
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
// Section: USB Token Types
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
#define USB_TOKEN_OUT 0x01 // U1TOK - OUT token
|
||||||
|
#define USB_TOKEN_IN 0x09 // U1TOK - IN token
|
||||||
|
#define USB_TOKEN_SETUP 0x0D // U1TOK - SETUP token
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
// Section: OTG Descriptor Constants
|
||||||
|
|
||||||
|
#define OTG_HNP_SUPPORT 0x02 // OTG Descriptor bmAttributes - HNP support flag
|
||||||
|
#define OTG_SRP_SUPPORT 0x01 // OTG Descriptor bmAttributes - SRP support flag
|
||||||
|
|
||||||
|
// Section: Endpoint Directions
|
||||||
|
|
||||||
|
#define USB_IN_EP 0x80 // IN endpoint mask
|
||||||
|
#define USB_OUT_EP 0x00 // OUT endpoint mask
|
||||||
|
|
||||||
|
// Section: Standard Device Requests
|
||||||
|
|
||||||
|
#define USB_REQUEST_GET_STATUS 0 // Standard Device Request - GET STATUS
|
||||||
|
#define USB_REQUEST_CLEAR_FEATURE 1 // Standard Device Request - CLEAR FEATURE
|
||||||
|
#define USB_REQUEST_SET_FEATURE 3 // Standard Device Request - SET FEATURE
|
||||||
|
#define USB_REQUEST_SET_ADDRESS 5 // Standard Device Request - SET ADDRESS
|
||||||
|
#define USB_REQUEST_GET_DESCRIPTOR 6 // Standard Device Request - GET DESCRIPTOR
|
||||||
|
#define USB_REQUEST_SET_DESCRIPTOR 7 // Standard Device Request - SET DESCRIPTOR
|
||||||
|
#define USB_REQUEST_GET_CONFIGURATION 8 // Standard Device Request - GET CONFIGURATION
|
||||||
|
#define USB_REQUEST_SET_CONFIGURATION 9 // Standard Device Request - SET CONFIGURATION
|
||||||
|
#define USB_REQUEST_GET_INTERFACE 10 // Standard Device Request - GET INTERFACE
|
||||||
|
#define USB_REQUEST_SET_INTERFACE 11 // Standard Device Request - SET INTERFACE
|
||||||
|
#define USB_REQUEST_SYNCH_FRAME 12 // Standard Device Request - SYNCH FRAME
|
||||||
|
|
||||||
|
#define USB_FEATURE_ENDPOINT_HALT 0 // CLEAR/SET FEATURE - Endpoint Halt
|
||||||
|
#define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 // CLEAR/SET FEATURE - Device remote wake-up
|
||||||
|
#define USB_FEATURE_TEST_MODE 2 // CLEAR/SET FEATURE - Test mode
|
||||||
|
|
||||||
|
// Section: Setup Data Constants
|
||||||
|
|
||||||
|
#define USB_SETUP_HOST_TO_DEVICE 0x00 // Device Request bmRequestType transfer direction - host to device transfer
|
||||||
|
#define USB_SETUP_DEVICE_TO_HOST 0x80 // Device Request bmRequestType transfer direction - device to host transfer
|
||||||
|
#define USB_SETUP_TYPE_STANDARD 0x00 // Device Request bmRequestType type - standard
|
||||||
|
#define USB_SETUP_TYPE_CLASS 0x20 // Device Request bmRequestType type - class
|
||||||
|
#define USB_SETUP_TYPE_VENDOR 0x40 // Device Request bmRequestType type - vendor
|
||||||
|
#define USB_SETUP_RECIPIENT_DEVICE 0x00 // Device Request bmRequestType recipient - device
|
||||||
|
#define USB_SETUP_RECIPIENT_INTERFACE 0x01 // Device Request bmRequestType recipient - interface
|
||||||
|
#define USB_SETUP_RECIPIENT_ENDPOINT 0x02 // Device Request bmRequestType recipient - endpoint
|
||||||
|
#define USB_SETUP_RECIPIENT_OTHER 0x03 // Device Request bmRequestType recipient - other
|
||||||
|
|
||||||
|
#define USB_SETUP_HOST_TO_DEVICE_BITFIELD (USB_SETUP_HOST_TO_DEVICE>>7) // Device Request bmRequestType transfer direction - host to device transfer - bit definition
|
||||||
|
#define USB_SETUP_DEVICE_TO_HOST_BITFIELD (USB_SETUP_DEVICE_TO_HOST>>7) // Device Request bmRequestType transfer direction - device to host transfer - bit definition
|
||||||
|
#define USB_SETUP_TYPE_STANDARD_BITFIELD (USB_SETUP_TYPE_STANDARD>>5) // Device Request bmRequestType type - standard
|
||||||
|
#define USB_SETUP_TYPE_CLASS_BITFIELD (USB_SETUP_TYPE_CLASS>>5) // Device Request bmRequestType type - class
|
||||||
|
#define USB_SETUP_TYPE_VENDOR_BITFIELD (USB_SETUP_TYPE_VENDOR>>5) // Device Request bmRequestType type - vendor
|
||||||
|
#define USB_SETUP_RECIPIENT_DEVICE_BITFIELD (USB_SETUP_RECIPIENT_DEVICE) // Device Request bmRequestType recipient - device
|
||||||
|
#define USB_SETUP_RECIPIENT_INTERFACE_BITFIELD (USB_SETUP_RECIPIENT_INTERFACE) // Device Request bmRequestType recipient - interface
|
||||||
|
#define USB_SETUP_RECIPIENT_ENDPOINT_BITFIELD (USB_SETUP_RECIPIENT_ENDPOINT) // Device Request bmRequestType recipient - endpoint
|
||||||
|
#define USB_SETUP_RECIPIENT_OTHER_BITFIELD (USB_SETUP_RECIPIENT_OTHER) // Device Request bmRequestType recipient - other
|
||||||
|
|
||||||
|
// Section: OTG SET FEATURE Constants
|
||||||
|
|
||||||
|
#define OTG_FEATURE_B_HNP_ENABLE 3 // SET FEATURE OTG - Enable B device to perform HNP
|
||||||
|
#define OTG_FEATURE_A_HNP_SUPPORT 4 // SET FEATURE OTG - A device supports HNP
|
||||||
|
#define OTG_FEATURE_A_ALT_HNP_SUPPORT 5 // SET FEATURE OTG - Another port on the A device supports HNP
|
||||||
|
|
||||||
|
// Section: USB Endpoint Transfer Types
|
||||||
|
|
||||||
|
#define USB_TRANSFER_TYPE_CONTROL 0x00 // Endpoint is a control endpoint.
|
||||||
|
#define USB_TRANSFER_TYPE_ISOCHRONOUS 0x01 // Endpoint is an isochronous endpoint.
|
||||||
|
#define USB_TRANSFER_TYPE_BULK 0x02 // Endpoint is a bulk endpoint.
|
||||||
|
#define USB_TRANSFER_TYPE_INTERRUPT 0x03 // Endpoint is an interrupt endpoint.
|
||||||
|
|
||||||
|
// Section: Standard Feature Selectors for CLEAR_FEATURE Requests
|
||||||
|
#define USB_FEATURE_ENDPOINT_STALL 0 // Endpoint recipient
|
||||||
|
#define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 // Device recipient
|
||||||
|
#define USB_FEATURE_TEST_MODE 2 // Device recipient
|
||||||
|
|
||||||
|
|
||||||
|
// Section: USB Class Code Definitions
|
||||||
|
#define USB_HUB_CLASSCODE 0x09 // Class code for a hub.
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
USB Endpoint Definitions
|
||||||
|
USB Standard EP Address Format: DIR:X:X:X:EP3:EP2:EP1:EP0
|
||||||
|
This is used in the descriptors.
|
||||||
|
********************************************************************/
|
||||||
|
#define _EP_IN 0x80
|
||||||
|
#define _EP_OUT 0x00
|
||||||
|
#define _EP01_OUT 0x01
|
||||||
|
#define _EP01_IN 0x81
|
||||||
|
#define _EP02_OUT 0x02
|
||||||
|
#define _EP02_IN 0x82
|
||||||
|
#define _EP03_OUT 0x03
|
||||||
|
#define _EP03_IN 0x83
|
||||||
|
#define _EP04_OUT 0x04
|
||||||
|
#define _EP04_IN 0x84
|
||||||
|
#define _EP05_OUT 0x05
|
||||||
|
#define _EP05_IN 0x85
|
||||||
|
#define _EP06_OUT 0x06
|
||||||
|
#define _EP06_IN 0x86
|
||||||
|
#define _EP07_OUT 0x07
|
||||||
|
#define _EP07_IN 0x87
|
||||||
|
#define _EP08_OUT 0x08
|
||||||
|
#define _EP08_IN 0x88
|
||||||
|
#define _EP09_OUT 0x09
|
||||||
|
#define _EP09_IN 0x89
|
||||||
|
#define _EP10_OUT 0x0A
|
||||||
|
#define _EP10_IN 0x8A
|
||||||
|
#define _EP11_OUT 0x0B
|
||||||
|
#define _EP11_IN 0x8B
|
||||||
|
#define _EP12_OUT 0x0C
|
||||||
|
#define _EP12_IN 0x8C
|
||||||
|
#define _EP13_OUT 0x0D
|
||||||
|
#define _EP13_IN 0x8D
|
||||||
|
#define _EP14_OUT 0x0E
|
||||||
|
#define _EP14_IN 0x8E
|
||||||
|
#define _EP15_OUT 0x0F
|
||||||
|
#define _EP15_IN 0x8F
|
||||||
|
|
||||||
|
/* Configuration Attributes */
|
||||||
|
#define _DEFAULT (0x01<<7) //Default Value (Bit 7 is set)
|
||||||
|
#define _SELF (0x01<<6) //Self-powered (Supports if set)
|
||||||
|
#define _RWU (0x01<<5) //Remote Wakeup (Supports if set)
|
||||||
|
#define _HNP (0x01 << 1) //HNP (Supports if set)
|
||||||
|
#define _SRP (0x01) //SRP (Supports if set)
|
||||||
|
|
||||||
|
/* Endpoint Transfer Type */
|
||||||
|
#define _CTRL 0x00 //Control Transfer
|
||||||
|
#define _ISO 0x01 //Isochronous Transfer
|
||||||
|
#define _BULK 0x02 //Bulk Transfer
|
||||||
|
|
||||||
|
#define _INTERRUPT 0x03 //Interrupt Transfer
|
||||||
|
#if defined(__18CXX) || defined(__C30__) || defined __XC16__
|
||||||
|
#define _INT 0x03 //Interrupt Transfer
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Isochronous Endpoint Synchronization Type */
|
||||||
|
#define _NS (0x00<<2) //No Synchronization
|
||||||
|
#define _AS (0x01<<2) //Asynchronous
|
||||||
|
#define _AD (0x02<<2) //Adaptive
|
||||||
|
#define _SY (0x03<<2) //Synchronous
|
||||||
|
|
||||||
|
/* Isochronous Endpoint Usage Type */
|
||||||
|
#define _DE (0x00<<4) //Data endpoint
|
||||||
|
#define _FE (0x01<<4) //Feedback endpoint
|
||||||
|
#define _IE (0x02<<4) //Implicit feedback Data endpoint
|
||||||
|
|
||||||
|
//These are the directional indicators used for the USBTransferOnePacket()
|
||||||
|
// function.
|
||||||
|
#define OUT_FROM_HOST 0
|
||||||
|
#define IN_TO_HOST 1
|
||||||
|
|
||||||
|
#endif // _USB_CH9_H_
|
||||||
|
/*************************************************************************
|
||||||
|
* EOF
|
||||||
|
*/
|
||||||
|
|
||||||
601
Source/USB/USB2.9i_cdc/include/USB/usb_common.h
Normale Datei
601
Source/USB/USB2.9i_cdc/include/USB/usb_common.h
Normale Datei
@ -0,0 +1,601 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
Common USB Library Definitions (Header File)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file defines data types, constants, and macros that are common to
|
||||||
|
multiple layers of the Microchip USB Firmware Stack.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This file defines data types, constants, and macros that are common to
|
||||||
|
multiple layers of the Microchip USB Firmware Stack.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
..\\..\\MicrochipInclude
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
FileName: usb_common.h
|
||||||
|
Dependencies: See included files, below.
|
||||||
|
Processor: PIC18/PIC24/PIC32MX microcontrollers with USB module
|
||||||
|
Compiler: C18 v3.13+/C30 v2.01+/C32 v0.00.18+
|
||||||
|
Company: Microchip Technology, Inc.
|
||||||
|
|
||||||
|
Software License Agreement
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the “Company”) for its PICmicro® Microcontroller is intended and
|
||||||
|
supplied to you, the Company’s customer, for use solely and
|
||||||
|
exclusively on Microchip PICmicro Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/********************************************************************
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---- -----------
|
||||||
|
2.6 Moved many of the USB events
|
||||||
|
2.6a Changed the limit of USB_EVENT from UINT_MAX to INT_MAX
|
||||||
|
2.7 No change
|
||||||
|
********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
#ifndef _USB_COMMON_H_
|
||||||
|
#define _USB_COMMON_H_
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: USB Constants
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
// Section: Error Code Values
|
||||||
|
|
||||||
|
#define USB_SUCCESS 0x00 // USB operation successful.
|
||||||
|
#define USB_INVALID_STATE 0x01 // Operation cannot be performed in current state.
|
||||||
|
#define USB_BUSY 0x02 // A transaction is already in progress.
|
||||||
|
#define USB_ILLEGAL_REQUEST 0x03 // Cannot perform requested operation.
|
||||||
|
#define USB_INVALID_CONFIGURATION 0x04 // Configuration descriptor not found.
|
||||||
|
#define USB_MEMORY_ALLOCATION_ERROR 0x05 // Out of dynamic memory.
|
||||||
|
#define USB_UNKNOWN_DEVICE 0x06 // Device with specified address is not attached.
|
||||||
|
#define USB_CANNOT_ENUMERATE 0x07 // Cannot enumerate the attached device.
|
||||||
|
#define USB_EVENT_QUEUE_FULL 0x08 // Event queue was full when an event occured.
|
||||||
|
#define USB_ENDPOINT_BUSY 0x10 // Endpoint is currently processing a transaction.
|
||||||
|
#define USB_ENDPOINT_STALLED 0x11 // Endpoint is currently stalled. User must clear the condition.
|
||||||
|
#define USB_ENDPOINT_ERROR 0x12 // Will need more than this eventually
|
||||||
|
#define USB_ENDPOINT_ERROR_ILLEGAL_PID 0x13 // Illegal PID received.
|
||||||
|
#define USB_ENDPOINT_NOT_FOUND 0x14 // Requested endpoint does not exist on device.
|
||||||
|
#define USB_ENDPOINT_ILLEGAL_DIRECTION 0x15 // Reads must be performe on IN endpoints, writes on OUT endpoints.
|
||||||
|
//#define USB_ENDPOINT_TRANSACTION_IN_PROGRESS 0x16
|
||||||
|
#define USB_ENDPOINT_NAK_TIMEOUT 0x17 // Too many NAK's occurred while waiting for the current transaction.
|
||||||
|
#define USB_ENDPOINT_ILLEGAL_TYPE 0x18 // Transfer type must match endpoint description.
|
||||||
|
#define USB_ENDPOINT_UNRESOLVED_STATE 0x19 // Endpoint is in an unknown state after completing a transaction.
|
||||||
|
#define USB_ENDPOINT_ERROR_BIT_STUFF 0x20 // USB Module - Bit stuff error.
|
||||||
|
#define USB_ENDPOINT_ERROR_DMA 0x21 // USB Module - DMA error.
|
||||||
|
#define USB_ENDPOINT_ERROR_TIMEOUT 0x22 // USB Module - Bus timeout.
|
||||||
|
#define USB_ENDPOINT_ERROR_DATA_FIELD 0x23 // USB Module - Data field size error.
|
||||||
|
#define USB_ENDPOINT_ERROR_CRC16 0x24 // USB Module - CRC16 failure.
|
||||||
|
#define USB_ENDPOINT_ERROR_END_OF_FRAME 0x25 // USB Module - End of Frame error.
|
||||||
|
#define USB_ENDPOINT_ERROR_PID_CHECK 0x26 // USB Module - Illegal PID received.
|
||||||
|
#define USB_ENDPOINT_ERROR_BMX 0x27 // USB Module - Bus Matrix error.
|
||||||
|
#define USB_ERROR_INSUFFICIENT_POWER 0x28 // Too much power was requested
|
||||||
|
|
||||||
|
// Section: Return values for USBHostDeviceStatus()
|
||||||
|
|
||||||
|
#define USB_DEVICE_STATUS 0x30 // Offset for USBHostDeviceStatus() return codes
|
||||||
|
#define USB_DEVICE_ATTACHED (USB_DEVICE_STATUS | 0x30) // Device is attached and running
|
||||||
|
#define USB_DEVICE_DETACHED (USB_DEVICE_STATUS | 0x01) // No device is attached
|
||||||
|
#define USB_DEVICE_ENUMERATING (USB_DEVICE_STATUS | 0x02) // Device is enumerating
|
||||||
|
#define USB_HOLDING_OUT_OF_MEMORY (USB_DEVICE_STATUS | 0x03) // Not enough heap space available
|
||||||
|
#define USB_HOLDING_UNSUPPORTED_DEVICE (USB_DEVICE_STATUS | 0x04) // Invalid configuration or unsupported class
|
||||||
|
#define USB_HOLDING_UNSUPPORTED_HUB (USB_DEVICE_STATUS | 0x05) // Hubs are not supported
|
||||||
|
#define USB_HOLDING_INVALID_CONFIGURATION (USB_DEVICE_STATUS | 0x06) // Invalid configuration requested
|
||||||
|
#define USB_HOLDING_PROCESSING_CAPACITY (USB_DEVICE_STATUS | 0x07) // Processing requirement excessive
|
||||||
|
#define USB_HOLDING_POWER_REQUIREMENT (USB_DEVICE_STATUS | 0x08) // Power requirement excessive
|
||||||
|
#define USB_HOLDING_CLIENT_INIT_ERROR (USB_DEVICE_STATUS | 0x09) // Client driver failed to initialize
|
||||||
|
#define USB_DEVICE_SUSPENDED (USB_DEVICE_STATUS | 0x0A) // Device is suspended
|
||||||
|
|
||||||
|
#define USB_ERROR_CLASS_DEFINED 0x50 // Offset for application defined errors
|
||||||
|
|
||||||
|
#define USB_SINGLE_DEVICE_ADDRESS 0x01 // Default USB device address (single device support)
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: USB Data Types
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* Data Transfer Flags
|
||||||
|
|
||||||
|
The following flags are used in the flags parameter of the "USBDEVTransferData"
|
||||||
|
and "USBHALTransferData" routines. They can be accessed by the bitfield
|
||||||
|
definitions or the macros can be OR'd together to identify the endpoint number
|
||||||
|
and properties of the data transfer.
|
||||||
|
|
||||||
|
<code>
|
||||||
|
7 6 5 4 3 2 1 0 - Field name
|
||||||
|
| | | | \_____/
|
||||||
|
| | | | +----- ep_num - Endpoint number
|
||||||
|
| | | +---------- zero_pkt - End transfer with short or zero-sized packet
|
||||||
|
| | +------------ dts - 0=DATA0 packet, 1=DATA1 packet
|
||||||
|
| +-------------- force_dts - Force data toggle sync to match dts field
|
||||||
|
+---------------- direction - Transfer direction: 0=Receive, 1=Transmit
|
||||||
|
</code>
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
BYTE bitmap;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
BYTE ep_num: 4;
|
||||||
|
BYTE zero_pkt: 1;
|
||||||
|
BYTE dts: 1;
|
||||||
|
BYTE force_dts: 1;
|
||||||
|
BYTE direction: 1;
|
||||||
|
}field;
|
||||||
|
|
||||||
|
} TRANSFER_FLAGS;
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* Data Transfer Flags, Endpoint Number Constants
|
||||||
|
|
||||||
|
These macros can be used as values for the "ep_num" field of the TRANSFER_FLAGS
|
||||||
|
data type.
|
||||||
|
*/
|
||||||
|
#define USB_EP0 0 //
|
||||||
|
#define USB_EP1 1 //
|
||||||
|
#define USB_EP2 2 //
|
||||||
|
#define USB_EP3 3 //
|
||||||
|
#define USB_EP4 4 //
|
||||||
|
#define USB_EP5 5 //
|
||||||
|
#define USB_EP6 6 //
|
||||||
|
#define USB_EP7 7 //
|
||||||
|
#define USB_EP8 8 //
|
||||||
|
#define USB_EP9 9 //
|
||||||
|
#define USB_EP10 10 //
|
||||||
|
#define USB_EP11 11 //
|
||||||
|
#define USB_EP12 12 //
|
||||||
|
#define USB_EP13 13 //
|
||||||
|
#define USB_EP14 14 //
|
||||||
|
#define USB_EP15 15 //
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* Data Transfer Flags, Bitmap Constants
|
||||||
|
|
||||||
|
These macros can be used as values for the "bitmap" field of the TRANSFER_FLAGS
|
||||||
|
data type.
|
||||||
|
*/
|
||||||
|
#define USB_TRANSMIT 0x80 // Data will be transmitted to the USB
|
||||||
|
#define USB_RECEIVE 0x00 // Data will be received from the USB
|
||||||
|
#define USB_FORCE_DTS 0x40 // Forces data toggle sync as below:
|
||||||
|
#define USB_DTS_MASK 0x20 // Mask for DTS bit (below)
|
||||||
|
#define USB_ZERO_PKT 0x10 // End transfer w/a short or zero-length packet
|
||||||
|
#define USB_DATA0 0x00|USB_FORCE_DTS // Force DATA0
|
||||||
|
#define USB_DATA1 0x20|USB_FORCE_DTS // Force DATA1
|
||||||
|
#define USB_SETUP_PKT USB_RECEIVE|USB_DATA0|USB_EP0 // Setup Packet
|
||||||
|
#define USB_SETUP_DATA USB_DATA1|USB_ZERO_PKT|USB_EP0 // Setup-transfer Data Packet
|
||||||
|
#define USB_SETUP_STATUS USB_DATA1|USB_EP0 // Setup-transfer Status Packet
|
||||||
|
#define USB_EP_NUM_MASK 0x0F // Endpoint number (ep_num) mask
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* Data Transfer Flags, Initialization Macro
|
||||||
|
|
||||||
|
This macro can be used with the above bitmap constants to initialize a
|
||||||
|
TRANSFER_FLAGS value. It provides the correct data type to avoid compiler
|
||||||
|
warnings.
|
||||||
|
*/
|
||||||
|
#define XFLAGS(f) ((TRANSFER_FLAGS)((BYTE)(f))) // Initialization Macro
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB Events
|
||||||
|
|
||||||
|
This enumeration identifies USB events that occur. It is used to
|
||||||
|
inform USB drivers and applications of events on the bus. It is passed
|
||||||
|
as a parameter to the event-handling routine, which must match the
|
||||||
|
prototype of the USB_CLIENT_EVENT_HANDLER data type, when an event occurs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// No event occured (NULL event)
|
||||||
|
EVENT_NONE = 0,
|
||||||
|
|
||||||
|
EVENT_DEVICE_STACK_BASE = 1,
|
||||||
|
|
||||||
|
EVENT_HOST_STACK_BASE = 100,
|
||||||
|
|
||||||
|
// A USB hub has been attached. Hub support is not currently available.
|
||||||
|
EVENT_HUB_ATTACH,
|
||||||
|
|
||||||
|
// A stall has occured. This event is not used by the Host stack.
|
||||||
|
EVENT_STALL,
|
||||||
|
|
||||||
|
// VBus SRP Pulse, (VBus > 2.0v), Data: BYTE Port Number (For future support)
|
||||||
|
EVENT_VBUS_SES_REQUEST,
|
||||||
|
|
||||||
|
// The voltage on Vbus has dropped below 4.4V/4.7V. The application is
|
||||||
|
// responsible for monitoring Vbus and calling USBHostVbusEvent() with this
|
||||||
|
// event. This event is not generated by the stack.
|
||||||
|
EVENT_VBUS_OVERCURRENT,
|
||||||
|
|
||||||
|
// An enumerating device is requesting power. The data associated with this
|
||||||
|
// event is of the data type USB_VBUS_POWER_EVENT_DATA. Note that
|
||||||
|
// the requested current is specified in 2mA units, identical to the power
|
||||||
|
// specification in a device's Configuration Descriptor.
|
||||||
|
EVENT_VBUS_REQUEST_POWER,
|
||||||
|
|
||||||
|
// Release power from a detaching device. The data associated with this
|
||||||
|
// event is of the data type USB_VBUS_POWER_EVENT_DATA. The current value
|
||||||
|
// specified in the data can be ignored.
|
||||||
|
EVENT_VBUS_RELEASE_POWER,
|
||||||
|
|
||||||
|
// The voltage on Vbus is good, and the USB OTG module can be powered on.
|
||||||
|
// The application is responsible for monitoring Vbus and calling
|
||||||
|
// USBHostVbusEvent() with this event. This event is not generated by the
|
||||||
|
// stack. If the application issues an EVENT_VBUS_OVERCURRENT, then no
|
||||||
|
// power will be applied to that port, and no device can attach to that
|
||||||
|
// port, until the application issues the EVENT_VBUS_POWER_AVAILABLE for
|
||||||
|
// the port.
|
||||||
|
EVENT_VBUS_POWER_AVAILABLE,
|
||||||
|
|
||||||
|
// The attached device is not supported by the application. The attached
|
||||||
|
// device is not allowed to enumerate.
|
||||||
|
EVENT_UNSUPPORTED_DEVICE,
|
||||||
|
|
||||||
|
// Cannot enumerate the attached device. This is generated if communication
|
||||||
|
// errors prevent the device from enumerating.
|
||||||
|
EVENT_CANNOT_ENUMERATE,
|
||||||
|
|
||||||
|
// The client driver cannot initialize the the attached device. The
|
||||||
|
// attached is not allowed to enumerate.
|
||||||
|
EVENT_CLIENT_INIT_ERROR,
|
||||||
|
|
||||||
|
// The Host stack does not have enough heap space to enumerate the device.
|
||||||
|
// Check the amount of heap space allocated to the application. In MPLAB,
|
||||||
|
// select Project> Build Options...> Project. Select the appropriate
|
||||||
|
// linker tab, and inspect the "Heap size" entry.
|
||||||
|
EVENT_OUT_OF_MEMORY,
|
||||||
|
|
||||||
|
// Unspecified host error. (This error should not occur).
|
||||||
|
EVENT_UNSPECIFIED_ERROR,
|
||||||
|
|
||||||
|
// USB cable has been detached. The data associated with this event is the
|
||||||
|
// address of detached device, a single BYTE.
|
||||||
|
EVENT_DETACH,
|
||||||
|
|
||||||
|
// A USB transfer has completed. The data associated with this event is of
|
||||||
|
// the data type HOST_TRANSFER_DATA if the event is generated from the host
|
||||||
|
// stack.
|
||||||
|
EVENT_TRANSFER,
|
||||||
|
|
||||||
|
// A USB Start of Frame token has been received. This event is not
|
||||||
|
// used by the Host stack.
|
||||||
|
EVENT_SOF,
|
||||||
|
|
||||||
|
// Device-mode resume received. This event is not used by the Host stack.
|
||||||
|
EVENT_RESUME,
|
||||||
|
|
||||||
|
// Device-mode suspend/idle event received. This event is not used by the
|
||||||
|
// Host stack.
|
||||||
|
EVENT_SUSPEND,
|
||||||
|
|
||||||
|
// Device-mode bus reset received. This event is not used by the Host
|
||||||
|
// stack.
|
||||||
|
EVENT_RESET,
|
||||||
|
|
||||||
|
// In Host mode, an isochronous data read has completed. This event will only
|
||||||
|
// be passed to the DataEventHandler, which is only utilized if it is defined.
|
||||||
|
// Note that the DataEventHandler is called from within the USB interrupt, so
|
||||||
|
// it is critical that it return in time for the next isochronous data packet.
|
||||||
|
EVENT_DATA_ISOC_READ,
|
||||||
|
|
||||||
|
// In Host mode, an isochronous data write has completed. This event will only
|
||||||
|
// be passed to the DataEventHandler, which is only utilized if it is defined.
|
||||||
|
// Note that the DataEventHandler is called from within the USB interrupt, so
|
||||||
|
// it is critical that it return in time for the next isochronous data packet.
|
||||||
|
EVENT_DATA_ISOC_WRITE,
|
||||||
|
|
||||||
|
// In Host mode, this event gives the application layer the option to reject
|
||||||
|
// a client driver that was selected by the stack. This is needed when multiple
|
||||||
|
// devices are supported by class level support, but one configuration and client
|
||||||
|
// driver is preferred over another. Since configuration number is not guaranteed,
|
||||||
|
// the stack cannot do this automatically. This event is issued only when
|
||||||
|
// looking through configuration descriptors; the driver selected at the device
|
||||||
|
// level cannot be overridden, since there shouldn't be any other options to
|
||||||
|
// choose from.
|
||||||
|
EVENT_OVERRIDE_CLIENT_DRIVER_SELECTION,
|
||||||
|
|
||||||
|
// In host mode, this event is thrown for every millisecond that passes. Like all
|
||||||
|
// events, this is thrown from the USBHostTasks() or USBTasks() routine so its
|
||||||
|
// timeliness will be determined by the rate that these functions are called. If
|
||||||
|
// they are not called very often, then the 1ms events will build up and be
|
||||||
|
// dispatched as the USBTasks() or USBHostTasks() functions are called (one event
|
||||||
|
// per call to these functions.
|
||||||
|
EVENT_1MS,
|
||||||
|
|
||||||
|
// Class-defined event offsets start here:
|
||||||
|
EVENT_GENERIC_BASE = 400, // Offset for Generic class events
|
||||||
|
|
||||||
|
EVENT_MSD_BASE = 500, // Offset for Mass Storage Device class events
|
||||||
|
|
||||||
|
EVENT_HID_BASE = 600, // Offset for Human Interface Device class events
|
||||||
|
|
||||||
|
EVENT_PRINTER_BASE = 700, // Offset for Printer class events
|
||||||
|
|
||||||
|
EVENT_CDC_BASE = 800, // Offset for CDC class events
|
||||||
|
|
||||||
|
EVENT_CHARGER_BASE = 900, // Offset for Charger client driver events.
|
||||||
|
|
||||||
|
EVENT_AUDIO_BASE = 1000, // Offset for Audio client driver events.
|
||||||
|
|
||||||
|
EVENT_USER_BASE = 10000, // Add integral values to this event number
|
||||||
|
// to create user-defined events.
|
||||||
|
|
||||||
|
// There was a transfer error on the USB. The data associated with this
|
||||||
|
// event is of data type HOST_TRANSFER_DATA.
|
||||||
|
EVENT_BUS_ERROR = INT_MAX
|
||||||
|
|
||||||
|
} USB_EVENT;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* EVENT_TRANSFER Data
|
||||||
|
|
||||||
|
This data structure is passed to the appropriate layer's
|
||||||
|
USB_EVENT_HANDLER when an EVT_XFER event has occured, indicating
|
||||||
|
that a transfer has completed on the USB. It provides the endpoint,
|
||||||
|
direction, and actual size of the transfer.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _transfer_event_data
|
||||||
|
{
|
||||||
|
TRANSFER_FLAGS flags; // Transfer flags (see above)
|
||||||
|
UINT32 size; // Actual number of bytes transferred
|
||||||
|
BYTE pid; // Packet ID
|
||||||
|
|
||||||
|
} USB_TRANSFER_EVENT_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* EVENT_VBUS_REQUEST_POWER and EVENT_VBUS_RELEASE_POWER Data
|
||||||
|
|
||||||
|
This data structure is passed to the appropriate layer's
|
||||||
|
USB_EVENT_HANDLER when an EVENT_VBUS_REQUEST_POWER or EVENT_VBUS_RELEASE_POWER
|
||||||
|
event has occured, indicating that a change in Vbus power is being requested.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _vbus_power_data
|
||||||
|
{
|
||||||
|
BYTE port; // Physical port number
|
||||||
|
BYTE current; // Current in 2mA units
|
||||||
|
} USB_VBUS_POWER_EVENT_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* USB_OVERRIDE_CLIENT_DRIVER_EVENT_DATA Data
|
||||||
|
|
||||||
|
This data structure is passed to the application layer when a client driver is
|
||||||
|
select, in case multiple client drivers can support a particular device.
|
||||||
|
*/
|
||||||
|
typedef struct _override_client_driver_data
|
||||||
|
{
|
||||||
|
WORD idVendor;
|
||||||
|
WORD idProduct;
|
||||||
|
BYTE bDeviceClass;
|
||||||
|
BYTE bDeviceSubClass;
|
||||||
|
BYTE bDeviceProtocol;
|
||||||
|
} USB_OVERRIDE_CLIENT_DRIVER_EVENT_DATA;
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
/* EVT_STALL Data
|
||||||
|
|
||||||
|
The EVT_STALL event has a 16-bit data value associated with it where
|
||||||
|
a bit is set in the position for each endpoint that is currently
|
||||||
|
stalled (ie. bit 0 = EP0, bit 1 = EP1, etc.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: Event Handling Routines
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL <Event-handling Function Name> ( USB_EVENT event,
|
||||||
|
void *data, unsigned int size )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine is a "call out" routine that must be implemented by
|
||||||
|
any layer of the USB SW Stack (except the HAL which is at the
|
||||||
|
root of the event-call tree that needs to receive events. When
|
||||||
|
an event occurs, the HAL calls the next higher layer in the
|
||||||
|
stack to handle the event. Each layer either handles the event
|
||||||
|
or calls the layer above it to handle the event. Events are
|
||||||
|
identified by the "event" parameter and may have associated
|
||||||
|
data. If the higher layer was able to handle the event, it
|
||||||
|
should return TRUE. If not, it should return FALSE.
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
USBInitialize must have been called to initialize the USB SW
|
||||||
|
Stack.
|
||||||
|
|
||||||
|
Paramters:
|
||||||
|
USB_EVENT event - Identifies the bus event that occured
|
||||||
|
void *data - Pointer to event-specific data
|
||||||
|
unsigned int size - Size of the event-specific data
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
The function is name is defined by the layer that implements
|
||||||
|
it. A pointer to the function will be placed by into a table
|
||||||
|
that the lower-layer will use to call it. This requires the
|
||||||
|
function to use a specific call "signature" (return data type
|
||||||
|
and values and data parameter types and values).
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
typedef BOOL (*USB_EVENT_HANDLER) ( USB_EVENT event, void *data, unsigned int size );
|
||||||
|
|
||||||
|
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
// Section: USB Application Program Interface (API) Routines
|
||||||
|
// *****************************************************************************
|
||||||
|
// *****************************************************************************
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL USBInitialize ( unsigned long flags )
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This interface initializes the variables of the USB host stack.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This interface initializes the USB stack.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
None
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
flags - reserved
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE - Initialization successful
|
||||||
|
FALSE - Initialization failure
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
This interface is implemented as a macro that can be defined by the
|
||||||
|
application or by default is defined correctly for the stack mode.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef USBInitialize
|
||||||
|
#if defined( USB_SUPPORT_DEVICE )
|
||||||
|
#if defined( USB_SUPPORT_HOST )
|
||||||
|
#if defined( USB_SUPPORT_OTG )
|
||||||
|
#error "USB OTG is not yet supported."
|
||||||
|
#else
|
||||||
|
#define USBInitialize(f) \
|
||||||
|
(USBDEVInitialize(f) && USBHostInit(f)) ? \
|
||||||
|
TRUE : FALSE
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define USBInitialize(f) USBDeviceInit()
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if defined( USB_SUPPORT_HOST )
|
||||||
|
#define USBInitialize(f) USBHostInit(f)
|
||||||
|
#else
|
||||||
|
#error "Application must define support mode in usb_config.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
Function:
|
||||||
|
void USBTasks( void )
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This function executes the tasks for USB operation.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This function executes the tasks for USB host operation. It must be
|
||||||
|
executed on a regular basis to keep everything functioning.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize() has been called.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
This interface is implemented as a macro that can be defined by the
|
||||||
|
application or by default is defined correctly for the stack mode.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef USBTasks // Implemented as a macro that can be overridden.
|
||||||
|
#if defined( USB_SUPPORT_DEVICE )
|
||||||
|
#if defined( USB_SUPPORT_HOST )
|
||||||
|
#if defined( USB_SUPPORT_OTG )
|
||||||
|
#error "USB OTG is not yet supported."
|
||||||
|
#else
|
||||||
|
#define USBTasks() {USBHostTasks(); USBHALHandleBusEvent();}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define USBTasks() USBDeviceTasks()
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if defined( USB_SUPPORT_HOST )
|
||||||
|
#define USBTasks() USBHostTasks()
|
||||||
|
#else
|
||||||
|
#error "Application must define support mode in usb_config.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USB_PING_PONG__NO_PING_PONG 0x00 //0b00
|
||||||
|
#define USB_PING_PONG__EP0_OUT_ONLY 0x01 //0b01
|
||||||
|
#define USB_PING_PONG__FULL_PING_PONG 0x02 //0b10
|
||||||
|
#define USB_PING_PONG__ALL_BUT_EP0 0x03 //0b11
|
||||||
|
|
||||||
|
#endif // _USB_COMMON_H_
|
||||||
|
/*************************************************************************
|
||||||
|
* EOF
|
||||||
|
*/
|
||||||
|
|
||||||
1988
Source/USB/USB2.9i_cdc/include/USB/usb_device.h
Normale Datei
1988
Source/USB/USB2.9i_cdc/include/USB/usb_device.h
Normale Datei
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
1057
Source/USB/USB2.9i_cdc/include/USB/usb_function_cdc.h
Normale Datei
1057
Source/USB/USB2.9i_cdc/include/USB/usb_function_cdc.h
Normale Datei
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
653
Source/USB/USB2.9i_cdc/include/USB/usb_hal.h
Normale Datei
653
Source/USB/USB2.9i_cdc/include/USB/usb_hal.h
Normale Datei
@ -0,0 +1,653 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
USB Hardware Abstraction Layer (HAL) (Header File)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file abstracts the hardware interface.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This file abstracts the hardware interface.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
..\\..\\MicrochipInclude
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
File Description:
|
||||||
|
|
||||||
|
This file defines the interface to the USB hardware abstraction layer.
|
||||||
|
|
||||||
|
Filename: usb_hal.h
|
||||||
|
Dependancies: none
|
||||||
|
Processor: PIC18, PIC24, or PIC32 USB Microcontrollers
|
||||||
|
Hardware: The code is natively intended to be used on the following
|
||||||
|
hardware platforms: PICDEM™ FS USB Demo Board,
|
||||||
|
PIC18F87J50 FS USB Plug-In Module, or
|
||||||
|
Explorer 16 + PIC24 USB PIM. The firmware may be
|
||||||
|
modified for use on other USB platforms by editing the
|
||||||
|
HardwareProfile.h file.
|
||||||
|
Compiler: Microchip C18 (for PIC18) or C30 (for PIC24)
|
||||||
|
Company: Microchip Technology, Inc.
|
||||||
|
|
||||||
|
Software License Agreement:
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the “Company”) for its PICmicro® Microcontroller is intended and
|
||||||
|
supplied to you, the Company’s customer, for use solely and
|
||||||
|
exclusively on Microchip PICmicro Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---- -----------
|
||||||
|
2.6- No Change
|
||||||
|
2.6a
|
||||||
|
|
||||||
|
2.7 Minor changes changes to the structure of the conditional
|
||||||
|
compilation statement ordering.
|
||||||
|
|
||||||
|
2.7a No Change
|
||||||
|
********************************************************************/
|
||||||
|
|
||||||
|
#ifndef _USB_HAL_H_
|
||||||
|
#define _USB_HAL_H_
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
#if defined(__18CXX)
|
||||||
|
#include "USB/usb_hal_pic18.h"
|
||||||
|
#elif defined(__C30__) || defined __XC16__
|
||||||
|
#if defined(__dsPIC33E__)
|
||||||
|
#include "USB/usb_hal_dspic33E.h"
|
||||||
|
#elif defined(__PIC24E__)
|
||||||
|
#include "USB/usb_hal_pic24e.h"
|
||||||
|
#else
|
||||||
|
#include "USB/usb_hal_pic24.h"
|
||||||
|
#endif
|
||||||
|
#elif defined(__PIC32MX__)
|
||||||
|
#include "USB/usb_hal_pic32.h"
|
||||||
|
#elif defined(_PIC14E)
|
||||||
|
#include "USB/usb_hal_pic16f1.h"
|
||||||
|
#else
|
||||||
|
#error "Silicon Platform not defined"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
Interface Routines
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
void USBHALSetBusAddress( BYTE addr )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine sets the address of the system on the USB
|
||||||
|
when acting as a peripheral device.
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
1. USBHALInitialize must have been called to
|
||||||
|
initialize the USB HAL.
|
||||||
|
2. Endpoint zero (0) must be configured as appropriate
|
||||||
|
by calls to USBHALSetEpConfiguration.
|
||||||
|
3. The system must have been enumerated on the USB (as
|
||||||
|
a device).
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
addr Desired address of this device on the USB.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Side Effect:
|
||||||
|
The bus address has been set.
|
||||||
|
|
||||||
|
Remmarks:
|
||||||
|
The address is assigned by the host and is received in
|
||||||
|
a SET_ADDRESS setup request.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
/*
|
||||||
|
This routine is implemented as a macro to a lower-level level routine.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USBHALSetBusAddress OTGCORE_SetDeviceAddr
|
||||||
|
|
||||||
|
void USBHALSetBusAddress( BYTE addr );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
void USBHALControlUsbResistors( BYTE flags );
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine enables or disables the USB pull-up or
|
||||||
|
pull-down resistors as requested.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize must have been called to initialize the
|
||||||
|
USB SW stack.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
flags - This is a bit-mapped flags value indicating
|
||||||
|
which resistors to enable or disable (see below).
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if successful, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The resistors are enabled as requested.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
Used for USB peripheral control to connect to or
|
||||||
|
disconnect from the bus. Otherwise, used for OTG
|
||||||
|
SRP/HNP and host support.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
This routine is implemented as a macro to a lower-level level routine.
|
||||||
|
*/
|
||||||
|
#if defined(__18CXX)
|
||||||
|
void USBHALControlUsbResistors( BYTE flags );
|
||||||
|
#else
|
||||||
|
#define USBHALControlUsbResistors OTGCORE_ControlUsbResistors
|
||||||
|
void USBHALControlUsbResistors( BYTE flags );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* USBHALControlUsbResistors flags */
|
||||||
|
#define USB_HAL_PULL_UP_D_PLUS 0x80 // Pull D+ line high
|
||||||
|
#define USB_HAL_PULL_UP_D_MINUS 0x40 // Pull D- line high
|
||||||
|
#define USB_HAL_PULL_DN_D_PLUS 0x20 // Pull D+ line low
|
||||||
|
#define USB_HAL_PULL_DN_D_MINUS 0x10 // Pull D- line low
|
||||||
|
/*
|
||||||
|
The following are defined for convenience:
|
||||||
|
*/
|
||||||
|
#define USB_HAL_DEV_CONN_FULL_SPD USB_HAL_PULL_UP_D_PLUS
|
||||||
|
#define USB_HAL_DEV_CONN_LOW_SPD USB_HAL_PULL_UP_D_MINUS
|
||||||
|
#define USB_HAL_DEV_DISCONNECT 0
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
MCHP: Define a method to check for SE0 & a way to send a reset (SE0).
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL USBHALSessionIsValid( void )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine determines if there is currently a valid
|
||||||
|
USB session or not.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize must have been called to initialize the
|
||||||
|
USB SW stack.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if the session is currently valid, FALSE if not.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
Only used for host and OTG support.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALSessionIsValid( void );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
USBHALControlBusPower
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine provides a bitmap of the most recent
|
||||||
|
error conditions to occur.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize must have been called to initialize the
|
||||||
|
USB SW stack.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
cmd - Identifies desired command (see below).
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if successful, FALSE if not.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
Only used for host and OTG support.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALControlBusPower( BYTE cmd );
|
||||||
|
|
||||||
|
/* USBHALControlBusPower Commands */
|
||||||
|
#define USB_VBUS_DISCHARGE 0 // Dicharge Vbus via resistor
|
||||||
|
#define USB_VBUS_CHARGE 1 // Charge Vbus via resistor
|
||||||
|
#define USB_VBUS_POWER_ON 3 // Supply power to Vbus
|
||||||
|
#define USB_VBUS_POWER_OFF 4 // Do not supply power to Vbus
|
||||||
|
/*
|
||||||
|
Note: All commands except USB_VBUS_POWER_ON imply that this device
|
||||||
|
does not actively supply power to Vbus.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
unsigned long USBHALGetLastError( void )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine provides a bitmap of the most recent
|
||||||
|
error conditions to occur.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize must have been called to initialize the
|
||||||
|
USB SW stack.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
Bitmap indicating the most recent error condition(s).
|
||||||
|
|
||||||
|
Side Effect:
|
||||||
|
Error record is cleared.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
Although record of the error state is cleared, nothing
|
||||||
|
is done to fix the condition or recover from the
|
||||||
|
error. The client must take appropriate steps.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
unsigned long USBHALGetLastError( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
USBHALGetLastError Error Bits.
|
||||||
|
*/
|
||||||
|
#define USBHAL_PID_ERR 0x00000001 // Packet ID Error
|
||||||
|
#define USBHAL_CRC5 0x00000002 // (Host) Token CRC5 check failed
|
||||||
|
#define USBHAL_HOST_EOF 0x00000002 // (Host) EOF not reached before next SOF
|
||||||
|
#define USBHAL_CRC16 0x00000004 // Data packet CRC error
|
||||||
|
#define USBHAL_DFN8 0x00000008 // Data field size not n*8 bits
|
||||||
|
#define USBHAL_BTO_ERR 0x00000010 // Bus turn-around timeout
|
||||||
|
#define USBHAL_DMA_ERR 0x00000020 // DMA error, unable to read/write memory
|
||||||
|
#define USBHAL_BTS_ERR 0x00000080 // Bit-stuffing error
|
||||||
|
#define USBHAL_XFER_ID 0x00000100 // Unable to identify transfer EP
|
||||||
|
#define USBHAL_NO_EP 0x00000200 // Invalid endpoint number
|
||||||
|
#define USBHAL_DMA_ERR2 0x00000400 // Error starting DMA transaction
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
void USBHALHandleBusEvent ( void )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine checks the USB for any events that may
|
||||||
|
have occured and handles them appropriately. It may
|
||||||
|
be called directly to poll the USB and handle events
|
||||||
|
or it may be called in response to an interrupt.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBInitialize must have been called to initialize the
|
||||||
|
USB SW stack.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
Depend on the event that may have occured.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
void USBHALHandleBusEvent ( void );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL USBHALStallPipe( TRANSFER_FLAGS pipe )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine stalls the given endpoint.
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
USBHALInitialize must have been called to initialize
|
||||||
|
the USB HAL.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
pipe - Uses the TRANSFER_FLAGS (see USBCommon.h) format to
|
||||||
|
identify the endpoint and direction making up the
|
||||||
|
pipe to stall.
|
||||||
|
|
||||||
|
Note: Only ep_num and direction fields are required.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if able to stall endpoint, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The endpoint will stall if additional data transfer is
|
||||||
|
attempted.
|
||||||
|
Given endpoint has been stalled.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
Starting another data transfer automatically
|
||||||
|
"un-stalls" the endpoint.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
/*
|
||||||
|
Note: This function is implemented as a macro, calling directly into
|
||||||
|
an internal HAL routine.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USBHALStallPipe OTGCORE_StallPipe
|
||||||
|
|
||||||
|
BOOL USBHALStallPipe( TRANSFER_FLAGS pipe );
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL USBHALUnstallPipe( TRANSFER_FLAGS pipe )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine clears the stall condition for the given pipe.
|
||||||
|
|
||||||
|
PreCondition:
|
||||||
|
Assumes OTGCORE_DeviceEnable has been called and
|
||||||
|
OTGCORE_StallPipe has been called on the given pipe.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
pipe - Uses the TRANSFER_FLAGS (see USBCommon.h) format to
|
||||||
|
identify the endpoint and direction making up the
|
||||||
|
pipe to unstall.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if able to stall the pipe, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The BSTALL and UOWN bits (and all other control bits) in
|
||||||
|
the BDT for the given pipe will be cleared.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
*****************************************************************************/
|
||||||
|
/*
|
||||||
|
Note: This function is implemented as a macro, calling directly into
|
||||||
|
an internal HAL routine.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USBHALUnstallPipe OTGCORE_UnstallPipe
|
||||||
|
|
||||||
|
BOOL USBHALUnstallPipe( TRANSFER_FLAGS pipe );
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
Function:
|
||||||
|
USBHALGetStalledEndpoints
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This function returns a 16-bit bitmapped value with a
|
||||||
|
bit set in the position of any endpoint that is stalled
|
||||||
|
(i.e. if endpoint 0 is stalled then bit 0 is set, if
|
||||||
|
endpoint 1 is stalled then bit 1 is set, etc.).
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
USBHALInitialize must have been called to initialize
|
||||||
|
the USB HAL.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
Bitmap of the currently stalled endpoints (see overview).
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Note: This function is implemented as a macro, calling directly into
|
||||||
|
a HAL routine.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USBHALGetStalledEndpoints OTGCORE_GetStalledEndpoints
|
||||||
|
|
||||||
|
UINT16 USBHALGetStalledEndpoints ( void );
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
Function:
|
||||||
|
BOOL USBHALFlushPipe( TRANSFER_FLAGS pipe )
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine clears any pending transfers on the given
|
||||||
|
pipe.
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
USBHALInitialize must have been called to initialize the
|
||||||
|
USB HAL.
|
||||||
|
|
||||||
|
The caller must ensure that there is no possible way for
|
||||||
|
hardware to be currently accessing the pipe (see notes).
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
pipe - Uses the TRANSFER_FLAGS (see USBCommon.h) format to
|
||||||
|
identify the endpoint and direction making up the
|
||||||
|
pipe to flush.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if successful, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
Transfer data for this pipe has been zero'd out.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
This routine ignores the normal HW protocol for ownership
|
||||||
|
of the pipe data and flushes the pipe, even if it is in
|
||||||
|
process. Thus, the caller must ensure that data transfer
|
||||||
|
cannot be in process. This situation occurs when a
|
||||||
|
transfer has been terminated early by the host.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALFlushPipe( TRANSFER_FLAGS pipe );
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
Function:
|
||||||
|
USBHALTransferData
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine prepares to transfer data on the USB.
|
||||||
|
If the system is in device mode, the actual transfer
|
||||||
|
will not occur until the host peforms an OUT request
|
||||||
|
to the given endpoint. If the system is in host mode,
|
||||||
|
the transfer will not start until the token has been
|
||||||
|
sent on the bus.
|
||||||
|
|
||||||
|
Preconditions:
|
||||||
|
1. USBHALInitialize must have been called to
|
||||||
|
initialize the USB HAL.
|
||||||
|
2. The endpoint through which the data will be
|
||||||
|
transferred must be configured as appropriate by a
|
||||||
|
call to USBHALSetEpConfiguration.
|
||||||
|
3. The bus must have been enumerated (either as a host
|
||||||
|
or device). Except for EP0 transfers.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
flags - Flags consists of the endpoint number OR'd
|
||||||
|
with one or more flags indicating transfer
|
||||||
|
direction and such (see "Data Transfer
|
||||||
|
Macros" in USBCommon.h):
|
||||||
|
|
||||||
|
7 6 5 4 3 2 1 0 - Description
|
||||||
|
| | | | \_____/
|
||||||
|
| | | | +----- Endpoint Number
|
||||||
|
| | | +---------- Short or zero-size pkt
|
||||||
|
| | +------------ Data Toggle 0/1
|
||||||
|
| +-------------- Force Data Toggle
|
||||||
|
+---------------- 1=Transmit/0=Receive
|
||||||
|
|
||||||
|
buffer Address of the buffer to receive data.
|
||||||
|
|
||||||
|
size Number of bytes of data to transfer.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if the HAL was able to successfully start the
|
||||||
|
data transfer, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The HAL has prepared to transfer the data on the USB.
|
||||||
|
|
||||||
|
Ramarks:
|
||||||
|
The HAL will continue the data transfer, keeping track
|
||||||
|
of the buffer address, data remaining, and ping-pong
|
||||||
|
buffer details internally when USBHALHandleBusEvent is
|
||||||
|
called (either polled or in response to an interrupt).
|
||||||
|
The caller will receive notification that the transfer
|
||||||
|
has completed when the EVT_XFER event is passed into
|
||||||
|
the USBHALBusEventCallout call-out function.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALTransferData ( TRANSFER_FLAGS flags,
|
||||||
|
void *buffer,
|
||||||
|
unsigned int size );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
USBHALSetEpConfiguration
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This routine allows the caller to configure various
|
||||||
|
options (see "Flags for USBHALSetEpConfiguration",
|
||||||
|
below) and set the behavior for the given endpoint.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
USBHALInitialize has been called.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
ep_num - Number of endpoint to configur, Must be
|
||||||
|
(ep_num >=0) && (ep_num <= USB_DEV_HIGHEST_EP_NUMBER)
|
||||||
|
max_pkt_size Size of largest packet this enpoint can
|
||||||
|
transfer.
|
||||||
|
|
||||||
|
flags - Configuration flags (see below)
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if successful, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The endpoint has been configured as desired.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
The base address and size of the buffer is not set by
|
||||||
|
this routine. Those features of an endpoint are
|
||||||
|
dynamically managed by the USBHALTransferData routine.
|
||||||
|
An endpoint can be "de-configured" by setting its max
|
||||||
|
packet size to 0. When doing this, you should also
|
||||||
|
set all flags to 0.
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALSetEpConfiguration ( BYTE ep_num, UINT16 max_pkt_size, UINT16 flags );
|
||||||
|
|
||||||
|
/* Flags for USBHALSetEpConfiguration */
|
||||||
|
#if defined(__18CXX)
|
||||||
|
#define USB_HAL_TRANSMIT 0x0400 // Enable EP for transmitting data
|
||||||
|
#define USB_HAL_RECEIVE 0x0200 // Enable EP for receiving data
|
||||||
|
#define USB_HAL_HANDSHAKE 0x1000 // Enable EP to give ACK/NACK (non isoch)
|
||||||
|
|
||||||
|
#define USB_HAL_NO_INC 0x0010 // Use for DMA to another device FIFO
|
||||||
|
#define USB_HAL_HW_KEEPS 0x0020 // Cause HW to keep EP
|
||||||
|
#else
|
||||||
|
#define USB_HAL_TRANSMIT 0x0400 // Enable EP for transmitting data
|
||||||
|
#define USB_HAL_RECEIVE 0x0800 // Enable EP for receiving data
|
||||||
|
#define USB_HAL_HANDSHAKE 0x0100 // Enable EP to give ACK/NACK (non isoch)
|
||||||
|
|
||||||
|
/* Does not work, Fix this if needed. 3/1/07 - Bud
|
||||||
|
#define USB_HAL_NO_INC 0x0010 // Use for DMA to another device FIFO
|
||||||
|
#define USB_HAL_HW_KEEPS 0x0020 // Cause HW to keep EP
|
||||||
|
*/
|
||||||
|
#define USB_HAL_ALLOW_HUB 0x8000 // (host only) Enable low-spd hub support
|
||||||
|
#define USB_HAL_NO_RETRY 0x4000 // (host only) disable auto-retry on NACK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function:
|
||||||
|
USBHALInitialize
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This call performs the basic initialization of the USB
|
||||||
|
HAL. This routine must be called before any of the
|
||||||
|
other HAL interface routines are called.
|
||||||
|
|
||||||
|
Precondition:
|
||||||
|
The system has been initialized.
|
||||||
|
|
||||||
|
Paramters:
|
||||||
|
flags - Initialization flags
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
TRUE if successful, FALSE if not.
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
The USB HAL SW stack was initialized.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
This routine can be called to reset the controller.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
BOOL USBHALInitialize ( unsigned long flags );
|
||||||
|
|
||||||
|
#endif // _USB_HAL_H_
|
||||||
|
/*************************************************************************
|
||||||
|
* EOF
|
||||||
|
*/
|
||||||
|
|
||||||
600
Source/USB/USB2.9i_cdc/include/USB/usb_hal_pic18.h
Normale Datei
600
Source/USB/USB2.9i_cdc/include/USB/usb_hal_pic18.h
Normale Datei
@ -0,0 +1,600 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
USB Hardware Abstraction Layer (HAL) (Header File)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
This file abstracts the hardware interface. The USB stack firmware can be
|
||||||
|
compiled to work on different USB microcontrollers, such as PIC18 and PIC24.
|
||||||
|
The USB related special function registers and bit names are generally very
|
||||||
|
similar between the device families, but small differences in naming exist.
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This file abstracts the hardware interface. The USB stack firmware can be
|
||||||
|
compiled to work on different USB microcontrollers, such as PIC18 and PIC24.
|
||||||
|
The USB related special function registers and bit names are generally very
|
||||||
|
similar between the device families, but small differences in naming exist.
|
||||||
|
|
||||||
|
In order to make the same set of firmware work accross the device families,
|
||||||
|
when modifying SFR contents, a slightly abstracted name is used, which is
|
||||||
|
then "mapped" to the appropriate real name in the usb_hal_picxx.h header.
|
||||||
|
|
||||||
|
Make sure to include the correct version of the usb_hal_picxx.h file for
|
||||||
|
the microcontroller family which will be used.
|
||||||
|
|
||||||
|
This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB"
|
||||||
|
directory.
|
||||||
|
|
||||||
|
When including this file in a new project, this file can either be
|
||||||
|
referenced from the directory in which it was installed or copied
|
||||||
|
directly into the user application folder. If the first method is
|
||||||
|
chosen to keep the file located in the folder in which it is installed
|
||||||
|
then include paths need to be added so that the library and the
|
||||||
|
application both know where to reference each others files. If the
|
||||||
|
application folder is located in the same folder as the Microchip
|
||||||
|
folder (like the current demo folders), then the following include
|
||||||
|
paths need to be added to the application's project:
|
||||||
|
|
||||||
|
.
|
||||||
|
|
||||||
|
..\\..\\MicrochipInclude
|
||||||
|
|
||||||
|
If a different directory structure is used, modify the paths as
|
||||||
|
required. An example using absolute paths instead of relative paths
|
||||||
|
would be the following:
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\Microchip\\Include
|
||||||
|
|
||||||
|
C:\\Microchip Solutions\\My Demo Application
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
File Description:
|
||||||
|
|
||||||
|
This file defines the interface to the USB hardware abstraction layer.
|
||||||
|
|
||||||
|
* Filename: usb_hal_pic18.h
|
||||||
|
Dependencies: See INCLUDES section
|
||||||
|
Processor: Use this header file when using this firmware with PIC18 USB
|
||||||
|
microcontrollers
|
||||||
|
Hardware:
|
||||||
|
Complier: Microchip C18 (for PIC18)
|
||||||
|
Company: Microchip Technology, Inc.
|
||||||
|
|
||||||
|
Software License Agreement:
|
||||||
|
|
||||||
|
The software supplied herewith by Microchip Technology Incorporated
|
||||||
|
(the “Company”) for its PIC® Microcontroller is intended and
|
||||||
|
supplied to you, the Company’s customer, for use solely and
|
||||||
|
exclusively on Microchip PIC Microcontroller products. The
|
||||||
|
software is owned by the Company and/or its supplier, and is
|
||||||
|
protected under applicable copyright laws. All rights are reserved.
|
||||||
|
Any use in violation of the foregoing restrictions may subject the
|
||||||
|
user to criminal sanctions under applicable laws, as well as to
|
||||||
|
civil liability for the breach of the terms and conditions of this
|
||||||
|
license.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
||||||
|
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
||||||
|
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
//DOM-IGNORE-BEGIN
|
||||||
|
/********************************************************************
|
||||||
|
Change History:
|
||||||
|
Rev Description
|
||||||
|
---- -----------
|
||||||
|
2.6 Changed the inplementation of the interrupt clearing macro
|
||||||
|
to be more efficient.
|
||||||
|
|
||||||
|
2.6a Added DisableNonZeroEndpoints() function
|
||||||
|
|
||||||
|
2.7 Added ConvertToPhysicalAddress() and ConvertToVirtualAddress()
|
||||||
|
macros. Needed for compatiblity with PIC32.
|
||||||
|
|
||||||
|
Added USBDisableInterrupts() macro. Fixes issue in dual role
|
||||||
|
example where a device in polling mode can still have interrupts
|
||||||
|
enabled from the host mode causing an incorrect vectoring to the
|
||||||
|
host interrupt controller while in device mode.
|
||||||
|
|
||||||
|
2.7a No change
|
||||||
|
|
||||||
|
2.8 Added USTAT_FIELDS typedef and associated macros.
|
||||||
|
********************************************************************/
|
||||||
|
//DOM-IGNORE-END
|
||||||
|
|
||||||
|
#ifndef USB_HAL_PIC18_H
|
||||||
|
#define USB_HAL_PIC18_H
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** include files ********************************************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#include "Compiler.h"
|
||||||
|
#include "usb_config.h"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** Constant definitions *************************************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
//----- USBEnableEndpoint() input defintions ----------------------------------
|
||||||
|
#define USB_HANDSHAKE_ENABLED 0x10
|
||||||
|
#define USB_HANDSHAKE_DISABLED 0x00
|
||||||
|
|
||||||
|
#define USB_OUT_ENABLED 0x04
|
||||||
|
#define USB_OUT_DISABLED 0x00
|
||||||
|
|
||||||
|
#define USB_IN_ENABLED 0x02
|
||||||
|
#define USB_IN_DISABLED 0x00
|
||||||
|
|
||||||
|
#define USB_ALLOW_SETUP 0x00
|
||||||
|
#define USB_DISALLOW_SETUP 0x08
|
||||||
|
|
||||||
|
#define USB_STALL_ENDPOINT 0x01
|
||||||
|
|
||||||
|
//----- usb_config.h input defintions -----------------------------------------
|
||||||
|
#define USB_PULLUP_ENABLE 0x10
|
||||||
|
#define USB_PULLUP_DISABLED 0x00
|
||||||
|
|
||||||
|
#define USB_INTERNAL_TRANSCEIVER 0x00
|
||||||
|
#define USB_EXTERNAL_TRANSCEIVER 0x08
|
||||||
|
|
||||||
|
#define USB_FULL_SPEED 0x04
|
||||||
|
#define USB_LOW_SPEED 0x00
|
||||||
|
|
||||||
|
//----- Interrupt Flag definitions --------------------------------------------
|
||||||
|
#define USBTransactionCompleteIE UIEbits.TRNIE
|
||||||
|
#define USBTransactionCompleteIF UIRbits.TRNIF
|
||||||
|
#define USBTransactionCompleteIFReg UIR
|
||||||
|
#define USBTransactionCompleteIFBitNum 0xF7 //AND mask for clearing TRNIF bit position 4
|
||||||
|
|
||||||
|
#define USBResetIE UIEbits.URSTIE
|
||||||
|
#define USBResetIF UIRbits.URSTIF
|
||||||
|
#define USBResetIFReg UIR
|
||||||
|
#define USBResetIFBitNum 0xFE //AND mask for clearing URSTIF bit position 0
|
||||||
|
|
||||||
|
#define USBIdleIE UIEbits.IDLEIE
|
||||||
|
#define USBIdleIF UIRbits.IDLEIF
|
||||||
|
#define USBIdleIFReg UIR
|
||||||
|
#define USBIdleIFBitNum 0xEF //AND mask for clearing IDLEIF bit position 5
|
||||||
|
|
||||||
|
#define USBActivityIE UIEbits.ACTVIE
|
||||||
|
#define USBActivityIF UIRbits.ACTVIF
|
||||||
|
#define USBActivityIFReg UIR
|
||||||
|
#define USBActivityIFBitNum 0xFB //AND mask for clearing ACTVIF bit position 2
|
||||||
|
|
||||||
|
#define USBSOFIE UIEbits.SOFIE
|
||||||
|
#define USBSOFIF UIRbits.SOFIF
|
||||||
|
#define USBSOFIFReg UIR
|
||||||
|
#define USBSOFIFBitNum 0xBF //AND mask for clearing SOFIF bit position 6
|
||||||
|
|
||||||
|
#define USBStallIE UIEbits.STALLIE
|
||||||
|
#define USBStallIF UIRbits.STALLIF
|
||||||
|
#define USBStallIFReg UIR
|
||||||
|
#define USBStallIFBitNum 0xDF //AND mask for clearing STALLIF bit position 5
|
||||||
|
|
||||||
|
#define USBErrorIE UIEbits.UERRIE
|
||||||
|
#define USBErrorIF UIRbits.UERRIF
|
||||||
|
#define USBErrorIFReg UIR
|
||||||
|
#define USBErrorIFBitNum 0xFD //UERRIF bit position 1. Note: This bit is read only and is cleared by clearing the enabled UEIR flags
|
||||||
|
|
||||||
|
//----- Event call back defintions --------------------------------------------
|
||||||
|
#if defined(USB_DISABLE_SOF_HANDLER)
|
||||||
|
#define USB_SOF_INTERRUPT 0x00
|
||||||
|
#else
|
||||||
|
#define USB_SOF_INTERRUPT 0x40
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(USB_DISABLE_ERROR_HANDLER)
|
||||||
|
#define USB_ERROR_INTERRUPT 0x02
|
||||||
|
#else
|
||||||
|
#define USB_ERROR_INTERRUPT 0x02
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----- USB module control bits -----------------------------------------------
|
||||||
|
#define USBPingPongBufferReset UCONbits.PPBRST
|
||||||
|
#define USBSE0Event UCONbits.SE0
|
||||||
|
#define USBSuspendControl UCONbits.SUSPND
|
||||||
|
#define USBPacketDisable UCONbits.PKTDIS
|
||||||
|
#define USBResumeControl UCONbits.RESUME
|
||||||
|
|
||||||
|
//----- BDnSTAT bit definitions -----------------------------------------------
|
||||||
|
#define _BSTALL 0x04 //Buffer Stall enable
|
||||||
|
#define _DTSEN 0x08 //Data Toggle Synch enable
|
||||||
|
#define _INCDIS 0x10 //Address increment disable
|
||||||
|
#define _KEN 0x20 //SIE keeps buff descriptors enable
|
||||||
|
#define _DAT0 0x00 //DATA0 packet expected next
|
||||||
|
#define _DAT1 0x40 //DATA1 packet expected next
|
||||||
|
#define _DTSMASK 0x40 //DTS Mask
|
||||||
|
#define _USIE 0x80 //SIE owns buffer
|
||||||
|
#define _UCPU 0x00 //CPU owns buffer
|
||||||
|
#define _STAT_MASK 0xFF
|
||||||
|
|
||||||
|
#define USTAT_EP0_PP_MASK ~0x02
|
||||||
|
#define USTAT_EP_MASK 0x7E
|
||||||
|
#define USTAT_EP0_OUT 0x00
|
||||||
|
#define USTAT_EP0_OUT_EVEN 0x00
|
||||||
|
#define USTAT_EP0_OUT_ODD 0x02
|
||||||
|
#define USTAT_EP0_IN 0x04
|
||||||
|
#define USTAT_EP0_IN_EVEN 0x04
|
||||||
|
#define USTAT_EP0_IN_ODD 0x06
|
||||||
|
|
||||||
|
#define ENDPOINT_MASK 0b01111000
|
||||||
|
|
||||||
|
//----- U1EP bit definitions --------------------------------------------------
|
||||||
|
#define UEP_STALL 0x0001
|
||||||
|
// Cfg Control pipe for this ep
|
||||||
|
/* Endpoint configuration options for USBEnableEndpoint() function */
|
||||||
|
#define EP_CTRL 0x06 // Cfg Control pipe for this ep
|
||||||
|
#define EP_OUT 0x0C // Cfg OUT only pipe for this ep
|
||||||
|
#define EP_IN 0x0A // Cfg IN only pipe for this ep
|
||||||
|
#define EP_OUT_IN 0x0E // Cfg both OUT & IN pipes for this ep
|
||||||
|
|
||||||
|
//----- Remap the PIC18 register name space------------------------------------
|
||||||
|
#define U1ADDR UADDR
|
||||||
|
#define U1IE UIE
|
||||||
|
#define U1IR UIR
|
||||||
|
#define U1EIR UEIR
|
||||||
|
#define U1EIE UEIE
|
||||||
|
#define U1CON UCON
|
||||||
|
#define U1EP0 UEP0
|
||||||
|
#define U1CONbits UCONbits
|
||||||
|
#define U1EP1 UEP1
|
||||||
|
#define U1CNFG1 UCFG
|
||||||
|
#define U1STAT USTAT
|
||||||
|
#define U1EP0bits UEP0bits
|
||||||
|
|
||||||
|
//----- Defintions for BDT address --------------------------------------------
|
||||||
|
#if defined(__18CXX)
|
||||||
|
#if defined(__18F14K50) || defined(__18F13K50) || defined(__18LF14K50) || defined(__18LF13K50)
|
||||||
|
#define USB_BDT_ADDRESS 0x200 //See Linker Script, BDT in bank 2 on these devices - usb2:0x200-0x2FF(256-byte)
|
||||||
|
#elif defined(__18F47J53) || defined(__18F46J53) || defined(__18F27J53) || defined(__18F26J53) || defined(__18LF47J53) || defined(__18LF46J53) || defined(__18LF27J53) || defined(__18LF26J53)
|
||||||
|
#define USB_BDT_ADDRESS 0xD00 //BDT in Bank 13 on these devices
|
||||||
|
#elif defined(__18F97J94) || defined(__18F87J94) || defined(__18F67J94) || defined(__18F96J94) || defined(__18F86J94) || defined(__18F66J94) || defined(__18F96J99) || defined(__18F95J94) || defined(__18F86J99) || defined(__18F85J94) || defined(__18F66J99) || defined(__18F65J94)
|
||||||
|
#define USB_BDT_ADDRESS 0x100 //BDT in Bank 1 on these devices
|
||||||
|
#else
|
||||||
|
#define USB_BDT_ADDRESS 0x400 //All other PIC18 devices place the BDT in usb4:0x400-0x4FF(256-byte)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BDT_BASE_ADDR_TAG __attribute__ ((aligned (512)))
|
||||||
|
#define CTRL_TRF_SETUP_ADDR_TAG
|
||||||
|
#define CTRL_TRF_DATA_ADDR_TAG
|
||||||
|
|
||||||
|
//----- Depricated defintions - will be removed at some point of time----------
|
||||||
|
//--------- Depricated in v2.2
|
||||||
|
#define _LS 0x00 // Use Low-Speed USB Mode
|
||||||
|
#define _FS 0x04 // Use Full-Speed USB Mode
|
||||||
|
#define _TRINT 0x00 // Use internal transceiver
|
||||||
|
#define _TREXT 0x08 // Use external transceiver
|
||||||
|
#define _PUEN 0x10 // Use internal pull-up resistor
|
||||||
|
#define _OEMON 0x40 // Use SIE output indicator
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** Type definitions *****************************************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
// Buffer Descriptor Status Register layout.
|
||||||
|
typedef union _BD_STAT
|
||||||
|
{
|
||||||
|
BYTE Val;
|
||||||
|
struct{
|
||||||
|
//If the CPU owns the buffer then these are the values
|
||||||
|
unsigned BC8:1; //bit 8 of the byte count
|
||||||
|
unsigned BC9:1; //bit 9 of the byte count
|
||||||
|
unsigned BSTALL:1; //Buffer Stall Enable
|
||||||
|
unsigned DTSEN:1; //Data Toggle Synch Enable
|
||||||
|
unsigned INCDIS:1; //Address Increment Disable
|
||||||
|
unsigned KEN:1; //BD Keep Enable
|
||||||
|
unsigned DTS:1; //Data Toggle Synch Value
|
||||||
|
unsigned UOWN:1; //USB Ownership
|
||||||
|
};
|
||||||
|
struct{
|
||||||
|
//if the USB module owns the buffer then these are
|
||||||
|
// the values
|
||||||
|
unsigned :2;
|
||||||
|
unsigned PID0:1; //Packet Identifier
|
||||||
|
unsigned PID1:1;
|
||||||
|
unsigned PID2:1;
|
||||||
|
unsigned PID3:1;
|
||||||
|
unsigned :1;
|
||||||
|
};
|
||||||
|
struct{
|
||||||
|
unsigned :2;
|
||||||
|
unsigned PID:4; //Packet Identifier
|
||||||
|
unsigned :2;
|
||||||
|
};
|
||||||
|
} BD_STAT; //Buffer Descriptor Status Register
|
||||||
|
|
||||||
|
// BDT Entry Layout
|
||||||
|
typedef union __BDT
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
BD_STAT STAT;
|
||||||
|
BYTE CNT;
|
||||||
|
BYTE ADRL; //Buffer Address Low
|
||||||
|
BYTE ADRH; //Buffer Address High
|
||||||
|
};
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned :8;
|
||||||
|
unsigned :8;
|
||||||
|
WORD ADR; //Buffer Address
|
||||||
|
};
|
||||||
|
DWORD Val;
|
||||||
|
BYTE v[4];
|
||||||
|
} BDT_ENTRY;
|
||||||
|
|
||||||
|
// USTAT Register Layout
|
||||||
|
typedef union __USTAT
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char filler1:1;
|
||||||
|
unsigned char ping_pong:1;
|
||||||
|
unsigned char direction:1;
|
||||||
|
unsigned char endpoint_number:4;
|
||||||
|
};
|
||||||
|
BYTE Val;
|
||||||
|
} USTAT_FIELDS;
|
||||||
|
|
||||||
|
//Macros for fetching parameters from a USTAT_FIELDS variable.
|
||||||
|
#define USBHALGetLastEndpoint(stat) stat.endpoint_number
|
||||||
|
#define USBHALGetLastDirection(stat) stat.direction
|
||||||
|
#define USBHALGetLastPingPong(stat) stat.ping_pong
|
||||||
|
|
||||||
|
|
||||||
|
typedef union _POINTER
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
BYTE bLow;
|
||||||
|
BYTE bHigh;
|
||||||
|
//byte bUpper;
|
||||||
|
};
|
||||||
|
WORD _word; // bLow & bHigh
|
||||||
|
|
||||||
|
//pFunc _pFunc; // Usage: ptr.pFunc(); Init: ptr.pFunc = &<Function>;
|
||||||
|
|
||||||
|
BYTE* bRam; // Ram byte pointer: 2 bytes pointer pointing
|
||||||
|
// to 1 byte of data
|
||||||
|
WORD* wRam; // Ram word poitner: 2 bytes poitner pointing
|
||||||
|
// to 2 bytes of data
|
||||||
|
|
||||||
|
ROM BYTE* bRom; // Size depends on compiler setting
|
||||||
|
ROM WORD* wRom;
|
||||||
|
//rom near byte* nbRom; // Near = 2 bytes pointer
|
||||||
|
//rom near word* nwRom;
|
||||||
|
//rom far byte* fbRom; // Far = 3 bytes pointer
|
||||||
|
//rom far word* fwRom;
|
||||||
|
} POINTER;
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** Function prototypes and macro functions ******************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define ConvertToPhysicalAddress(a) ((WORD)(a))
|
||||||
|
#define ConvertToVirtualAddress(a) ((void *)(a))
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//This section is for the PIC18F45K50 Family microcontrollers
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
#if defined(__18F45K50) || defined(__18F25K50) || defined(__18F24K50) || defined(__18LF45K50) || defined(__18LF25K50) || defined(__18LF24K50)
|
||||||
|
#define USBClearUSBInterrupt() PIR3bits.USBIF = 0;
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
#define USBMaskInterrupts() {PIE3bits.USBIE = 0;}
|
||||||
|
#define USBUnmaskInterrupts() {PIE3bits.USBIE = 1;}
|
||||||
|
#else
|
||||||
|
#define USBMaskInterrupts()
|
||||||
|
#define USBUnmaskInterrupts()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USBInterruptFlag PIR3bits.USBIF
|
||||||
|
|
||||||
|
//STALLIE, IDLEIE, TRNIE, and URSTIE are all enabled by default and are required
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
#define USBEnableInterrupts() {RCONbits.IPEN = 1;IPR3bits.USBIP = 1;PIE3bits.USBIE = 1;INTCONbits.GIEH = 1;}
|
||||||
|
#else
|
||||||
|
#define USBEnableInterrupts()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USBDisableInterrupts() {PIE3bits.USBIE = 0;}
|
||||||
|
|
||||||
|
#define SetConfigurationOptions() {\
|
||||||
|
U1CNFG1 = USB_PULLUP_OPTION | USB_TRANSCEIVER_OPTION | USB_SPEED_OPTION | USB_PING_PONG_MODE;\
|
||||||
|
U1EIE = 0x9F;\
|
||||||
|
UIE = 0x39 | USB_SOF_INTERRUPT | USB_ERROR_INTERRUPT;\
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//This section is for all other PIC18 USB microcontrollers
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
#define USBClearUSBInterrupt() PIR2bits.USBIF = 0;
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
#define USBMaskInterrupts() {PIE2bits.USBIE = 0;}
|
||||||
|
#define USBUnmaskInterrupts() {PIE2bits.USBIE = 1;}
|
||||||
|
#else
|
||||||
|
#define USBMaskInterrupts()
|
||||||
|
#define USBUnmaskInterrupts()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USBInterruptFlag PIR2bits.USBIF
|
||||||
|
|
||||||
|
//STALLIE, IDLEIE, TRNIE, and URSTIE are all enabled by default and are required
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
#define USBEnableInterrupts() {RCONbits.IPEN = 1;IPR2bits.USBIP = 1;PIE2bits.USBIE = 1;INTCONbits.GIEH = 1;}
|
||||||
|
#else
|
||||||
|
#define USBEnableInterrupts()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USBDisableInterrupts() {PIE2bits.USBIE = 0;}
|
||||||
|
|
||||||
|
#define SetConfigurationOptions() {\
|
||||||
|
U1CNFG1 = USB_PULLUP_OPTION | USB_TRANSCEIVER_OPTION | USB_SPEED_OPTION | USB_PING_PONG_MODE;\
|
||||||
|
U1EIE = 0x9F;\
|
||||||
|
UIE = 0x39 | USB_SOF_INTERRUPT | USB_ERROR_INTERRUPT;\
|
||||||
|
}
|
||||||
|
#endif //end of #if defined(__18F45K50) || defined(__18F25K50)...
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
Function:
|
||||||
|
void USBPowerModule(void)
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This macro is used to power up the USB module if required<br>
|
||||||
|
PIC18: defines as nothing<br>
|
||||||
|
PIC24: defines as U1PWRCbits.USBPWR = 1;<br>
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
****************************************************************/
|
||||||
|
#define USBPowerModule()
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
Function:
|
||||||
|
void USBModuleDisable(void)
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This macro is used to disable the USB module
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
****************************************************************/
|
||||||
|
#define USBModuleDisable() {\
|
||||||
|
UCON = 0;\
|
||||||
|
UIE = 0;\
|
||||||
|
USBDeviceState = DETACHED_STATE;\
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
Function:
|
||||||
|
USBSetBDTAddress(addr)
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This macro is used to power up the USB module if required
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
None
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
****************************************************************/
|
||||||
|
#define USBSetBDTAddress(addr)
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* Function (macro): void USBClearInterruptFlag(register, BYTE if_and_flag_mask)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input:
|
||||||
|
* register - the register mnemonic for the register holding the interrupt
|
||||||
|
flag to be cleared
|
||||||
|
* BYTE if_and_flag_mask - an AND mask for the interrupt flag that will be
|
||||||
|
cleared
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: Clears the specified USB interrupt flag.
|
||||||
|
*
|
||||||
|
* Note:
|
||||||
|
*******************************************************************/
|
||||||
|
#define USBClearInterruptFlag(reg_name, if_and_flag_mask) (reg_name &= if_and_flag_mask)
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
Function:
|
||||||
|
void USBClearInterruptRegister(WORD reg)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
Clears the specified interrupt register
|
||||||
|
|
||||||
|
PreCondition:
|
||||||
|
None
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
WORD reg - the register name that needs to be cleared
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
*******************************************************************/
|
||||||
|
#define USBClearInterruptRegister(reg) reg = 0;
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
Function:
|
||||||
|
void DisableNonZeroEndpoints(UINT8 last_ep_num)
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
Clears the control registers for the specified non-zero endpoints
|
||||||
|
|
||||||
|
PreCondition:
|
||||||
|
None
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
UINT8 last_ep_num - the last endpoint number to clear. This
|
||||||
|
number should include all endpoints used in any configuration.
|
||||||
|
|
||||||
|
Return Values:
|
||||||
|
None
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
None
|
||||||
|
|
||||||
|
*******************************************************************/
|
||||||
|
#define DisableNonZeroEndpoints(last_ep_num) memset((void*)&U1EP1,0x00,(last_ep_num));
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** Compiler checks ******************************************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
//Definitions for the BDT
|
||||||
|
#ifndef USB_PING_PONG_MODE
|
||||||
|
#error "No ping pong mode defined."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****** Extern variable definitions ******************************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#if !defined(USBDEVICE_C)
|
||||||
|
//extern USB_VOLATILE USB_DEVICE_STATE USBDeviceState;
|
||||||
|
extern USB_VOLATILE BYTE USBActiveConfiguration;
|
||||||
|
extern USB_VOLATILE IN_PIPE inPipes[1];
|
||||||
|
extern USB_VOLATILE OUT_PIPE outPipes[1];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern volatile BDT_ENTRY* pBDTEntryOut[USB_MAX_EP_NUMBER+1];
|
||||||
|
extern volatile BDT_ENTRY* pBDTEntryIn[USB_MAX_EP_NUMBER+1];
|
||||||
|
|
||||||
|
#endif //#ifndef USB_HAL_PIC18_H
|
||||||
886
Source/USB/picft245.c
Normale Datei
886
Source/USB/picft245.c
Normale Datei
@ -0,0 +1,886 @@
|
|||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
; PICFT245
|
||||||
|
;
|
||||||
|
; FTDI FT245 replacement for CAN_USB in a PIC18F14K50 (C) SPROG DCC 2012
|
||||||
|
; web: http://www.sprog-dcc.co.uk
|
||||||
|
; e-mail: sprog@sprog-dcc.co.uk
|
||||||
|
;
|
||||||
|
; This program is free software: you can redistribute it and/or modify
|
||||||
|
; it under the terms of the GNU General Public License as published by
|
||||||
|
; the Free Software Foundation, version 3 of the License, as set out
|
||||||
|
; at <http://www.gnu.org/licenses/>.
|
||||||
|
;
|
||||||
|
; This program is distributed in the hope that it will be useful,
|
||||||
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
; See the GNU General Public License for more details.
|
||||||
|
;
|
||||||
|
; As set out in the GNU General Public License, you must retain and acknowledge
|
||||||
|
; the statements above relating to copyright and licensing. You must also
|
||||||
|
; state clearly any modifications made. Please therefore retain this header
|
||||||
|
; and add documentation of any changes you make. If you distribute a changed
|
||||||
|
; version, you must make those changes publicly available.
|
||||||
|
;
|
||||||
|
; The GNU license requires that if you distribute this software, changed or
|
||||||
|
; unchanged, or software which includes code from this software, including
|
||||||
|
; the supply of hardware that incorporates this software, you MUST either
|
||||||
|
; include the source code or a link to a location where you make the source
|
||||||
|
; publicly available.
|
||||||
|
;
|
||||||
|
------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; Revision History
|
||||||
|
; 21/03/15 1.4 Revert to buffering complete messages rather than send short
|
||||||
|
; packets. Improve handling of USB->CAN and CAN->USB contention.
|
||||||
|
; 20/09/14 1.3 Fixed deadlock in state USB->CAN state machine
|
||||||
|
; 25/08/14 1.2 Fixed inconsistent endpoint buffer sizes
|
||||||
|
; 30/12/12 1.1 Replace CAN->USB state machine with tight loop
|
||||||
|
; Change to Interrupt mode for USB tasks
|
||||||
|
; Pass incoming CBUS chars direct to USBUSART instead of
|
||||||
|
; buffering complete Gridconnect messages
|
||||||
|
; 20/06/12 1.0 Created
|
||||||
|
;
|
||||||
|
;-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <p18f14k50.h>
|
||||||
|
|
||||||
|
//14K50
|
||||||
|
#pragma config CPUDIV = NOCLKDIV
|
||||||
|
#pragma config USBDIV = OFF
|
||||||
|
#pragma config FOSC = HS
|
||||||
|
#pragma config PLLEN = ON
|
||||||
|
#pragma config FCMEN = OFF
|
||||||
|
#pragma config IESO = OFF
|
||||||
|
#pragma config PWRTEN = OFF
|
||||||
|
#pragma config BOREN = OFF
|
||||||
|
#pragma config BORV = 30
|
||||||
|
// #pragma config VREGEN = ON
|
||||||
|
#pragma config WDTEN = OFF
|
||||||
|
#pragma config WDTPS = 32768
|
||||||
|
#pragma config MCLRE = OFF
|
||||||
|
#pragma config HFOFST = OFF
|
||||||
|
#pragma config STVREN = ON
|
||||||
|
#pragma config LVP = OFF
|
||||||
|
#pragma config XINST = OFF
|
||||||
|
#pragma config BBSIZ = OFF
|
||||||
|
#pragma config CP0 = OFF
|
||||||
|
#pragma config CP1 = OFF
|
||||||
|
#pragma config CPB = OFF
|
||||||
|
#pragma config WRT0 = OFF
|
||||||
|
#pragma config WRT1 = OFF
|
||||||
|
#pragma config WRTB = OFF
|
||||||
|
#pragma config WRTC = OFF
|
||||||
|
#pragma config EBTR0 = OFF
|
||||||
|
#pragma config EBTR1 = OFF
|
||||||
|
#pragma config EBTRB = OFF
|
||||||
|
|
||||||
|
#include <p18f14k50.h>
|
||||||
|
#include "GenericTypeDefs.h"
|
||||||
|
#include "Compiler.h"
|
||||||
|
#include "./USB/usb.h"
|
||||||
|
#include "./USB/usb_function_cdc.h"
|
||||||
|
#include "USB/usb_device.h"
|
||||||
|
#include "USB/usb.h"
|
||||||
|
#include "usb_config.h"
|
||||||
|
|
||||||
|
#include "HardwareProfile.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
|
#pragma udata
|
||||||
|
char USB_Out_Buffer[CDC_DATA_OUT_EP_SIZE];
|
||||||
|
char USB_In_Buffer[CDC_DATA_IN_EP_SIZE];
|
||||||
|
|
||||||
|
unsigned char NextUSBOut;
|
||||||
|
unsigned char NextUSBOut;
|
||||||
|
unsigned char LastUSBIn; // Number of characters in the buffer
|
||||||
|
unsigned char USBcp; // current position within the buffer
|
||||||
|
unsigned char USB_In_Data_Rdy;
|
||||||
|
unsigned char USB_Out_Data_Rdy;
|
||||||
|
USB_HANDLE lastTransmission;
|
||||||
|
|
||||||
|
unsigned char usb_in;
|
||||||
|
unsigned char usb_in_state;
|
||||||
|
#define U_IDLE 0
|
||||||
|
#define U_IDLE2 1
|
||||||
|
#define U_RDY 2
|
||||||
|
#define U_OUT 3
|
||||||
|
|
||||||
|
unsigned char can_in;
|
||||||
|
|
||||||
|
static void InitializeSystem(void);
|
||||||
|
void ProcessIO(void);
|
||||||
|
void USBDeviceTasks(void);
|
||||||
|
void YourHighPriorityISRCode();
|
||||||
|
void YourLowPriorityISRCode();
|
||||||
|
void USBCBSendResume(void);
|
||||||
|
void UserInit(void);
|
||||||
|
unsigned char usbGetChar(void);
|
||||||
|
unsigned char usbIsDataRdy(void);
|
||||||
|
|
||||||
|
#pragma udata
|
||||||
|
|
||||||
|
#pragma interrupt isr_high
|
||||||
|
void isr_high(void) {
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
USBDeviceTasks();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Low priority interrupt. Not used.
|
||||||
|
//
|
||||||
|
#pragma interruptlow isr_low
|
||||||
|
void isr_low(void) {
|
||||||
|
Nop();
|
||||||
|
Nop();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interrupt vectors
|
||||||
|
*/
|
||||||
|
#pragma code high_vector=0x8
|
||||||
|
void HIGH_INT_VECT(void)
|
||||||
|
{
|
||||||
|
_asm GOTO isr_high _endasm
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma code low_vector=0x18
|
||||||
|
void LOW_INT_VECT(void)
|
||||||
|
{
|
||||||
|
_asm GOTO isr_low _endasm
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma code
|
||||||
|
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
InitializeSystem();
|
||||||
|
|
||||||
|
#if defined(USB_INTERRUPT)
|
||||||
|
if(USB_BUS_SENSE && (USBGetDeviceState() == DETACHED_STATE))
|
||||||
|
{
|
||||||
|
USBDeviceAttach();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
// Application-specific tasks.
|
||||||
|
// Application related code may be added here, or in the ProcessIO() function.
|
||||||
|
ProcessIO();
|
||||||
|
|
||||||
|
// Non-blocking state machine to handle USB -> CAN
|
||||||
|
switch (usb_in_state) {
|
||||||
|
case U_IDLE:
|
||||||
|
// Wait until data is received from host
|
||||||
|
if (usbIsDataRdy()) {
|
||||||
|
usb_in = usbGetChar();
|
||||||
|
PORTBbits.UDAV = 1;
|
||||||
|
usb_in_state = U_RDY;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case U_IDLE2:
|
||||||
|
// usb_in already holds a byte received from USB but CAN PIC started a transfer
|
||||||
|
// to USB before we could send the byte in usb_in to CAN. Spin around here and
|
||||||
|
// U_RDY waiting for UREQ handshake when the transfer to USB has finished.
|
||||||
|
usb_in_state = U_RDY;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case U_RDY:
|
||||||
|
if (PORTBbits.UREQ && (PORTBbits.CDAV == 0)) {
|
||||||
|
// CAN PIC is ready to receive and has nothing to send to USB.
|
||||||
|
Nop();
|
||||||
|
// Drive data bits out
|
||||||
|
TRISC = 0;
|
||||||
|
Nop();
|
||||||
|
PORTC = usb_in;
|
||||||
|
Nop();
|
||||||
|
PORTBbits.UDAV = 0;
|
||||||
|
usb_in_state = U_OUT;
|
||||||
|
} else if (PORTBbits.CDAV == 1) {
|
||||||
|
// CAN PIC has a CAN frame to send to USB so give it priority.
|
||||||
|
// CAN PIC uses a tight loop to send data to USB so this can only happen
|
||||||
|
// at the beginning of a frame, not in the maiddle of a frame.
|
||||||
|
usb_in_state = U_IDLE2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case U_OUT:
|
||||||
|
// Wait for CAN interface to acknowledge data
|
||||||
|
if (PORTBbits.UREQ == 0) {
|
||||||
|
TRISC = 0xFF;
|
||||||
|
usb_in_state = U_IDLE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((usb_in_state == U_IDLE) || (usb_in_state == U_IDLE2)) {
|
||||||
|
// USB->CAN handshke is idle
|
||||||
|
if (PORTBbits.CDAV && (NextUSBOut < CDC_DATA_OUT_EP_SIZE-1)) {
|
||||||
|
// CAN PIC has data available and will send it in tight loop to keep
|
||||||
|
// the CAN buffers as empty as possible, so we loop here until the whole
|
||||||
|
// packet is received.
|
||||||
|
PORTBbits.CREQ = 1;
|
||||||
|
while (PORTBbits.CDAV == 1) {
|
||||||
|
// wait for handshake
|
||||||
|
;
|
||||||
|
}
|
||||||
|
Nop();
|
||||||
|
Nop();
|
||||||
|
// put data into buffer and append a zero
|
||||||
|
USB_Out_Buffer[NextUSBOut] = PORTC;
|
||||||
|
if (PORTC == ';') {
|
||||||
|
// Received ';' so send the complete gridconnect packet
|
||||||
|
USB_Out_Data_Rdy = 1;
|
||||||
|
}
|
||||||
|
PORTBbits.CREQ = 0;
|
||||||
|
NextUSBOut++;
|
||||||
|
USB_Out_Buffer[NextUSBOut] = 0;
|
||||||
|
} else if (NextUSBOut >= CDC_DATA_OUT_EP_SIZE-1) {
|
||||||
|
// Should never happen, but send the buffer if it fills up
|
||||||
|
USB_Out_Data_Rdy = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* Function: static void InitializeSystem(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: InitializeSystem is a centralize initialization
|
||||||
|
* routine. All required USB initialization routines
|
||||||
|
* are called from here.
|
||||||
|
*
|
||||||
|
* User application initialization routine should
|
||||||
|
* also be called from here.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
static void InitializeSystem(void)
|
||||||
|
{
|
||||||
|
unsigned char i;
|
||||||
|
|
||||||
|
PORTC = PORTC_INIT;
|
||||||
|
PORTB = PORTB_INIT;
|
||||||
|
PORTA = PORTA_INIT;
|
||||||
|
|
||||||
|
// Port pull-ups
|
||||||
|
WPUA = 0x38;
|
||||||
|
WPUB = 0xF0;
|
||||||
|
|
||||||
|
TRISC = PORTC_DDR;
|
||||||
|
TRISB = PORTB_DDR;
|
||||||
|
TRISA = PORTA_DDR;
|
||||||
|
|
||||||
|
USB_In_Data_Rdy = 0;
|
||||||
|
USB_Out_Data_Rdy = 0;
|
||||||
|
ANSEL = 0; // Default all pins to digital
|
||||||
|
ANSELH = 0;
|
||||||
|
|
||||||
|
INTCON = 0;
|
||||||
|
|
||||||
|
// Initialize the arrays
|
||||||
|
for (i=0; i<sizeof(USB_Out_Buffer); i++)
|
||||||
|
{
|
||||||
|
USB_Out_Buffer[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NextUSBOut = 0;
|
||||||
|
LastUSBIn = 0;
|
||||||
|
lastTransmission = 0;
|
||||||
|
|
||||||
|
usb_in_state = U_IDLE;
|
||||||
|
|
||||||
|
USBDeviceInit(); //usb_device.c. Initializes USB module SFRs and firmware
|
||||||
|
//variables to known states.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Function: void mySetLineCodingHandler(void)
|
||||||
|
*
|
||||||
|
* PreCondition: USB_CDC_SET_LINE_CODING_HANDLER is defined
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: This function gets called when a SetLineCoding command
|
||||||
|
* is sent on the bus. This function will evaluate the request
|
||||||
|
* and determine if the application should update the baudrate
|
||||||
|
* or not.
|
||||||
|
*
|
||||||
|
* Note:
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
#if defined(USB_CDC_SET_LINE_CODING_HANDLER)
|
||||||
|
void mySetLineCodingHandler(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* Function: void ProcessIO(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: This function is a place holder for other user
|
||||||
|
* routines. It is a mixture of both USB and
|
||||||
|
* non-USB tasks.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void ProcessIO(void)
|
||||||
|
{
|
||||||
|
// User Application USB tasks
|
||||||
|
if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) { return; }
|
||||||
|
|
||||||
|
// If the previous USB data has been consumed, check for new data from USB.
|
||||||
|
if (USB_In_Data_Rdy == 0) {
|
||||||
|
LastUSBIn = getsUSBUSART(USB_In_Buffer, CDC_DATA_IN_EP_SIZE);
|
||||||
|
if(LastUSBIn > 0)
|
||||||
|
{
|
||||||
|
USB_In_Data_Rdy = 1; // signal buffer full
|
||||||
|
USBcp = 0; // Reset the current position
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send data to USB
|
||||||
|
if((USBUSARTIsTxTrfReady()) && USB_Out_Data_Rdy) {
|
||||||
|
putUSBUSART(&USB_Out_Buffer[0], NextUSBOut);
|
||||||
|
NextUSBOut = 0;
|
||||||
|
USB_Out_Data_Rdy = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
CDCTxService();
|
||||||
|
} //end ProcessIO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* usbIsDataRdy()
|
||||||
|
*
|
||||||
|
* Check if there is any data available
|
||||||
|
*/
|
||||||
|
unsigned char usbIsDataRdy(void) {
|
||||||
|
if (USB_In_Data_Rdy) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* usbGetChar()
|
||||||
|
*
|
||||||
|
* Get data from the input buffer
|
||||||
|
*/
|
||||||
|
unsigned char usbGetChar(void) {
|
||||||
|
unsigned char ret = 0;
|
||||||
|
if(USB_In_Data_Rdy) {
|
||||||
|
ret = USB_In_Buffer[USBcp];
|
||||||
|
++USBcp;
|
||||||
|
if (USBcp == LastUSBIn)
|
||||||
|
// All of the data has been consumed
|
||||||
|
USB_In_Data_Rdy = 0;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ******************************************************************************************************
|
||||||
|
// ************** USB Callback Functions ****************************************************************
|
||||||
|
// ******************************************************************************************************
|
||||||
|
// The USB firmware stack will call the callback functions USBCBxxx() in response to certain USB related
|
||||||
|
// events. For example, if the host PC is powering down, it will stop sending out Start of Frame (SOF)
|
||||||
|
// packets to your device. In response to this, all USB devices are supposed to decrease their power
|
||||||
|
// consumption from the USB Vbus to <2.5mA each. The USB module detects this condition (which according
|
||||||
|
// to the USB specifications is 3+ms of no bus activity/SOF packets) and then calls the USBCBSuspend()
|
||||||
|
// function. You should modify these callback functions to take appropriate actions for each of these
|
||||||
|
// conditions. For example, in the USBCBSuspend(), you may wish to add code that will decrease power
|
||||||
|
// consumption from Vbus to <2.5mA (such as by clock switching, turning off LEDs, putting the
|
||||||
|
// microcontroller to sleep, etc.). Then, in the USBCBWakeFromSuspend() function, you may then wish to
|
||||||
|
// add code that undoes the power saving things done in the USBCBSuspend() function.
|
||||||
|
|
||||||
|
// The USBCBSendResume() function is special, in that the USB stack will not automatically call this
|
||||||
|
// function. This function is meant to be called from the application firmware instead. See the
|
||||||
|
// additional comments near the function.
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Function: void USBCBSuspend(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: Call back that is invoked when a USB suspend is detected
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*****************************************************************************/
|
||||||
|
void USBCBSuspend(void)
|
||||||
|
{
|
||||||
|
//Example power saving code. Insert appropriate code here for the desired
|
||||||
|
//application behavior. If the microcontroller will be put to sleep, a
|
||||||
|
//process similar to that shown below may be used:
|
||||||
|
|
||||||
|
//ConfigureIOPinsForLowPower();
|
||||||
|
//SaveStateOfAllInterruptEnableBits();
|
||||||
|
//DisableAllInterruptEnableBits();
|
||||||
|
//EnableOnlyTheInterruptsWhichWillBeUsedToWakeTheMicro(); //should enable at least USBActivityIF as a wake source
|
||||||
|
//Sleep();
|
||||||
|
//RestoreStateOfAllPreviouslySavedInterruptEnableBits(); //Preferrably, this should be done in the USBCBWakeFromSuspend() function instead.
|
||||||
|
//RestoreIOPinsToNormal(); //Preferrably, this should be done in the USBCBWakeFromSuspend() function instead.
|
||||||
|
|
||||||
|
//IMPORTANT NOTE: Do not clear the USBActivityIF (ACTVIF) bit here. This bit is
|
||||||
|
//cleared inside the usb_device.c file. Clearing USBActivityIF here will cause
|
||||||
|
//things to not work as intended.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Function: void USBCBWakeFromSuspend(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: The host may put USB peripheral devices in low power
|
||||||
|
* suspend mode (by "sending" 3+ms of idle). Once in suspend
|
||||||
|
* mode, the host may wake the device back up by sending non-
|
||||||
|
* idle state signalling.
|
||||||
|
*
|
||||||
|
* This call back is invoked when a wakeup from USB suspend
|
||||||
|
* is detected.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*****************************************************************************/
|
||||||
|
void USBCBWakeFromSuspend(void)
|
||||||
|
{
|
||||||
|
// If clock switching or other power savings measures were taken when
|
||||||
|
// executing the USBCBSuspend() function, now would be a good time to
|
||||||
|
// switch back to normal full power run mode conditions. The host allows
|
||||||
|
// a few milliseconds of wakeup time, after which the device must be
|
||||||
|
// fully back to normal, and capable of receiving and processing USB
|
||||||
|
// packets. In order to do this, the USB module must receive proper
|
||||||
|
// clocking (IE: 48MHz clock must be available to SIE for full speed USB
|
||||||
|
// operation).
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* Function: void USBCB_SOF_Handler(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: The USB host sends out a SOF packet to full-speed
|
||||||
|
* devices every 1 ms. This interrupt may be useful
|
||||||
|
* for isochronous pipes. End designers should
|
||||||
|
* implement callback routine as necessary.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCB_SOF_Handler(void)
|
||||||
|
{
|
||||||
|
// No need to clear UIRbits.SOFIF to 0 here.
|
||||||
|
// Callback caller is already doing that.
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: void USBCBErrorHandler(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: The purpose of this callback is mainly for
|
||||||
|
* debugging during development. Check UEIR to see
|
||||||
|
* which error causes the interrupt.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCBErrorHandler(void)
|
||||||
|
{
|
||||||
|
// No need to clear UEIR to 0 here.
|
||||||
|
// Callback caller is already doing that.
|
||||||
|
|
||||||
|
// Typically, user firmware does not need to do anything special
|
||||||
|
// if a USB error occurs. For example, if the host sends an OUT
|
||||||
|
// packet to your device, but the packet gets corrupted (ex:
|
||||||
|
// because of a bad connection, or the user unplugs the
|
||||||
|
// USB cable during the transmission) this will typically set
|
||||||
|
// one or more USB error interrupt flags. Nothing specific
|
||||||
|
// needs to be done however, since the SIE will automatically
|
||||||
|
// send a "NAK" packet to the host. In response to this, the
|
||||||
|
// host will normally retry to send the packet again, and no
|
||||||
|
// data loss occurs. The system will typically recover
|
||||||
|
// automatically, without the need for application firmware
|
||||||
|
// intervention.
|
||||||
|
|
||||||
|
// Nevertheless, this callback function is provided, such as
|
||||||
|
// for debugging purposes.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: void USBCBCheckOtherReq(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: When SETUP packets arrive from the host, some
|
||||||
|
* firmware must process the request and respond
|
||||||
|
* appropriately to fulfill the request. Some of
|
||||||
|
* the SETUP packets will be for standard
|
||||||
|
* USB "chapter 9" (as in, fulfilling chapter 9 of
|
||||||
|
* the official USB specifications) requests, while
|
||||||
|
* others may be specific to the USB device class
|
||||||
|
* that is being implemented. For example, a HID
|
||||||
|
* class device needs to be able to respond to
|
||||||
|
* "GET REPORT" type of requests. This
|
||||||
|
* is not a standard USB chapter 9 request, and
|
||||||
|
* therefore not handled by usb_device.c. Instead
|
||||||
|
* this request should be handled by class specific
|
||||||
|
* firmware, such as that contained in usb_function_hid.c.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCBCheckOtherReq(void)
|
||||||
|
{
|
||||||
|
USBCheckCDCRequest();
|
||||||
|
}//end
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: void USBCBStdSetDscHandler(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: The USBCBStdSetDscHandler() callback function is
|
||||||
|
* called when a SETUP, bRequest: SET_DESCRIPTOR request
|
||||||
|
* arrives. Typically SET_DESCRIPTOR requests are
|
||||||
|
* not used in most applications, and it is
|
||||||
|
* optional to support this type of request.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCBStdSetDscHandler(void)
|
||||||
|
{
|
||||||
|
// Must claim session ownership if supporting this request
|
||||||
|
}//end
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: void USBCBInitEP(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: This function is called when the device becomes
|
||||||
|
* initialized, which occurs after the host sends a
|
||||||
|
* SET_CONFIGURATION (wValue not = 0) request. This
|
||||||
|
* callback function should initialize the endpoints
|
||||||
|
* for the device's usage according to the current
|
||||||
|
* configuration.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCBInitEP(void)
|
||||||
|
{
|
||||||
|
CDCInitEP();
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* Function: void USBCBSendResume(void)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: The USB specifications allow some types of USB
|
||||||
|
* peripheral devices to wake up a host PC (such
|
||||||
|
* as if it is in a low power suspend to RAM state).
|
||||||
|
* This can be a very useful feature in some
|
||||||
|
* USB applications, such as an Infrared remote
|
||||||
|
* control receiver. If a user presses the "power"
|
||||||
|
* button on a remote control, it is nice that the
|
||||||
|
* IR receiver can detect this signalling, and then
|
||||||
|
* send a USB "command" to the PC to wake up.
|
||||||
|
*
|
||||||
|
* The USBCBSendResume() "callback" function is used
|
||||||
|
* to send this special USB signalling which wakes
|
||||||
|
* up the PC. This function may be called by
|
||||||
|
* application firmware to wake up the PC. This
|
||||||
|
* function will only be able to wake up the host if
|
||||||
|
* all of the below are true:
|
||||||
|
*
|
||||||
|
* 1. The USB driver used on the host PC supports
|
||||||
|
* the remote wakeup capability.
|
||||||
|
* 2. The USB configuration descriptor indicates
|
||||||
|
* the device is remote wakeup capable in the
|
||||||
|
* bmAttributes field.
|
||||||
|
* 3. The USB host PC is currently sleeping,
|
||||||
|
* and has previously sent your device a SET
|
||||||
|
* FEATURE setup packet which "armed" the
|
||||||
|
* remote wakeup capability.
|
||||||
|
*
|
||||||
|
* If the host has not armed the device to perform remote wakeup,
|
||||||
|
* then this function will return without actually performing a
|
||||||
|
* remote wakeup sequence. This is the required behavior,
|
||||||
|
* as a USB device that has not been armed to perform remote
|
||||||
|
* wakeup must not drive remote wakeup signalling onto the bus;
|
||||||
|
* doing so will cause USB compliance testing failure.
|
||||||
|
*
|
||||||
|
* This callback should send a RESUME signal that
|
||||||
|
* has the period of 1-15ms.
|
||||||
|
*
|
||||||
|
* Note: This function does nothing and returns quickly, if the USB
|
||||||
|
* bus and host are not in a suspended condition, or are
|
||||||
|
* otherwise not in a remote wakeup ready state. Therefore, it
|
||||||
|
* is safe to optionally call this function regularly, ex:
|
||||||
|
* anytime application stimulus occurs, as the function will
|
||||||
|
* have no effect, until the bus really is in a state ready
|
||||||
|
* to accept remote wakeup.
|
||||||
|
*
|
||||||
|
* When this function executes, it may perform clock switching,
|
||||||
|
* depending upon the application specific code in
|
||||||
|
* USBCBWakeFromSuspend(). This is needed, since the USB
|
||||||
|
* bus will no longer be suspended by the time this function
|
||||||
|
* returns. Therefore, the USB module will need to be ready
|
||||||
|
* to receive traffic from the host.
|
||||||
|
*
|
||||||
|
* The modifiable section in this routine may be changed
|
||||||
|
* to meet the application needs. Current implementation
|
||||||
|
* temporary blocks other functions from executing for a
|
||||||
|
* period of ~3-15 ms depending on the core frequency.
|
||||||
|
*
|
||||||
|
* According to USB 2.0 specification section 7.1.7.7,
|
||||||
|
* "The remote wakeup device must hold the resume signaling
|
||||||
|
* for at least 1 ms but for no more than 15 ms."
|
||||||
|
* The idea here is to use a delay counter loop, using a
|
||||||
|
* common value that would work over a wide range of core
|
||||||
|
* frequencies.
|
||||||
|
* That value selected is 1800. See table below:
|
||||||
|
* ==========================================================
|
||||||
|
* Core Freq(MHz) MIP RESUME Signal Period (ms)
|
||||||
|
* ==========================================================
|
||||||
|
* 48 12 1.05
|
||||||
|
* 4 1 12.6
|
||||||
|
* ==========================================================
|
||||||
|
* * These timing could be incorrect when using code
|
||||||
|
* optimization or extended instruction mode,
|
||||||
|
* or when having other interrupts enabled.
|
||||||
|
* Make sure to verify using the MPLAB SIM's Stopwatch
|
||||||
|
* and verify the actual signal on an oscilloscope.
|
||||||
|
*******************************************************************/
|
||||||
|
void USBCBSendResume(void)
|
||||||
|
{
|
||||||
|
static WORD delay_count;
|
||||||
|
|
||||||
|
//First verify that the host has armed us to perform remote wakeup.
|
||||||
|
//It does this by sending a SET_FEATURE request to enable remote wakeup,
|
||||||
|
//usually just before the host goes to standby mode (note: it will only
|
||||||
|
//send this SET_FEATURE request if the configuration descriptor declares
|
||||||
|
//the device as remote wakeup capable, AND, if the feature is enabled
|
||||||
|
//on the host (ex: on Windows based hosts, in the device manager
|
||||||
|
//properties page for the USB device, power management tab, the
|
||||||
|
//"Allow this device to bring the computer out of standby." checkbox
|
||||||
|
//should be checked).
|
||||||
|
if(USBGetRemoteWakeupStatus() == TRUE)
|
||||||
|
{
|
||||||
|
//Verify that the USB bus is in fact suspended, before we send
|
||||||
|
//remote wakeup signalling.
|
||||||
|
if(USBIsBusSuspended() == TRUE)
|
||||||
|
{
|
||||||
|
USBMaskInterrupts();
|
||||||
|
|
||||||
|
//Clock switch to settings consistent with normal USB operation.
|
||||||
|
USBCBWakeFromSuspend();
|
||||||
|
USBSuspendControl = 0;
|
||||||
|
USBBusIsSuspended = FALSE; //So we don't execute this code again,
|
||||||
|
//until a new suspend condition is detected.
|
||||||
|
|
||||||
|
//Section 7.1.7.7 of the USB 2.0 specifications indicates a USB
|
||||||
|
//device must continuously see 5ms+ of idle on the bus, before it sends
|
||||||
|
//remote wakeup signalling. One way to be certain that this parameter
|
||||||
|
//gets met, is to add a 2ms+ blocking delay here (2ms plus at
|
||||||
|
//least 3ms from bus idle to USBIsBusSuspended() == TRUE, yeilds
|
||||||
|
//5ms+ total delay since start of idle).
|
||||||
|
delay_count = 3600U;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
delay_count--;
|
||||||
|
}while(delay_count);
|
||||||
|
|
||||||
|
//Now drive the resume K-state signalling onto the USB bus.
|
||||||
|
USBResumeControl = 1; // Start RESUME signaling
|
||||||
|
delay_count = 1800U; // Set RESUME line for 1-13 ms
|
||||||
|
do
|
||||||
|
{
|
||||||
|
delay_count--;
|
||||||
|
}while(delay_count);
|
||||||
|
USBResumeControl = 0; //Finished driving resume signalling
|
||||||
|
|
||||||
|
USBUnmaskInterrupts();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: void USBCBEP0DataReceived(void)
|
||||||
|
*
|
||||||
|
* PreCondition: ENABLE_EP0_DATA_RECEIVED_CALLBACK must be
|
||||||
|
* defined already (in usb_config.h)
|
||||||
|
*
|
||||||
|
* Input: None
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: This function is called whenever a EP0 data
|
||||||
|
* packet is received. This gives the user (and
|
||||||
|
* thus the various class examples a way to get
|
||||||
|
* data that is received via the control endpoint.
|
||||||
|
* This function needs to be used in conjunction
|
||||||
|
* with the USBCBCheckOtherReq() function since
|
||||||
|
* the USBCBCheckOtherReq() function is the apps
|
||||||
|
* method for getting the initial control transfer
|
||||||
|
* before the data arrives.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
#if defined(ENABLE_EP0_DATA_RECEIVED_CALLBACK)
|
||||||
|
void USBCBEP0DataReceived(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* Function: BOOL USER_USB_CALLBACK_EVENT_HANDLER(
|
||||||
|
* USB_EVENT event, void *pdata, WORD size)
|
||||||
|
*
|
||||||
|
* PreCondition: None
|
||||||
|
*
|
||||||
|
* Input: USB_EVENT event - the type of event
|
||||||
|
* void *pdata - pointer to the event data
|
||||||
|
* WORD size - size of the event data
|
||||||
|
*
|
||||||
|
* Output: None
|
||||||
|
*
|
||||||
|
* Side Effects: None
|
||||||
|
*
|
||||||
|
* Overview: This function is called from the USB stack to
|
||||||
|
* notify a user application that a USB event
|
||||||
|
* occured. This callback is in interrupt context
|
||||||
|
* when the USB_INTERRUPT option is selected.
|
||||||
|
*
|
||||||
|
* Note: None
|
||||||
|
*******************************************************************/
|
||||||
|
BOOL USER_USB_CALLBACK_EVENT_HANDLER(int event, void *pdata, WORD size)
|
||||||
|
{
|
||||||
|
switch(event)
|
||||||
|
{
|
||||||
|
case EVENT_TRANSFER:
|
||||||
|
//Add application specific callback task or callback function here if desired.
|
||||||
|
break;
|
||||||
|
case EVENT_SOF:
|
||||||
|
USBCB_SOF_Handler();
|
||||||
|
break;
|
||||||
|
case EVENT_SUSPEND:
|
||||||
|
USBCBSuspend();
|
||||||
|
break;
|
||||||
|
case EVENT_RESUME:
|
||||||
|
USBCBWakeFromSuspend();
|
||||||
|
break;
|
||||||
|
case EVENT_CONFIGURED:
|
||||||
|
USBCBInitEP();
|
||||||
|
break;
|
||||||
|
case EVENT_SET_DESCRIPTOR:
|
||||||
|
USBCBStdSetDscHandler();
|
||||||
|
break;
|
||||||
|
case EVENT_EP0_REQUEST:
|
||||||
|
USBCBCheckOtherReq();
|
||||||
|
break;
|
||||||
|
case EVENT_BUS_ERROR:
|
||||||
|
USBCBErrorHandler();
|
||||||
|
break;
|
||||||
|
case EVENT_TRANSFER_TERMINATED:
|
||||||
|
//Add application specific callback task or callback function here if desired.
|
||||||
|
//The EVENT_TRANSFER_TERMINATED event occurs when the host performs a CLEAR
|
||||||
|
//FEATURE (endpoint halt) request on an application endpoint which was
|
||||||
|
//previously armed (UOWN was = 1). Here would be a good place to:
|
||||||
|
//1. Determine which endpoint the transaction that just got terminated was
|
||||||
|
// on, by checking the handle value in the *pdata.
|
||||||
|
//2. Re-arm the endpoint if desired (typically would be the case for OUT
|
||||||
|
// endpoints).
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** EOF main.c *************************************************/
|
||||||
|
|
||||||
BIN
Source/USB/picft245.cof
Normale Datei
BIN
Source/USB/picft245.cof
Normale Datei
Binäre Datei nicht angezeigt.
496
Source/USB/picft245.hex
Normale Datei
496
Source/USB/picft245.hex
Normale Datei
@ -0,0 +1,496 @@
|
|||||||
|
:020000040000FA
|
||||||
|
:06000000A9EF0EF0120052
|
||||||
|
:0600080005EF0CF01200F0
|
||||||
|
:0600180050EF0CF0120095
|
||||||
|
:020028000000D6
|
||||||
|
:06002A00D9CFE6FFE1CF93
|
||||||
|
:10003000D9FFE652A0940F015F6B626A536B020E08
|
||||||
|
:10004000E66EE66AE66A540EE66E0F0EE66E7FEC2A
|
||||||
|
:100050000EF00B6E050EE15E0B50160E616E0F0179
|
||||||
|
:100060009F0E5B6F7B0E606EDF6ADF500B6E0C6A5B
|
||||||
|
:100070000C0E0B5C000E0C5810E2DF50040DF3CF99
|
||||||
|
:10008000E9FFF4CFEAFF000EE926020EEA22EE6A4B
|
||||||
|
:10009000EE6AEE6AEE6ADF2AE8D7648C0F015C6BC9
|
||||||
|
:1000A0006498649C62A607D062960101586B5D6BF0
|
||||||
|
:1000B0005E6B5F6BF7D70101010E716F726F736B2F
|
||||||
|
:1000C000746B656BDF6A030EDF5C26E2EA6ADF347D
|
||||||
|
:1000D000FE0BEA36E96E4E0EE926010EEA22EE6AC2
|
||||||
|
:1000E000ED6AEA6ADF34FE0BEA36E96E480EE9266D
|
||||||
|
:1000F000010EEA22EE6AED6ADF50EA6A690FE96EE4
|
||||||
|
:10010000010EEA22EF6ADF50EA6A6C0FE96E010E17
|
||||||
|
:10011000EA22EF6ADF2AD7D70101080E4E6F020EDE
|
||||||
|
:100120004F6F0F01160E536F0201300E026F020E59
|
||||||
|
:10013000036F080E016F840E006F0101416B406B6D
|
||||||
|
:10014000E552E552E7CFD9FF1200D9CFE6FFE1CF64
|
||||||
|
:10015000D9FFE6520101400507E164BA05D0626AA1
|
||||||
|
:1001600060806088020E406F6250040B06E06050B1
|
||||||
|
:10017000040B03E06294B2EC06F064A202D0A194F6
|
||||||
|
:1001800091D06250010B09E06050010B06E04DDF99
|
||||||
|
:10019000A0840101040E406F62906250100B06E0D3
|
||||||
|
:1001A0006050100B03E09DEC06F0629862AC12D038
|
||||||
|
:1001B00060AC0FD0010EE66EE66A000EE66EE66AEF
|
||||||
|
:1001C000730EE66EE66A9DEC0DF00B6E060EE15EB8
|
||||||
|
:1001D0000B50629C6250200B05E06050200B02E047
|
||||||
|
:1001E00083EC06F06250020B14E06050020B11E049
|
||||||
|
:1001F000010EE66EE66A000EE66EE66AE6687F0EBF
|
||||||
|
:10020000E66E9DEC0DF00B6E060EE15E0B500F01DD
|
||||||
|
:100210005F6B040E0101E76E4019E8AE02D0E734CF
|
||||||
|
:1002200002D0E750405D02E2A1943CD060A639D0F4
|
||||||
|
:10023000DF6A040EDF5C35E262A632D063CF66F17E
|
||||||
|
:1002400001016651780BE842E842E842676F629626
|
||||||
|
:1002500066B508D06751EA6A6C0FE96E010EEA22B2
|
||||||
|
:10026000EF7007D06751EA6A690FE96E010EEA2262
|
||||||
|
:10027000EF70675103E1C9EC06F010D0000EE66E96
|
||||||
|
:10028000E66A660EE66E010EE66E720EE66EE66ACF
|
||||||
|
:100290009DEC0DF00B6E060EE15E0B50DF2AC9D708
|
||||||
|
:1002A00000D0A194E552E552E7CFD9FF1200D9CF93
|
||||||
|
:1002B000E6FFE1CFD9FF020EE126FD0EDBA407D059
|
||||||
|
:1002C000E66AFE0EDBCFE6FF23DAE552E552FD0ECD
|
||||||
|
:1002D000DBA208D0010EE66EFE0EDBCFE6FF18DAD9
|
||||||
|
:1002E000E552E552FE0EDB500C6A530F0B6E0F0EFB
|
||||||
|
:1002F0000C220BC0DEFF0CC0DDFFDECFE9FFDDCF3F
|
||||||
|
:10030000EAFFFD0EDBCFEFFF020EE15C02E2E16AE5
|
||||||
|
:10031000E552E16EE552E7CFD9FF1200D9CFE6FFF3
|
||||||
|
:10032000E1CFD9FF020EE126FD0EDB500FE0FE0EFD
|
||||||
|
:10033000EA6ADB34FE0BEA36E96E4E0EE926010E60
|
||||||
|
:10034000EA22EECFDEFFEDCFDDFF0ED0FE0EEA6A31
|
||||||
|
:10035000DB34FE0BEA36E96E480EE926010EEA228E
|
||||||
|
:10036000EECFDEFFEDCFDDFFD9CFE9FFDACFEAFF39
|
||||||
|
:10037000EE50ED1003E1F36AF46A49D0DECFE9FFF5
|
||||||
|
:10038000DDCFEAFF020EE926000EEA22FB0EDBCFEC
|
||||||
|
:10039000EEFFFC0EDBCFEDFFDECFE9FFDDCFEAFFA6
|
||||||
|
:1003A000EE52FA0EDBCFEFFF400E0B6EDECFE9FF11
|
||||||
|
:1003B000DDCFEAFF0B50EF16880E0B6EDECFE9FFA4
|
||||||
|
:1003C000DDCFEAFF0B50EF12FD0EDB500CE0FE0E0E
|
||||||
|
:1003D000EA6ADB34FE0BEA36E96E4E0EE926010EC0
|
||||||
|
:1003E000EA22EF740BD0FE0EEA6ADB34FE0BEA362B
|
||||||
|
:1003F000E96E480EE926010EEA22EF74DECF0BF01B
|
||||||
|
:10040000DDCF0CF00BC0F3FF0CC0F4FF00D0020EE8
|
||||||
|
:10041000E15C02E2E16AE552E16EE552E7CFD9FF25
|
||||||
|
:100420001200D9CFE6FFE1CFD9FF020EE126FE0E82
|
||||||
|
:10043000DB5020E146C1E9FF47C1EAFFEE52080E5A
|
||||||
|
:10044000EF6E46C1E9FF47C1EAFF020EE926000E42
|
||||||
|
:10045000EA22300EEE6E020EED6E46C1E9FF47C194
|
||||||
|
:10046000EAFF8C0EEF6E4EC1E9FF4FC1EAFF840E2A
|
||||||
|
:10047000EF6E3DD0FD0EDB50E8240D6EFE0EDB501E
|
||||||
|
:10048000040DF3500D24040DF3CF0BF0F4CF0CF05A
|
||||||
|
:10049000000E0B26020E0C220BC0DEFF0CC0DDFF8F
|
||||||
|
:1004A000840E0B6EDECFE9FFDDCFEAFF0B50EF12BB
|
||||||
|
:1004B000FD0EDB50E8240D6EFE0EDB50040DF350F4
|
||||||
|
:1004C0000D24010F040DF3CF0BF0F4CF0CF0000E50
|
||||||
|
:1004D0000B26020E0C220BC0DEFF0CC0DDFF840ECB
|
||||||
|
:1004E0000B6EDECFE9FFDDCFEAFF0B50EF12020EFD
|
||||||
|
:1004F000E15C02E2E16AE552E16EE552E7CFD9FF45
|
||||||
|
:100500001200D9CFE6FFE1CFD9FF64A84ED0FE0E8E
|
||||||
|
:10051000EA6ADB34FE0BEA36E96E4E0EE926010E7E
|
||||||
|
:10052000EA22EE50EFCFEAFFE96E400EEE16EE6AD9
|
||||||
|
:10053000EE6AEE6AFE0EEA6ADB34FE0BEA36E96E1C
|
||||||
|
:100540004E0EE926010EEA22EE50EFCFEAFFE96EE9
|
||||||
|
:10055000EE7CFE0EEA6ADB34FE0BEA36E96E4E0EE6
|
||||||
|
:10056000E926010EEA22EF74400E0B6EFE0EEA6AD7
|
||||||
|
:10057000DB34FE0BEA36E96E4E0EE926010EEA2266
|
||||||
|
:10058000EE50EFCFEAFFE96E0B50EF16FE0EEA6A6F
|
||||||
|
:10059000DB34FE0BEA36E96E4E0EE926010EEA2246
|
||||||
|
:1005A000EE50EFCFEAFFE96EEF7CE552E7CFD9FFDF
|
||||||
|
:1005B0001200646A606A0101406B00D01200010100
|
||||||
|
:1005C000405114E1646A606A160E616E0F019F0E5D
|
||||||
|
:1005D0005B6F7B0E606ED08EA284A084F28E64B6B8
|
||||||
|
:1005E00002D06486FCD70101010E406F12000101A8
|
||||||
|
:1005F00071514DE1010E716F725149E1010E726F3F
|
||||||
|
:10060000020E555D0DE14EC1E9FF4FC1EAFFEE520A
|
||||||
|
:10061000EF6A4EC1E9FF4FC1EAFFC80EEF6E37D057
|
||||||
|
:10062000550535E1686B44C1E9FF45C1EAFFEE526B
|
||||||
|
:10063000080EEF6E44C1E9FF45C1EAFF020EE9264C
|
||||||
|
:10064000000EEA22300EEE6E020EED6E44C1E9FF9E
|
||||||
|
:1006500045C1EAFF840EEF6E010E686F46C1E9FFE7
|
||||||
|
:1006600047C1EAFFEE52080EEF6E46C1E9FF47C1EF
|
||||||
|
:10067000EAFF020EE926000EEA22300EEE6E020EAE
|
||||||
|
:10068000ED6E46C1E9FF47C1EAFF800EEF6E120032
|
||||||
|
:100690000101736B746B020E555D1AE146C1E9FFEF
|
||||||
|
:1006A00047C1EAFFEE52080EEF6E46C1E9FF47C1AF
|
||||||
|
:1006B000EAFF020EE926000EEA22380EEE6E020E66
|
||||||
|
:1006C000ED6E46C1E9FF47C1EAFFC80EEF6E1FD0CD
|
||||||
|
:1006D00059510201365D01015A510201375904E2B4
|
||||||
|
:1006E00036C259F137C25AF1D1D84EC1E9FF4FC1D4
|
||||||
|
:1006F000EAFF020EE926000EEA22380EEE6E020E26
|
||||||
|
:10070000ED6E4EC1E9FF4FC1EAFFC80EEF6E120059
|
||||||
|
:10071000D9CFE6FFE1CFD9FF020EE126000EDE6E53
|
||||||
|
:10072000020EDD6EFD0EDB50E8240D6EFE0EDB507A
|
||||||
|
:10073000040DF3500D24040DF3CF0BF0F4CF0CF0A7
|
||||||
|
:10074000D9CFE9FFDACFEAFF0B50EE260C50ED22AD
|
||||||
|
:10075000DECFE9FFDDCFEAFFEF9EFD0EDB500FE1BC
|
||||||
|
:10076000FE0EEA6ADB34FE0BEA36E96E480EE92635
|
||||||
|
:10077000010EEA22DECFEEFFDDCFEDFF0ED0FE0E42
|
||||||
|
:10078000EA6ADB34FE0BEA36E96E4E0EE926010E0C
|
||||||
|
:10079000EA22DECFEEFFDDCFEDFFDECFE9FFDDCFDA
|
||||||
|
:1007A000EAFFEF9CDECFE9FFDDCFEAFF040EE9268A
|
||||||
|
:1007B000000EEA22EF8C020EE15C02E2E16AE552F1
|
||||||
|
:1007C000E16EE552E7CFD9FF12006498010158BFEE
|
||||||
|
:1007D0002BD05DAF09D0020E556F745101E158DF87
|
||||||
|
:1007E0000101726B716B1FD046C1E9FF47C1EAFF7F
|
||||||
|
:1007F000EE52080EEF6E46C1E9FF47C1EAFF020E56
|
||||||
|
:10080000E926000EEA22300EEE6E020EED6E46C1B3
|
||||||
|
:10081000E9FF47C1EAFF8C0EEF6E4EC1E9FF4FC101
|
||||||
|
:10082000EAFF840EEF6E31D0020130AF0DD001012E
|
||||||
|
:10083000010E556F735101E12BDF0101726B716B7A
|
||||||
|
:10084000705101E1D4DE21D00101020E556F46C185
|
||||||
|
:10085000E9FF47C1EAFFEE52080EEF6E46C1E9FF1D
|
||||||
|
:1008600047C1EAFF020EE926000EEA22300EEE6EC4
|
||||||
|
:10087000020EED6E46C1E9FF47C1EAFF840EEF6E3E
|
||||||
|
:10088000726B716B705101E1B2DE1200D9CFE6FFDD
|
||||||
|
:10089000E1CFD9FFE652080EDF6E0101595D000E6F
|
||||||
|
:1008A0005A590BE259C1DFFF545103E1010E546F55
|
||||||
|
:1008B00004D0540502E1020E546FDF500B6E0C6A37
|
||||||
|
:1008C0000B50595D596F0C505A595A6F4EC1E9FF80
|
||||||
|
:1008D0004FC1EAFFEE52DFCFEFFF380E626F020E1C
|
||||||
|
:1008E000636F58B119D0DF5016E056C1F6FF57C1FB
|
||||||
|
:1008F000F7FF562B000E57230800F550E66E62C135
|
||||||
|
:10090000E9FF63C1EAFF622B000E6323E552E75063
|
||||||
|
:10091000EF6EDF06E8D717D0DF5015E056C1E9FFCC
|
||||||
|
:1009200057C1EAFF562B000E5723EF50E66E62C107
|
||||||
|
:10093000E9FF63C1EAFF622B000E6323E552E75033
|
||||||
|
:10094000EF6EDF06E9D7E552E552E7CFD9FF120097
|
||||||
|
:10095000D9CFE6FFE1CFD9FF020EE12644C1E9FF7E
|
||||||
|
:1009600045C1EAFFEE52EFCFDFFFDFCF0BF00B50B8
|
||||||
|
:1009700001015E5D000E5F5902E25EC1DFFFDF50E4
|
||||||
|
:100980000B6E0C6A0B505E5D5E6F0C505F595F6FB3
|
||||||
|
:10099000010EDB6ADF50F36E010EDBCFF4FFF35084
|
||||||
|
:1009A000F45C16E2010EDB50EA6A380FE96E020EC3
|
||||||
|
:1009B000EA22EF50E66E5BC1E9FF5CC1EAFF5B2B08
|
||||||
|
:1009C000000E5C23E552E750EF6E010EDB2AE2D702
|
||||||
|
:1009D000000ED8805E55000E5F5528E246C1E9FF43
|
||||||
|
:1009E00047C1EAFFEE52080EEF6E46C1E9FF47C16C
|
||||||
|
:1009F000EAFF020EE926000EEA22380EEE6E020E23
|
||||||
|
:100A0000ED6E44C1E9FF45C1EAFFEF50400B07E13D
|
||||||
|
:100A100046C1E9FF47C1EAFFC80EEF6E06D046C1E6
|
||||||
|
:100A2000E9FF47C1EAFF880EEF6E28D046C1E9FF13
|
||||||
|
:100A300047C1EAFFEE52080EEF6E46C1E9FF47C11B
|
||||||
|
:100A4000EAFF020EE926000EEA22300EEE6E020EDA
|
||||||
|
:100A5000ED6E46C1E9FF47C1EAFF840EEF6E6051BB
|
||||||
|
:100A6000611107E005D061C1FAFF01016051F96E23
|
||||||
|
:100A7000FADF01015D9F705101E1B9DD020EE15C19
|
||||||
|
:100A800002E2E16AE552E16EE552E7CFD9FF1200DA
|
||||||
|
:100A9000D9CFE6FFE1CFD9FFE6520101588F020E10
|
||||||
|
:100AA000E66EE66AE66A540EE66E0F0EE66E7FECC0
|
||||||
|
:100AB0000EF00B6E050EE15E0B50300EE66EE66A30
|
||||||
|
:100AC000E66A000EE66E020EE66E7FEC0EF00B6E2E
|
||||||
|
:100AD000050EE15E0B50648CDF6A030EDF5C10E2F2
|
||||||
|
:100AE000DF50EA6A690FE96E010EEA22EF6ADF5011
|
||||||
|
:100AF000EA6A6C0FE96E010EEA22EF6ADF2AEDD78F
|
||||||
|
:100B0000020EE66EE66AE66A420EE66E010EE66EDA
|
||||||
|
:100B10007FEC0EF00B6E050EE15E0B50649C010144
|
||||||
|
:100B2000080E4E6F020E4F6F000E446F020E456F9F
|
||||||
|
:100B300044C146F145C147F132C241F1415103E19F
|
||||||
|
:100B4000100E406F13D0010EE66EE66A410EE66E9F
|
||||||
|
:100B5000010EE66E010EE66EE66A9DEC0DF00B6E80
|
||||||
|
:100B6000060EE15E0B500101200E406FE552E5528A
|
||||||
|
:100B7000E7CFD9FF1200800E0201305D5BE1010179
|
||||||
|
:100B8000C00E586F02013351030A34E0010A0EE02F
|
||||||
|
:100B9000030A03E00101586B4DD00101760E566F38
|
||||||
|
:100BA0001C0E576F120E596F5A6B44D03251F66EAD
|
||||||
|
:100BB000F76AD890F636F736F50EF6261C0EF722B1
|
||||||
|
:100BC0000900F5CF56F10A00F5CF57F1020E0101E9
|
||||||
|
:100BD000F76A5625F66E5751F7220800F5CF59F1FE
|
||||||
|
:100BE000030EF76A5625F66E5751F7220800F5CF27
|
||||||
|
:100BF0005AF120D0030E325D1AE23251F66EF76AD6
|
||||||
|
:100C0000D890F636F736F70EF6261C0EF7220900B6
|
||||||
|
:100C1000F5CF56F10A00F5CF57F156C1F6FF57C18F
|
||||||
|
:100C2000F7FF0800F5500101596F5A6B02D001011E
|
||||||
|
:100C3000586B00D01200D9CFE6FFE1CFD9FF020EEA
|
||||||
|
:100C4000E1260201386B396B30511F0B020A12E0AA
|
||||||
|
:100C5000030A0DE0010A01E042D00101588F0201B0
|
||||||
|
:100C600038810101640502E10201388338D00101B5
|
||||||
|
:100C7000588F35D00101588F020134BF10D0345144
|
||||||
|
:100C80000F0BE96EEA6AD890E936EA36480EE92693
|
||||||
|
:100C9000010EEA22EECFDEFFEDCFDDFF0FD03451A3
|
||||||
|
:100CA0000F0BE96EEA6AD890E936EA364E0EE9266D
|
||||||
|
:100CB000010EEA22EECFDEFFEDCFDDFFDECFE9FF52
|
||||||
|
:100CC000DDCFEAFFEF50800B09E0DECFE9FFDDCF9B
|
||||||
|
:100CD000EAFFEF50040B02E0010E386F00D0010173
|
||||||
|
:100CE00058AF07D0380E566F020E576F5881020E5C
|
||||||
|
:100CF000596F020EE15C02E2E16AE552E16EE552F3
|
||||||
|
:100D0000E7CFD9FF12000F0153A115D044C1E9FF6D
|
||||||
|
:100D100045C1EAFFEF5080080DE14EC1E9FF4FC128
|
||||||
|
:100D2000EAFFEF50840806E144C1E9FF45C1EAFF4C
|
||||||
|
:100D30008C0EEF6E5391629A120060846298648206
|
||||||
|
:100D40000101010E656F000EE66EE66AE66EE66A68
|
||||||
|
:100D5000750EE66EE66A9DEC0DF00B6E060EE15E1A
|
||||||
|
:100D60000B5012000101656B000EE66EE66AE66E3E
|
||||||
|
:100D7000E66A740EE66EE66A9DEC0DF00B6E060EEA
|
||||||
|
:100D8000E15E0B506492609462A402D06294FCD73E
|
||||||
|
:100D90001200D9CFE6FFE1CFD9FFE652FD0E0101E7
|
||||||
|
:100DA000661553E17E0E6615E8407F0B040DF3CF08
|
||||||
|
:100DB00044F1F4CF45F1000E4427020E452344C10F
|
||||||
|
:100DC00046F145C147F1467544C1E9FF45C1EAFF17
|
||||||
|
:100DD000EF503C0BE842E8420D0835E1DF6A080EAF
|
||||||
|
:100DE000DF5C23E244C1E9FF45C1EAFF020EE926C8
|
||||||
|
:100DF000000EEA22EE50EFCFEAFFE96EEF50E66E0A
|
||||||
|
:100E0000DF50EA6A300FE96E020EEA22E552E7503F
|
||||||
|
:100E1000EF6E44C1E9FF45C1EAFF020EE926000E6C
|
||||||
|
:100E2000EA22EE2AEF22DF2ADAD744C1E9FF45C1E0
|
||||||
|
:100E3000EAFF020EE926000EEA22300EEE6E020EE6
|
||||||
|
:100E4000ED6E0DD801D03AD805D0FD0E6615040818
|
||||||
|
:100E500001E159D8E552E552E7CFD9FF120001016F
|
||||||
|
:100E6000546B706B736B746B686B556B4EC1E9FFA1
|
||||||
|
:100E70004FC1EAFFEF9E4E754EC1E9FF4FC1EAFF39
|
||||||
|
:100E8000EF9E4E7546C1E9FF47C1EAFFEF9E586BE2
|
||||||
|
:100E9000596B5A6B5D6B5E6B5F6B92D8000EE66EA2
|
||||||
|
:100EA000E66AE66EE66A030EE66EE66A9DEC0DF013
|
||||||
|
:100EB0000B6E060EE15E0B50E5EF03F0020E010132
|
||||||
|
:100EC000555D02E145DD1ED0556B68511AE146C102
|
||||||
|
:100ED000E9FF47C1EAFFEE52080EEF6E46C1E9FF97
|
||||||
|
:100EE00047C1EAFF020EE926000EEA22300EEE6E3E
|
||||||
|
:100EF000020EED6E46C1E9FF47C1EAFF8C0EEF6EB0
|
||||||
|
:100F000001D0686B1200D9CFE6FFE1CFD9FFE652DE
|
||||||
|
:100F10004EC1E9FF4FC1EAFFEF50400B01E0010E67
|
||||||
|
:100F2000DF6E01014E75080E405D0CE132C25CFFC0
|
||||||
|
:100F30000F015C5104E00101100E406F03D001016C
|
||||||
|
:100F4000040E406F550528E14EC1E9FF4FC1EAFF8D
|
||||||
|
:100F5000020EE926000EEA22380EEE6E020EED6E4B
|
||||||
|
:100F600095DC020E0101545D07E14EC1E9FF4FC15E
|
||||||
|
:100F7000EAFF840EEF6E0FD0DF5007E14EC1E9FFAC
|
||||||
|
:100F80004FC1EAFFC80EEF6E06D04EC1E9FF4FC158
|
||||||
|
:100F9000EAFF880EEF6E0FD05DAF0CD0605161118B
|
||||||
|
:100FA00007E005D061C1FAFF01016051F96EFADF77
|
||||||
|
:100FB00001015D9F556BE552E552E7CFD9FF120065
|
||||||
|
:100FC00002013051600BE842E842E842E842E84260
|
||||||
|
:100FD000000901E058D031510C0A54E00B0A43E0FB
|
||||||
|
:100FE0000C0A35E0010A26E00B0A22E0020A20E0A2
|
||||||
|
:100FF000030A1CE0080A10E0010A0CE00F0A08E0EE
|
||||||
|
:10100000030A01E03FD00101588F080E406F3BD02A
|
||||||
|
:10101000B2DD39D03DDD37D00101410E566F010EF2
|
||||||
|
:10102000576F5881010E596F588F2DD004DE2BD089
|
||||||
|
:101030002BD829D034510101566F576B420E5627D9
|
||||||
|
:10104000010E57235881010E596F588F1CD0010192
|
||||||
|
:10105000588F02013451EA6A420FE96E010EEA220A
|
||||||
|
:1010600032C2EFFF10D0000EE66EE66AE66EE66A68
|
||||||
|
:10107000020EE66EE66A9DEC0DF00B6E060EE15E6A
|
||||||
|
:101080000B5001D000D01200D9CFE6FFE1CFD9FF3D
|
||||||
|
:10109000050EE1260201320510E130511F0B000957
|
||||||
|
:1010A0000CE10101588F030E0201315D04E10101E1
|
||||||
|
:1010B000010E646F02D00101646B0201325101E044
|
||||||
|
:1010C00020D130511F0B020801E01BD134510F0B0E
|
||||||
|
:1010D000000901E116D134510F0B020801E211D1D0
|
||||||
|
:1010E000200E0101405D01E00CD1588F020134BF98
|
||||||
|
:1010F0001AD034510F0BE96EEA6AD890E936EA3615
|
||||||
|
:10110000480EE926010EEA22EECFDEFFEDCFDDFF2D
|
||||||
|
:1011100034510F0BEA6A6C0FE96E010EEA22020EDF
|
||||||
|
:10112000EFCFDBFF19D034510F0BE96EEA6AD8908C
|
||||||
|
:10113000E936EA364E0EE926010EEA22EECFDEFF50
|
||||||
|
:10114000EDCFDDFF34510F0BEA6A690FE96E010E36
|
||||||
|
:10115000EA22020EEFCFDBFFD950020FE96EDACFA1
|
||||||
|
:10116000EAFFEF50010B03E1000EDF9401D0DF84B2
|
||||||
|
:1011700034BF10D034510F0BE96EEA6AD890E936CB
|
||||||
|
:10118000EA36480EE926010EEA22DECFEEFFDDCF79
|
||||||
|
:10119000EDFF0FD034510F0BE96EEA6AD890E936B3
|
||||||
|
:1011A000EA364E0EE926010EEA22DECFEEFFDDCF53
|
||||||
|
:1011B000EDFF030E315D23E1DECFE9FFDDCFEAFF76
|
||||||
|
:1011C000EF50800B13E034BF09D034510F0BEA6AA3
|
||||||
|
:1011D0006C0FE96E010EEA22EF8208D034510F0B3A
|
||||||
|
:1011E000EA6A690FE96E010EEA22EF82840E0B6E45
|
||||||
|
:1011F000DECFE9FFDDCFEAFF0B50EF1282D0DF74C4
|
||||||
|
:10120000DECFE9FFDDCFEAFFEF50800B1BE0DECF42
|
||||||
|
:10121000E9FFDDCFEAFFEF9EDECFE9FFDDCFEAFF9A
|
||||||
|
:10122000EF8C020EE66EE66ADECFE6FFDDCFE6FF6C
|
||||||
|
:10123000050EE66EE66A9DEC0DF00B6E060EE15EA5
|
||||||
|
:101240000B5005D0DECFE9FFDDCFEAFFEF8CDF7476
|
||||||
|
:10125000D950020FE96EDACFEAFFEF50020B07E137
|
||||||
|
:10126000DECFE9FFDDCFEAFFEF50800B2DE002017A
|
||||||
|
:1012700034BF09D034510F0BEA6A6C0FE96E010ECE
|
||||||
|
:10128000EA22EF9208D034510F0BEA6A690FE96E37
|
||||||
|
:10129000010EEA22EF923B0E0B6EDECFE9FFDDCFAF
|
||||||
|
:1012A000EAFF0B50EF16020EE66EE66ADECFE6FFAF
|
||||||
|
:1012B000DDCFE6FF050EE66EE66A9DEC0DF00B6EE7
|
||||||
|
:1012C000060EE15E0B5008D03B0E0B6EDECFE9FF41
|
||||||
|
:1012D000DDCFEAFF0B50EF16020134510F0B0C6A01
|
||||||
|
:1012E000530F0B6E0F0E0C22030E0BC0DBFF040E10
|
||||||
|
:1012F0000CC0DBFF030EDBCFE9FF040EDBCFEAFF00
|
||||||
|
:10130000EF90050EE15C02E2E16AE552E16EE55222
|
||||||
|
:06131000E7CFD9FF120037
|
||||||
|
:0A131600020130511F0B010801E035
|
||||||
|
:101320004AD03051600BE842E842E842E842E842E5
|
||||||
|
:10133000010801E040D0345103E0340501E03BD026
|
||||||
|
:101340003151220A33E0030A26E0010A17E0210A9C
|
||||||
|
:101350000EE0010A01E02FD00101910E566F010E3F
|
||||||
|
:10136000576F080E596F5A6B5881588F24D001015E
|
||||||
|
:10137000910E566F010E576F588F1DD036C25EF119
|
||||||
|
:1013800037C25FF10101800E5B6F020E5C6F606B14
|
||||||
|
:10139000616B5D8F10D00101800E566F020E576F8A
|
||||||
|
:1013A000070E596F5A6BC10E586F05D032C28CF1BF
|
||||||
|
:1013B0000101588F00D012000201806B4B0E816F2B
|
||||||
|
:1013C000826B836B846B856B080E866F0101806B6B
|
||||||
|
:1013D0001A0EE66E010EE66E57EC01F0E552E5528C
|
||||||
|
:1013E0001E0EE66E020EE66E57EC01F0E552E55277
|
||||||
|
:1013F000200EE66E600EE66E020EE66EE66A020EE5
|
||||||
|
:10140000E66E8EEC01F00B6E050EE15E0B50F3CF35
|
||||||
|
:1014100088F1F4CF89F101018A6B8B6B816B12002B
|
||||||
|
:10142000D9CFE6FFE1CFD9FFFD0EDBCF06F0FE0EF0
|
||||||
|
:10143000DBCF07F0050E061801E1075002E0000EB1
|
||||||
|
:1014400031D0FB0EDBCF0BF0FC0EDBCF0CF001013B
|
||||||
|
:1014500088510B1802E189510C1813E1200EE66E39
|
||||||
|
:10146000600EE66E020EE66EE66A020EE66E8EEC28
|
||||||
|
:1014700001F00B6E050EE15E0B50F3CF88F1F4CF57
|
||||||
|
:1014800089F1FB0EDBCF0BF0FC0EDBCF0CF0010182
|
||||||
|
:101490008A510B1802E18B510C1802E1816B866BAB
|
||||||
|
:1014A000010E00D0E552E7CFD9FF1200D9CFE6FFF9
|
||||||
|
:1014B000E1CFD9FF0101806B8851891102E1000E53
|
||||||
|
:1014C00008D088C1E9FF89C1EAFFEF50800B01E035
|
||||||
|
:1014D000010E000945E1FC0EDBCF0BF088C1E9FFEE
|
||||||
|
:1014E00089C1EAFFEE52EF50D8800B5408E288C160
|
||||||
|
:1014F000E9FF89C1EAFFEE52FC0EEFCFDBFF806B04
|
||||||
|
:10150000FC0EDB50805D19E28051EA6A600FE96EE3
|
||||||
|
:10151000020EEA22EF50E66E8051E76EFD0EDBCF41
|
||||||
|
:10152000E9FFFE0EDBCFEAFFE750E926000EEA22D4
|
||||||
|
:10153000E552E750EF6E802BE3D7200EE66E600E8B
|
||||||
|
:10154000E66E020EE66EE66A020EE66E8EEC01F0C4
|
||||||
|
:101550000B6E050EE15E0B50F3CF88F1F4CF89F1ED
|
||||||
|
:101560000101805100D0E552E7CFD9FF1200D9CF59
|
||||||
|
:10157000E6FFE1CFD9FFA094010181510CE1FD0EFE
|
||||||
|
:10158000DBCF82F1FE0EDBCF83F1FC0EDBCF86F1E9
|
||||||
|
:10159000010E876F816FA084E552E7CFD9FF12005B
|
||||||
|
:1015A000D9CFE6FFE1CFD9FF030EE126A0940101D8
|
||||||
|
:1015B000815102E0A0842FD0DF6AFD0EDBCF06F060
|
||||||
|
:1015C000FE0EDBCF07F0DE5206C0DEFF07C0DDFFF8
|
||||||
|
:1015D000DD52DF2ADF500B6E0C6AFF0E0B1801E1A3
|
||||||
|
:1015E0000C5001E10BD0010EDBCFE9FFDB2A020E2C
|
||||||
|
:1015F000DBCFEAFF01E3DB2AEF50EBE1FD0EDBCFAF
|
||||||
|
:1016000082F1FE0EDBCF83F1DFCF86F10101010E07
|
||||||
|
:10161000876F816FA084030EE15C02E2E16AE5520C
|
||||||
|
:10162000E16EE552E7CFD9FF1200D9CFE6FFE1CF57
|
||||||
|
:10163000D9FF030EE126A0940101815102E0A084AC
|
||||||
|
:1016400030D0DF6AFD0EDBCF06F0FE0EDBCF07F0F9
|
||||||
|
:10165000DE5206C0DEFF07C0DDFFDD52DF2ADF50AD
|
||||||
|
:101660000B6E0C6AFF0E0B1801E10C5001E10CD05F
|
||||||
|
:10167000010EDBCFF6FFDB2A020EDBCFF7FF01E323
|
||||||
|
:10168000DB2A0800F550EAE1FD0EDBCF82F1FE0E09
|
||||||
|
:10169000DBCF83F1DFCF86F10101876B010E816F14
|
||||||
|
:1016A000A084030EE15C02E2E16AE552E16EE552DC
|
||||||
|
:1016B000E7CFD9FF1200D9CFE6FFE1CFD9FF020E65
|
||||||
|
:1016C000E126A09401018A518B1102E1000E08D09D
|
||||||
|
:1016D0008AC1E9FF8BC1EAFFEF50800B01E0010EE8
|
||||||
|
:1016E000000902E0A08487D0030E815D01E1816BD7
|
||||||
|
:1016F000815102E1A0847FD0020E815D16E1E66A8D
|
||||||
|
:10170000000EE66EE66A010EE66E020EE66E8EECE6
|
||||||
|
:1017100001F00B6E050EE15E0B50F3CF8AF1F4CFB2
|
||||||
|
:101720008BF10101030E816F65D0810563E1200E0D
|
||||||
|
:101730000B6E0C6A86510B5C000E0C5803E2200EF7
|
||||||
|
:10174000DF6E02D086C1DFFFDF50865D866F400E00
|
||||||
|
:10175000846F020E856F010EDFCFDBFF875117E12B
|
||||||
|
:10176000010EDB5013E082C1F6FF83C1F7FF0800D2
|
||||||
|
:10177000F55084C1E9FF85C1EAFFEF6E842B000EAE
|
||||||
|
:101780008523822B8323010EDB06EAD715D0010EB9
|
||||||
|
:10179000DB5012E082C1E9FF83C1EAFFEF5084C150
|
||||||
|
:1017A000E9FF85C1EAFFEF6E842B000E8523822BB3
|
||||||
|
:1017B0008323010EDB06EBD7865108E1200EDF5CA8
|
||||||
|
:1017C00003E1020E816F02D0030E816FDFCFE6FFCF
|
||||||
|
:1017D000400EE66E020EE66E010EE66E020EE66E3C
|
||||||
|
:1017E0008EEC01F00B6E050EE15E0B50F3CF8AF12B
|
||||||
|
:1017F000F4CF8BF1A084020EE15C02E2E16AE552D3
|
||||||
|
:0A180000E16EE552E7CFD9FF1200B8
|
||||||
|
:06180A00DACFE4FFE2CF9B
|
||||||
|
:10181000DAFFE9CFE4FFEACFE4FFF6CFE4FFF7CF4A
|
||||||
|
:10182000E4FFF5CFE4FFF3CFE4FFF4CFE4FFFACF1A
|
||||||
|
:10183000E4FF00EE00F00B0EE80403E3EECFE4FF5C
|
||||||
|
:10184000FBD700EE0BF0030EE80403E3EECFE4FF5A
|
||||||
|
:10185000FBD7E652A5EC00F0E55200EE0DF0030ECA
|
||||||
|
:10186000E80403E3E5CFEDFFFBD700EE0AF00B0E33
|
||||||
|
:10187000E80403E3E5CFEDFFFBD7E5CFFAFFE5CFC3
|
||||||
|
:10188000F4FFE5CFF3FFE5CFF5FFE5CFF7FFE5CFB9
|
||||||
|
:10189000F6FFE5CFEAFFE5CFE9FFE5CFDAFF11007C
|
||||||
|
:1018A000D8CFE4FFE0CFE4FFE46EDACFE4FFE2CF8D
|
||||||
|
:1018B000DAFFE65200000000E552E5CFDAFFE5501E
|
||||||
|
:1018C000E5CFE0FFE5CFD8FF100073D8010140510C
|
||||||
|
:1018D00002E1DFEC02F0A2D80001A851030A2DE0DA
|
||||||
|
:1018E000010A14E0030A0EE0010A01E02CD0D2D86C
|
||||||
|
:1018F000000907E0D8D80001A76F81880001020E17
|
||||||
|
:10190000A86F21D00001020EA86F1DD08150400B9E
|
||||||
|
:101910000EE08150800B0BE10000946A0000A7C02C
|
||||||
|
:1019200082FF000081980001030EA86F05D081AEF0
|
||||||
|
:1019300003D00001010EA86F06D081BC03D09468CB
|
||||||
|
:101940000001A86B00D00001A85103E00001A80528
|
||||||
|
:101950002EE18150800B24E01F0E0001A05D20E2EB
|
||||||
|
:10196000818A81BEFED7000000000001A051EA6A12
|
||||||
|
:10197000600FE96E000EEA2282CFEFFF3B0E825C21
|
||||||
|
:1019800003E10001010EA46F819A0001A02B000168
|
||||||
|
:10199000A051EA6A600FE96E000EEA22EF6A07D0F2
|
||||||
|
:1019A0001F0E0001A05D03E30001010EA46F93D799
|
||||||
|
:1019B0001200D9CFE6FFE1CFD9FFE652826A816AF1
|
||||||
|
:1019C000806A380E776EF00E786E9468C00E936E53
|
||||||
|
:1019D00092680001A36BA46B7E6A7F6AF26ADF6A79
|
||||||
|
:1019E000DF500B6E0C6A200E0B5C000E0C5809E2E7
|
||||||
|
:1019F000DF50EA6A600FE96E000EEA22EF6ADF2A22
|
||||||
|
:101A0000EFD70001A06BA16BA56BA66BA86B15ECC3
|
||||||
|
:101A100000F0E552E552E7CFD9FF1200200E010198
|
||||||
|
:101A2000E76E4019E8AE02D0E73402D0E750405DDF
|
||||||
|
:101A300003E36450020B01E02CD00001A35113E139
|
||||||
|
:101A4000200EE66E800EE66E000EE66E56EC0AF094
|
||||||
|
:101A5000E552E552E5520001A16FA151000803E2F1
|
||||||
|
:101A6000010EA36FA26B0101815111E10001A4518C
|
||||||
|
:101A70000EE0A0C0E6FF600EE66E000EE66EB7EC6C
|
||||||
|
:101A80000AF0E552E552E5520001A06BA46B5BEC55
|
||||||
|
:101A90000BF012000001A35103E0010E03D002D0AD
|
||||||
|
:101AA000000E00D01200D9CFE6FFE1CFD9FFE652F9
|
||||||
|
:101AB000DF6A0001A3510DE0A251EA6A800FE96ECE
|
||||||
|
:101AC000000EEA22EFCFDFFFA22BA151A25D01E1C0
|
||||||
|
:101AD000A36BDF5000D0E552E552E7CFD9FF1200EB
|
||||||
|
:101AE00012001200120012008BEF09F01200DCEF5E
|
||||||
|
:101AF00009F00101640520E1010165051DE1A094E3
|
||||||
|
:101B0000F0DF64920101656B0001100EAA6F0E0EEA
|
||||||
|
:101B1000AB6FAA07000EAB5BAA51AB11FAE164846C
|
||||||
|
:101B2000080EAA6F070EAB6FAA07000EAB5BAA5197
|
||||||
|
:101B3000AB11FAE16494A0841200D9CFE6FFE1CFA3
|
||||||
|
:101B4000D9FFFD0EDBCF06F0FE0EDBCF07F0050E52
|
||||||
|
:101B5000061801E1075039E0E868061802E17F0E37
|
||||||
|
:101B6000071831E0030E061801E107502AE0020EC3
|
||||||
|
:101B7000061801E1075023E0010E061801E10750A5
|
||||||
|
:101B80001CE0740E061801E1075015E0750E0618EA
|
||||||
|
:101B900001E107500EE0730E061801E1075007E05F
|
||||||
|
:101BA000720E061801E1075001E010D00FD09ADF45
|
||||||
|
:101BB0000DD096DF0BD095DF09D099DF07D096DFE7
|
||||||
|
:101BC00005D092DF03D08FDF01D000D0010E00D00E
|
||||||
|
:081BD000E552E7CFD9FF120036
|
||||||
|
:081BD800280EF66E000EF76EF8
|
||||||
|
:101BE000000EF86E01010900F5507A6F0900F550FA
|
||||||
|
:101BF0007B6F03E17A6701D03DD00900F550756F26
|
||||||
|
:101C00000900F550766F0900F550776F090009005B
|
||||||
|
:101C1000F550E96E0900F550EA6E09000900090067
|
||||||
|
:101C2000F550786F0900F550796F09000900F6CF7B
|
||||||
|
:101C30007CF1F7CF7DF1F8CF7EF175C1F6FF76C16B
|
||||||
|
:101C4000F7FF77C1F8FF0101785302E1795307E00C
|
||||||
|
:101C50000900F550EE6E7807F8E27907F9D77CC1F4
|
||||||
|
:101C6000F6FF7DC1F7FF7EC1F8FF01017A07000E84
|
||||||
|
:061C70007B5BBFD71200F0
|
||||||
|
:0A1C76001201000202000008D80469
|
||||||
|
:101C80000CF800010102000109024300020100C03A
|
||||||
|
:101C900031090400000102020100052400100104C2
|
||||||
|
:101CA0002402020524060001052401000107058124
|
||||||
|
:101CB000030A000109040100020A000000070502EE
|
||||||
|
:101CC000022000000705820220000004030904141A
|
||||||
|
:101CD000035300500052004F0047002000440043CF
|
||||||
|
:101CE0000043001203430041004E005F00550053C3
|
||||||
|
:0D1CF0000042003400881CCB1CCF1CE31CFC
|
||||||
|
:021CFE00FE0ED8
|
||||||
|
:101D0000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACF2E
|
||||||
|
:101D1000F4FFFB0EE35003E1FC0EE35009E0FB0E81
|
||||||
|
:101D2000E30602E2FC0EE306FD0EE350EE6EF1D791
|
||||||
|
:021D300012009F
|
||||||
|
:0E1D3200000EF36E00EE00F0030E01D812005A
|
||||||
|
:101D4000EA6002D0EE6AFCD7F350E9601200EE6A56
|
||||||
|
:021D5000FCD7BE
|
||||||
|
:0E1D520011EE00F021EE00F0F86A0A9CECECB5
|
||||||
|
:0E1D60000DF0B7EC0EF065EC0CF0FBD71200A6
|
||||||
|
:021D6E00120061
|
||||||
|
:020000040030CA
|
||||||
|
:0100000000FF
|
||||||
|
:0100010032CC
|
||||||
|
:0100020001FC
|
||||||
|
:010003001EDE
|
||||||
|
:0100050000FA
|
||||||
|
:010006008178
|
||||||
|
:0100080003F4
|
||||||
|
:01000900C036
|
||||||
|
:01000A0003F2
|
||||||
|
:01000B00E014
|
||||||
|
:01000C0003F0
|
||||||
|
:01000D0040B2
|
||||||
|
:00000001FF
|
||||||
34
Source/USB/picft245.lkr
Normale Datei
34
Source/USB/picft245.lkr
Normale Datei
@ -0,0 +1,34 @@
|
|||||||
|
// $Id: 18f14K50.lkr,v 1.1.4.1 2005/07/25 18:23:28 nairnj Exp $
|
||||||
|
// File: 18f14K50.lkr
|
||||||
|
// Sample linker script for the PIC18F14k50 processor
|
||||||
|
|
||||||
|
LIBPATH .
|
||||||
|
|
||||||
|
FILES c018i.o
|
||||||
|
FILES clib.lib
|
||||||
|
FILES p18f14k50.lib
|
||||||
|
|
||||||
|
// Application
|
||||||
|
CODEPAGE NAME=vectors START=0x0 END=0x27 PROTECTED
|
||||||
|
CODEPAGE NAME=appcode START=0x28 END=0x3FFF
|
||||||
|
|
||||||
|
CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED
|
||||||
|
CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED
|
||||||
|
CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED
|
||||||
|
CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED
|
||||||
|
|
||||||
|
ACCESSBANK NAME=accessram START=0x0 END=0x5F
|
||||||
|
DATABANK NAME=gpr0 START=0x60 END=0xBF
|
||||||
|
DATABANK NAME=stack START=0x100 END=0x17f
|
||||||
|
DATABANK NAME=gpr1 START=0x180 END=0x1F3
|
||||||
|
DATABANK NAME=usb2 START=0x200 END=0x2FF PROTECTED
|
||||||
|
DATABANK NAME=sfr15 START=0xF40 END=0xF5F PROTECTED
|
||||||
|
ACCESSBANK NAME=accesssfr START=0xF60 END=0xFFF PROTECTED
|
||||||
|
|
||||||
|
SECTION NAME=CONFIG ROM=config
|
||||||
|
|
||||||
|
SECTION NAME=usbram2 RAM=usb2
|
||||||
|
SECTION NAME=USB_VARS RAM=usb2
|
||||||
|
|
||||||
|
STACK SIZE=0x40 RAM=stack
|
||||||
|
SECTION NAME=VARS RAM=accessram
|
||||||
966
Source/USB/picft245.map
Normale Datei
966
Source/USB/picft245.map
Normale Datei
@ -0,0 +1,966 @@
|
|||||||
|
MPLINK 5.00, LINKER
|
||||||
|
Linker Map File - Created Sun Mar 22 15:29:10 2015
|
||||||
|
|
||||||
|
Section Info
|
||||||
|
Section Type Address Location Size(Bytes)
|
||||||
|
--------- --------- --------- --------- ---------
|
||||||
|
_entry_scn code 0x000000 program 0x000006
|
||||||
|
high_vector code 0x000008 program 0x000006
|
||||||
|
low_vector code 0x000018 program 0x000006
|
||||||
|
.cinit romdata 0x000028 program 0x000002
|
||||||
|
.code_usb_device.o code 0x00002a program 0x0012ec
|
||||||
|
.code_usb_function_cdc.o code 0x001316 program 0x0004f4
|
||||||
|
.code_picft245.o code 0x00180a program 0x0003ce
|
||||||
|
_cinit_scn code 0x001bd8 program 0x00009e
|
||||||
|
.romdata_usb_descriptors.o romdata 0x001c76 program 0x000087
|
||||||
|
.idata___init.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.romdata___init.o romdata 0x001cfd program 0x000000
|
||||||
|
.romdata_c018i.o romdata 0x001cfd program 0x000000
|
||||||
|
.romdata_picft245.o romdata 0x001cfd program 0x000000
|
||||||
|
.idata_picft245.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.romdata_usb_function_cdc.o romdata 0x001cfd program 0x000000
|
||||||
|
.idata_usb_function_cdc.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.romdata_usb_device.o romdata 0x001cfd program 0x000000
|
||||||
|
.idata_usb_device.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.idata_usb_descriptors.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.idata_c018i.o_i romdata 0x001cfd program 0x000000
|
||||||
|
.code_c018i.o code 0x001cfe program 0x000000
|
||||||
|
.code_usb_descriptors.o code 0x001cfe program 0x000000
|
||||||
|
STRING code 0x001cfe program 0x000034
|
||||||
|
.code code 0x001d32 program 0x000020
|
||||||
|
_startup_scn code 0x001d52 program 0x00001c
|
||||||
|
.code___init.o code 0x001d6e program 0x000002
|
||||||
|
.config_300000_picft245.o romdata 0x300000 program 0x000001
|
||||||
|
.config_300001_picft245.o romdata 0x300001 program 0x000001
|
||||||
|
.config_300002_picft245.o romdata 0x300002 program 0x000001
|
||||||
|
.config_300003_picft245.o romdata 0x300003 program 0x000001
|
||||||
|
.config_300005_picft245.o romdata 0x300005 program 0x000001
|
||||||
|
.config_300006_picft245.o romdata 0x300006 program 0x000001
|
||||||
|
.config_300008_picft245.o romdata 0x300008 program 0x000001
|
||||||
|
.config_300009_picft245.o romdata 0x300009 program 0x000001
|
||||||
|
.config_30000a_picft245.o romdata 0x30000a program 0x000001
|
||||||
|
.config_30000b_picft245.o romdata 0x30000b program 0x000001
|
||||||
|
.config_30000c_picft245.o romdata 0x30000c program 0x000001
|
||||||
|
.config_30000d_picft245.o romdata 0x30000d program 0x000001
|
||||||
|
MATH_DATA udata 0x000000 data 0x00000b
|
||||||
|
.tmpdata udata 0x00000b data 0x000003
|
||||||
|
.udata_picft245.o udata 0x000060 data 0x00004c
|
||||||
|
.stack udata 0x000100 data 0x000040
|
||||||
|
.udata_usb_device.o udata 0x000140 data 0x000035
|
||||||
|
.udata_c018i.o udata 0x000175 data 0x00000a
|
||||||
|
.udata_usb_descriptors.o udata 0x00017f data 0x000000
|
||||||
|
.idata_usb_descriptors.o idata 0x00017f data 0x000000
|
||||||
|
.idata_usb_device.o idata 0x00017f data 0x000000
|
||||||
|
.idata_usb_function_cdc.o idata 0x00017f data 0x000000
|
||||||
|
.idata_c018i.o idata 0x00017f data 0x000000
|
||||||
|
.idata_picft245.o idata 0x00017f data 0x000000
|
||||||
|
.udata___init.o udata 0x00017f data 0x000000
|
||||||
|
.idata___init.o idata 0x00017f data 0x000000
|
||||||
|
.udata_usb_function_cdc.o udata 0x000180 data 0x000019
|
||||||
|
USB_BDT udata 0x000200 data 0x000040
|
||||||
|
usbram2 udata 0x000240 data 0x000051
|
||||||
|
SFR_BANKED0 udata 0x000f53 data 0x00000d
|
||||||
|
SFR_UNBANKED0 udata 0x000f60 data 0x0000a0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Program Memory Usage
|
||||||
|
Start End
|
||||||
|
--------- ---------
|
||||||
|
0x000000 0x000005
|
||||||
|
0x000008 0x00000d
|
||||||
|
0x000018 0x00001d
|
||||||
|
0x000028 0x001cfc
|
||||||
|
0x001cfe 0x001d6f
|
||||||
|
0x300000 0x300003
|
||||||
|
0x300005 0x300006
|
||||||
|
0x300008 0x30000d
|
||||||
|
7525 out of 16664 program addresses used, program memory utilization is 45%
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Symbols - Sorted by Name
|
||||||
|
Name Address Location Storage File
|
||||||
|
--------- --------- --------- --------- ---------
|
||||||
|
CDCInitEP 0x0013b8 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCTxService 0x0016b6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
HIGH_INT_VECT 0x000008 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
InitializeSystem 0x0019b2 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
LOW_INT_VECT 0x000018 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
ProcessIO 0x001a1c program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBCheckOtherReq 0x001ae8 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBErrorHandler 0x001ae6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBInitEP 0x001aee program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBSendResume 0x001af2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBStdSetDscHandler 0x001aec program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBSuspend 0x001ae0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBWakeFromSuspend 0x001ae2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCB_SOF_Handler 0x001ae4 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCDCEventHandler 0x001420 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
USBCancelIO 0x000502 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCheckCDCRequest 0x001316 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
USBCheckStdRequest 0x000fc0 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBConfigureEndpoint 0x000710 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPAllowDataStage 0x000690 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPAllowStatusStage 0x0005ee program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPService 0x000d92 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPServiceComplete 0x0007ca program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfInHandler 0x000f06 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfOutHandler 0x000ebc program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfRxService 0x000950 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfSetupHandler 0x000e5e program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfTxService 0x00088c program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceAttach 0x0005be program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceDetach 0x0005b2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceInit 0x00002a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceTasks 0x00014a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBEnableEndpoint 0x0002ae program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStallEndpoint 0x000422 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStallHandler 0x000d06 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdFeatureReqHandler 0x001088 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdGetDscHandler 0x000b76 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdGetStatusHandler 0x000c36 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdSetCfgHandler 0x000a90 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBSuspend 0x000d3a program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBTransferOnePacket 0x00031c program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBWakeFromSuspend 0x000d64 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USB_CD_Ptr 0x001cf5 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
USB_SD_Ptr 0x001cf7 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
USER_USB_CALLBACK_EVENT_HANDLER 0x001b3a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
_2jContinue 0x001d1e program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
_3jEnd 0x001d28 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
___case_0_lbl00010 0x0018ee program static
|
||||||
|
___case_1_lbl00011 0x001904 program static
|
||||||
|
___case_2_lbl00016 0x00190c program static
|
||||||
|
___case_3_lbl00018 0x00193a program static
|
||||||
|
___else_lbl00015 0x00192e program static
|
||||||
|
___else_lbl00026 0x0019a0 program static
|
||||||
|
___if_lbl00005 0x0018d6 program static
|
||||||
|
___if_lbl00009 0x001902 program static
|
||||||
|
___if_lbl00013 0x001938 program static
|
||||||
|
___if_lbl00014 0x001938 program static
|
||||||
|
___if_lbl00017 0x001944 program static
|
||||||
|
___if_lbl00023 0x001988 program static
|
||||||
|
___if_lbl00024 0x0019ae program static
|
||||||
|
___if_lbl00025 0x0019ae program static
|
||||||
|
___if_lbl00027 0x0019ae program static
|
||||||
|
___return_lbl00000 0x000004 program static
|
||||||
|
___return_lbl00001 0x0018b8 program static
|
||||||
|
___return_lbl00001 0x001d6c program static
|
||||||
|
___return_lbl00002 0x001c74 program static
|
||||||
|
___return_lbl00002 0x00000c program static
|
||||||
|
___return_lbl00003 0x00001c program static
|
||||||
|
___return_lbl00004 0x0019b0 program static
|
||||||
|
___switchexit_lbl00008 0x001946 program static
|
||||||
|
___while_lbl00006 0x0018d6 program static
|
||||||
|
___while_lbl00007 0x0019b0 program static
|
||||||
|
___while_lbl00021 0x001962 program static
|
||||||
|
___while_lbl00022 0x001966 program static
|
||||||
|
__config_0 0x300000 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_1 0x300001 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_10 0x30000c program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_11 0x30000d program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_2 0x300002 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_3 0x300003 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_4 0x300005 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_5 0x300006 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_6 0x300008 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_7 0x300009 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_8 0x30000a program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_9 0x30000b program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__init 0x001d6e program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\__init.c
|
||||||
|
__tmplbl_0 0x001918 program static
|
||||||
|
__tmplbl_1 0x001912 program static
|
||||||
|
__tmplbl_2 0x001952 program static
|
||||||
|
__tmplbl_3 0x00194c program static
|
||||||
|
__tmplbl_4 0x001960 program static
|
||||||
|
__tmplbl_5 0x001958 program static
|
||||||
|
__zero_memory 0x001d32 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
_do_cinit 0x001bd8 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
_entry 0x000000 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
_startup 0x001d52 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
compare_l 0x001d48 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
configDescriptor1 0x001c88 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
copy_loop 0x001c4a program static
|
||||||
|
copy_one_byte 0x001c50 program static
|
||||||
|
device_dsc 0x001c76 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
done 0x001c74 program static
|
||||||
|
done_copying 0x001c5e program static
|
||||||
|
getsUSBUSART 0x0014ac program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
isr_high 0x00180a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
isr_low 0x0018a0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
jEnd 0x001d30 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
jLoop 0x001d12 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
loop 0x001d62 program static
|
||||||
|
loop_h 0x001d40 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
loop_l 0x001d4a program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
main 0x0018ca program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
memset 0x001cfe program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
putUSBUSART 0x00156e program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
putrsUSBUSART 0x00162a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
putsUSBUSART 0x0015a0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
sd000 0x001ccb program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
sd001 0x001ccf program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
sd002 0x001ce3 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
test 0x001bf2 program static
|
||||||
|
usbGetChar 0x001aa6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usbIsDataRdy 0x001a94 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
zero_block 0x001d40 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON0 0x000fc2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON0bits 0x000fc2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON1 0x000fc1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON1bits 0x000fc1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON2 0x000fc0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON2bits 0x000fc0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRES 0x000fc3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRESH 0x000fc4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRESL 0x000fc3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSEL 0x000f7e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELH 0x000f7f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELHbits 0x000f7f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELbits 0x000f7e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCON 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCONbits 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCTL 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCTLbits 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BDT 0x000200 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
BSR 0x000fe0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BaudRateGen 0x00018d data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
BothEP0OutUOWNsSet 0x000168 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
CCP1CON 0x000fbd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCP1CONbits 0x000fbd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1 0x000fbe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1H 0x000fbf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1L 0x000fbe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CDCDataInHandle 0x00018a data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCDataOutHandle 0x000188 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CM1CON0 0x000f6d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM1CON0bits 0x000f6d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON0 0x000f6b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON0bits 0x000f6b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON1 0x000f6c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON1bits 0x000f6c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CtrlTrfData 0x000238 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
DDRA 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRAbits 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRB 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRBbits 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRC 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRCbits 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ECCP1AS 0x000fb6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ECCP1ASbits 0x000fb6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEADR 0x000fa9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEADRbits 0x000fa9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON1 0x000fa6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON1bits 0x000fa6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON2 0x000fa7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEDATA 0x000fa8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0 0x000fe9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0H 0x000fea data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0L 0x000fe9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1 0x000fe1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1H 0x000fe2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1L 0x000fe1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2 0x000fd9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2H 0x000fda data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2L 0x000fd9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF0 0x000fef data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF1 0x000fe7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF2 0x000fdf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON 0x000ff2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON2 0x000ff1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON2bits 0x000ff1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON3 0x000ff0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON3bits 0x000ff0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCONbits 0x000ff2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCA 0x000f79 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCAbits 0x000f79 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCB 0x000f7a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCBbits 0x000f7a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR1 0x000f9f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR1bits 0x000f9f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR2 0x000fa2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR2bits 0x000fa2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATA 0x000f89 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATAbits 0x000f89 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATB 0x000f8a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATBbits 0x000f8a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATC 0x000f8b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATCbits 0x000f8b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LastUSBIn 0x0000a1 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
NextUSBOut 0x0000a0 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
OSCCON 0x000fd3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCON2 0x000fd2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCON2bits 0x000fd2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCONbits 0x000fd3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCTUNE 0x000f9b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCTUNEbits 0x000f9b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PC 0x000ff9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCL 0x000ff9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCLATH 0x000ffa data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCLATU 0x000ffb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE1 0x000f9d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE1bits 0x000f9d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE2 0x000fa0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE2bits 0x000fa0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR1 0x000f9e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR1bits 0x000f9e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR2 0x000fa1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR2bits 0x000fa1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW0 0x000feb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW1 0x000fe3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW2 0x000fdb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTA 0x000f80 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTAbits 0x000f80 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTB 0x000f81 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTBbits 0x000f81 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTC 0x000f82 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTCbits 0x000f82 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC0 0x000fed data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC1 0x000fe5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC2 0x000fdd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC0 0x000fee data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC1 0x000fe6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC2 0x000fde data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PR2 0x000fcb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC0 0x000fec data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC1 0x000fe4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC2 0x000fdc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PROD 0x000ff3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PRODH 0x000ff4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PRODL 0x000ff3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PSTRCON 0x000fb9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PSTRCONbits 0x000fb9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PWM1CON 0x000fb7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PWM1CONbits 0x000fb7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCON 0x000fd0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCONbits 0x000fd0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCREG 0x000fae data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCSTA 0x000fab data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCSTAbits 0x000fab data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON0 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON0bits 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON1 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON1bits 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON2 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON2bits 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RemoteWakeup 0x000164 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
SIGN 0x000009 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
SLRCON 0x000f76 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SLRCONbits 0x000f76 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SPBRG 0x000faf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SPBRGH 0x000fb0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON0 0x000f68 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON0bits 0x000f68 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON1 0x000f69 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON1bits 0x000f69 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPADD 0x000fc8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPBUF 0x000fc9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON1 0x000fc6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON1bits 0x000fc6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON2 0x000fc5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON2bits 0x000fc5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPMSK 0x000f6f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPMSKbits 0x000f6f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPSTAT 0x000fc7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPSTATbits 0x000fc7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STATUS 0x000fd8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STATUSbits 0x000fd8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STKPTR 0x000ffc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STKPTRbits 0x000ffc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SetupPkt 0x000230 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
T0CON 0x000fd5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T0CONbits 0x000fd5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T1CON 0x000fcd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T1CONbits 0x000fcd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T2CON 0x000fca data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T2CONbits 0x000fca data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T3CON 0x000fb1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T3CONbits 0x000fb1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TABLAT 0x000ff5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTR 0x000ff6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRH 0x000ff7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRL 0x000ff6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRU 0x000ff8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR0H 0x000fd7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR0L 0x000fd6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR1H 0x000fcf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR1L 0x000fce data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR2 0x000fcc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR3H 0x000fb3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR3L 0x000fb2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOS 0x000ffd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSH 0x000ffe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSL 0x000ffd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSU 0x000fff data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISA 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISAbits 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISB 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISBbits 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISC 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISCbits 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXREG 0x000fad data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXSTA 0x000fac data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXSTAbits 0x000fac data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UADDR 0x000f5c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UADDRbits 0x000f5c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCFG 0x000f61 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCFGbits 0x000f61 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCON 0x000f64 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCONbits 0x000f64 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIE 0x000f5b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIEbits 0x000f5b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIR 0x000f5f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIRbits 0x000f5f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP0 0x000f53 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP0bits 0x000f53 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP1 0x000f54 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP1bits 0x000f54 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP2 0x000f55 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP2bits 0x000f55 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP3 0x000f56 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP3bits 0x000f56 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP4 0x000f57 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP4bits 0x000f57 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP5 0x000f58 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP5bits 0x000f58 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP6 0x000f59 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP6bits 0x000f59 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP7 0x000f5a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP7bits 0x000f5a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMH 0x000f5e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMHbits 0x000f5e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRML 0x000f5d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMLbits 0x000f5d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIE 0x000f60 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIEbits 0x000f60 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIR 0x000f62 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIRbits 0x000f62 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
USBActiveConfiguration 0x000141 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBAlternateInterface 0x000142 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBBusIsSuspended 0x000165 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferINDataStagePackets 0x000173 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferOUTDataStagePackets 0x000174 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferStatusStagePacket 0x000170 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceState 0x000140 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageEnabledFlag1 0x000171 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageEnabledFlag2 0x000172 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageTimeoutCounter 0x00016f data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USB_In_Buffer 0x000080 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_In_Data_Rdy 0x0000a3 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_Out_Buffer 0x000060 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_Out_Data_Rdy 0x0000a4 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBcp 0x0000a2 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USTAT 0x000f63 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
USTATbits 0x000f63 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
USTATcopy 0x000166 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
VREFCON0 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON0bits 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON1 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON1bits 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON2 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON2bits 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
W 0x000fe8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WDTCON 0x000fd1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WDTCONbits 0x000fd1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUA 0x000f77 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUAbits 0x000f77 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUB 0x000f78 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUBbits 0x000f78 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WREG 0x000fe8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
__AARGB0 0x000007 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB1 0x000006 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB2 0x000005 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB3 0x000004 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB4 0x000003 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB5 0x000002 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB6 0x000001 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB7 0x000000 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AEXP 0x000008 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__FPFLAGS 0x00000a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
__FPFLAGSbits 0x00000a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
__REMB0 0x000003 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB1 0x000002 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB2 0x000001 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB3 0x000000 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
can_in 0x0000a9 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
cdc_data_rx 0x000260 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_data_tx 0x000240 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_mem_type 0x000187 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_notice 0x000287 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_rx_len 0x000180 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_trf_state 0x000181 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_tx_len 0x000186 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
controlTransferState 0x000155 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
control_signal_bitmap 0x00018c data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
curr_byte 0x000178 data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
curr_entry 0x00017a data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
data_ptr 0x00017c data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
delay_count 0x0000aa data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
dummy_encapsulated_cmd_response 0x000191 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
endpoint_number 0x000167 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
ep_data_in 0x000169 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
ep_data_out 0x00016c data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
inPipes 0x000156 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
lastTransmission 0x0000a5 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
line_coding 0x000280 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
outPipes 0x00015b data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryEP0OutCurrent 0x000144 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryEP0OutNext 0x000146 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryIn 0x00014e data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryOut 0x000148 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pCDCDst 0x000184 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
pCDCSrc 0x000182 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
pDst 0x000162 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
prom 0x000175 data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
shortPacketStatus 0x000154 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
usb_in 0x0000a7 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usb_in_state 0x0000a8 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Symbols - Sorted by Address
|
||||||
|
Name Address Location Storage File
|
||||||
|
--------- --------- --------- --------- ---------
|
||||||
|
_entry 0x000000 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
___return_lbl00000 0x000004 program static
|
||||||
|
HIGH_INT_VECT 0x000008 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
___return_lbl00002 0x00000c program static
|
||||||
|
LOW_INT_VECT 0x000018 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
___return_lbl00003 0x00001c program static
|
||||||
|
USBDeviceInit 0x00002a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceTasks 0x00014a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBEnableEndpoint 0x0002ae program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBTransferOnePacket 0x00031c program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStallEndpoint 0x000422 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCancelIO 0x000502 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceDetach 0x0005b2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeviceAttach 0x0005be program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPAllowStatusStage 0x0005ee program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPAllowDataStage 0x000690 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBConfigureEndpoint 0x000710 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPServiceComplete 0x0007ca program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfTxService 0x00088c program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfRxService 0x000950 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdSetCfgHandler 0x000a90 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdGetDscHandler 0x000b76 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdGetStatusHandler 0x000c36 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStallHandler 0x000d06 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBSuspend 0x000d3a program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBWakeFromSuspend 0x000d64 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlEPService 0x000d92 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfSetupHandler 0x000e5e program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfOutHandler 0x000ebc program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCtrlTrfInHandler 0x000f06 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCheckStdRequest 0x000fc0 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStdFeatureReqHandler 0x001088 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBCheckCDCRequest 0x001316 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCInitEP 0x0013b8 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
USBCDCEventHandler 0x001420 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
getsUSBUSART 0x0014ac program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
putUSBUSART 0x00156e program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
putsUSBUSART 0x0015a0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
putrsUSBUSART 0x00162a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCTxService 0x0016b6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
isr_high 0x00180a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
isr_low 0x0018a0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
___return_lbl00001 0x0018b8 program static
|
||||||
|
main 0x0018ca program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
___while_lbl00006 0x0018d6 program static
|
||||||
|
___if_lbl00005 0x0018d6 program static
|
||||||
|
___case_0_lbl00010 0x0018ee program static
|
||||||
|
___if_lbl00009 0x001902 program static
|
||||||
|
___case_1_lbl00011 0x001904 program static
|
||||||
|
___case_2_lbl00016 0x00190c program static
|
||||||
|
__tmplbl_1 0x001912 program static
|
||||||
|
__tmplbl_0 0x001918 program static
|
||||||
|
___else_lbl00015 0x00192e program static
|
||||||
|
___if_lbl00013 0x001938 program static
|
||||||
|
___if_lbl00014 0x001938 program static
|
||||||
|
___case_3_lbl00018 0x00193a program static
|
||||||
|
___if_lbl00017 0x001944 program static
|
||||||
|
___switchexit_lbl00008 0x001946 program static
|
||||||
|
__tmplbl_3 0x00194c program static
|
||||||
|
__tmplbl_2 0x001952 program static
|
||||||
|
__tmplbl_5 0x001958 program static
|
||||||
|
__tmplbl_4 0x001960 program static
|
||||||
|
___while_lbl00021 0x001962 program static
|
||||||
|
___while_lbl00022 0x001966 program static
|
||||||
|
___if_lbl00023 0x001988 program static
|
||||||
|
___else_lbl00026 0x0019a0 program static
|
||||||
|
___if_lbl00027 0x0019ae program static
|
||||||
|
___if_lbl00025 0x0019ae program static
|
||||||
|
___if_lbl00024 0x0019ae program static
|
||||||
|
___return_lbl00004 0x0019b0 program static
|
||||||
|
___while_lbl00007 0x0019b0 program static
|
||||||
|
InitializeSystem 0x0019b2 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
ProcessIO 0x001a1c program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usbIsDataRdy 0x001a94 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usbGetChar 0x001aa6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBSuspend 0x001ae0 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBWakeFromSuspend 0x001ae2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCB_SOF_Handler 0x001ae4 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBErrorHandler 0x001ae6 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBCheckOtherReq 0x001ae8 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBStdSetDscHandler 0x001aec program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBInitEP 0x001aee program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBCBSendResume 0x001af2 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USER_USB_CALLBACK_EVENT_HANDLER 0x001b3a program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
_do_cinit 0x001bd8 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
test 0x001bf2 program static
|
||||||
|
copy_loop 0x001c4a program static
|
||||||
|
copy_one_byte 0x001c50 program static
|
||||||
|
done_copying 0x001c5e program static
|
||||||
|
done 0x001c74 program static
|
||||||
|
___return_lbl00002 0x001c74 program static
|
||||||
|
device_dsc 0x001c76 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
configDescriptor1 0x001c88 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
sd000 0x001ccb program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
sd001 0x001ccf program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
sd002 0x001ce3 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
USB_CD_Ptr 0x001cf5 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
USB_SD_Ptr 0x001cf7 program extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\usb_descriptors.c
|
||||||
|
memset 0x001cfe program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
jLoop 0x001d12 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
_2jContinue 0x001d1e program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
_3jEnd 0x001d28 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
jEnd 0x001d30 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\memset.asm
|
||||||
|
__zero_memory 0x001d32 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
zero_block 0x001d40 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
loop_h 0x001d40 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
compare_l 0x001d48 program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
loop_l 0x001d4a program static E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
_startup 0x001d52 program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
loop 0x001d62 program static
|
||||||
|
___return_lbl00001 0x001d6c program static
|
||||||
|
__init 0x001d6e program extern E:\3.46\pic18-lt\cxx-framework\src\traditional\stdclib\__init.c
|
||||||
|
__config_0 0x300000 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_1 0x300001 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_2 0x300002 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_3 0x300003 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_4 0x300005 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_5 0x300006 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_6 0x300008 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_7 0x300009 program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_8 0x30000a program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_9 0x30000b program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_10 0x30000c program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__config_11 0x30000d program static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__AARGB7 0x000000 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB3 0x000000 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB6 0x000001 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB2 0x000001 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB1 0x000002 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB5 0x000002 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__REMB0 0x000003 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB4 0x000003 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB3 0x000004 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB2 0x000005 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB1 0x000006 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AARGB0 0x000007 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
__AEXP 0x000008 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\aarg.asm
|
||||||
|
SIGN 0x000009 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
__FPFLAGS 0x00000a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
__FPFLAGSbits 0x00000a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\math\cmath18.asm
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
__tmp_0 0x00000b data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USB_Out_Buffer 0x000060 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_In_Buffer 0x000080 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
NextUSBOut 0x0000a0 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
LastUSBIn 0x0000a1 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBcp 0x0000a2 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_In_Data_Rdy 0x0000a3 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USB_Out_Data_Rdy 0x0000a4 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
lastTransmission 0x0000a5 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usb_in 0x0000a7 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
usb_in_state 0x0000a8 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
can_in 0x0000a9 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
delay_count 0x0000aa data static D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.c
|
||||||
|
USBDeviceState 0x000140 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBActiveConfiguration 0x000141 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBAlternateInterface 0x000142 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryEP0OutCurrent 0x000144 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryEP0OutNext 0x000146 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryOut 0x000148 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pBDTEntryIn 0x00014e data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
shortPacketStatus 0x000154 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
controlTransferState 0x000155 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
inPipes 0x000156 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
outPipes 0x00015b data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
pDst 0x000162 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
RemoteWakeup 0x000164 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBBusIsSuspended 0x000165 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USTATcopy 0x000166 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
endpoint_number 0x000167 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
BothEP0OutUOWNsSet 0x000168 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
ep_data_in 0x000169 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
ep_data_out 0x00016c data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageTimeoutCounter 0x00016f data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferStatusStagePacket 0x000170 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageEnabledFlag1 0x000171 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBStatusStageEnabledFlag2 0x000172 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferINDataStagePackets 0x000173 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
USBDeferOUTDataStagePackets 0x000174 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
prom 0x000175 data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
curr_byte 0x000178 data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
curr_entry 0x00017a data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
data_ptr 0x00017c data static E:\3.46\pic18-lt\cxx-framework\src\traditional\startup\c018i.c
|
||||||
|
cdc_rx_len 0x000180 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_trf_state 0x000181 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
pCDCSrc 0x000182 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
pCDCDst 0x000184 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_tx_len 0x000186 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_mem_type 0x000187 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCDataOutHandle 0x000188 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
CDCDataInHandle 0x00018a data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
control_signal_bitmap 0x00018c data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
BaudRateGen 0x00018d data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
dummy_encapsulated_cmd_response 0x000191 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
BDT 0x000200 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
SetupPkt 0x000230 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
CtrlTrfData 0x000238 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\usb_device.c
|
||||||
|
cdc_data_tx 0x000240 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_data_rx 0x000260 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
line_coding 0x000280 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
cdc_notice 0x000287 data extern D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
UEP0bits 0x000f53 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP0 0x000f53 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP1 0x000f54 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP1bits 0x000f54 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP2 0x000f55 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP2bits 0x000f55 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP3 0x000f56 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP3bits 0x000f56 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP4 0x000f57 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP4bits 0x000f57 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP5 0x000f58 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP5bits 0x000f58 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP6bits 0x000f59 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP6 0x000f59 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP7bits 0x000f5a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEP7 0x000f5a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIE 0x000f5b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIEbits 0x000f5b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UADDR 0x000f5c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UADDRbits 0x000f5c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMLbits 0x000f5d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRML 0x000f5d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMHbits 0x000f5e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UFRMH 0x000f5e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIRbits 0x000f5f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UEIR 0x000f5f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIE 0x000f60 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIEbits 0x000f60 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCFGbits 0x000f61 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCFG 0x000f61 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIRbits 0x000f62 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UIR 0x000f62 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
USTAT 0x000f63 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
USTATbits 0x000f63 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCON 0x000f64 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
UCONbits 0x000f64 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON0bits 0x000f68 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON0 0x000f68 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON1bits 0x000f69 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SRCON1 0x000f69 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON0bits 0x000f6b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON0 0x000f6b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON1bits 0x000f6c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM2CON1 0x000f6c data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM1CON0 0x000f6d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CM1CON0bits 0x000f6d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPMSKbits 0x000f6f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPMSK 0x000f6f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SLRCONbits 0x000f76 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SLRCON 0x000f76 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUA 0x000f77 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUAbits 0x000f77 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUB 0x000f78 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WPUBbits 0x000f78 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCA 0x000f79 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCAbits 0x000f79 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCB 0x000f7a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IOCBbits 0x000f7a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSEL 0x000f7e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELbits 0x000f7e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELH 0x000f7f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ANSELHbits 0x000f7f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTA 0x000f80 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTAbits 0x000f80 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTB 0x000f81 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTBbits 0x000f81 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTC 0x000f82 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PORTCbits 0x000f82 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATAbits 0x000f89 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATA 0x000f89 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATB 0x000f8a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATBbits 0x000f8a data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATCbits 0x000f8b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
LATC 0x000f8b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISA 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISAbits 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRAbits 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRA 0x000f92 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISBbits 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISB 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRB 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRBbits 0x000f93 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISC 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRCbits 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
DDRC 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TRISCbits 0x000f94 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCTUNEbits 0x000f9b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCTUNE 0x000f9b data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE1bits 0x000f9d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE1 0x000f9d data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR1bits 0x000f9e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR1 0x000f9e data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR1bits 0x000f9f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR1 0x000f9f data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE2bits 0x000fa0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIE2 0x000fa0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR2bits 0x000fa1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PIR2 0x000fa1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR2 0x000fa2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
IPR2bits 0x000fa2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON1bits 0x000fa6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON1 0x000fa6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EECON2 0x000fa7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEDATA 0x000fa8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEADR 0x000fa9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
EEADRbits 0x000fa9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCSTA 0x000fab data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCSTAbits 0x000fab data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXSTA 0x000fac data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXSTAbits 0x000fac data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TXREG 0x000fad data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCREG 0x000fae data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SPBRG 0x000faf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SPBRGH 0x000fb0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T3CONbits 0x000fb1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T3CON 0x000fb1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR3L 0x000fb2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR3H 0x000fb3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ECCP1AS 0x000fb6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ECCP1ASbits 0x000fb6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PWM1CON 0x000fb7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PWM1CONbits 0x000fb7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCON 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCONbits 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCTL 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BAUDCTLbits 0x000fb8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PSTRCON 0x000fb9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PSTRCONbits 0x000fb9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON0bits 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON0 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON0 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON0bits 0x000fba data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON1bits 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON1 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON1 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON1bits 0x000fbb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON2bits 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
REFCON2 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON2bits 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
VREFCON2 0x000fbc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCP1CON 0x000fbd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCP1CONbits 0x000fbd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1 0x000fbe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1L 0x000fbe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
CCPR1H 0x000fbf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON2bits 0x000fc0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON2 0x000fc0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON1bits 0x000fc1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON1 0x000fc1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON0 0x000fc2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADCON0bits 0x000fc2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRES 0x000fc3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRESL 0x000fc3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
ADRESH 0x000fc4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON2bits 0x000fc5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON2 0x000fc5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON1bits 0x000fc6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPCON1 0x000fc6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPSTATbits 0x000fc7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPSTAT 0x000fc7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPADD 0x000fc8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
SSPBUF 0x000fc9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T2CONbits 0x000fca data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T2CON 0x000fca data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PR2 0x000fcb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR2 0x000fcc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T1CONbits 0x000fcd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T1CON 0x000fcd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR1L 0x000fce data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR1H 0x000fcf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCONbits 0x000fd0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
RCON 0x000fd0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WDTCONbits 0x000fd1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WDTCON 0x000fd1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCON2bits 0x000fd2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCON2 0x000fd2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCONbits 0x000fd3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
OSCCON 0x000fd3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T0CON 0x000fd5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
T0CONbits 0x000fd5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR0L 0x000fd6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TMR0H 0x000fd7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STATUS 0x000fd8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STATUSbits 0x000fd8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2L 0x000fd9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2 0x000fd9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR2H 0x000fda data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW2 0x000fdb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC2 0x000fdc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC2 0x000fdd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC2 0x000fde data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF2 0x000fdf data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
BSR 0x000fe0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1L 0x000fe1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1 0x000fe1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR1H 0x000fe2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW1 0x000fe3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC1 0x000fe4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC1 0x000fe5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC1 0x000fe6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF1 0x000fe7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
W 0x000fe8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
WREG 0x000fe8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0L 0x000fe9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0 0x000fe9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
FSR0H 0x000fea data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PLUSW0 0x000feb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PREINC0 0x000fec data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTDEC0 0x000fed data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
POSTINC0 0x000fee data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INDF0 0x000fef data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON3bits 0x000ff0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON3 0x000ff0 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON2bits 0x000ff1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON2 0x000ff1 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCONbits 0x000ff2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
INTCON 0x000ff2 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PRODL 0x000ff3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PROD 0x000ff3 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PRODH 0x000ff4 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TABLAT 0x000ff5 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTR 0x000ff6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRL 0x000ff6 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRH 0x000ff7 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TBLPTRU 0x000ff8 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCL 0x000ff9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PC 0x000ff9 data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCLATH 0x000ffa data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
PCLATU 0x000ffb data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STKPTRbits 0x000ffc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
STKPTR 0x000ffc data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOS 0x000ffd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSL 0x000ffd data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSH 0x000ffe data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
TOSU 0x000fff data extern E:\3.46\pic18-lt\cxx-framework\src\traditional\proc\p18f14k50.asm
|
||||||
|
|
||||||
|
|
||||||
74
Source/USB/picft245.mcp
Normale Datei
74
Source/USB/picft245.mcp
Normale Datei
@ -0,0 +1,74 @@
|
|||||||
|
[HEADER]
|
||||||
|
magic_cookie={66E99B07-E706-4689-9E80-9B2582898A13}
|
||||||
|
file_version=1.0
|
||||||
|
device=PIC18F14K50
|
||||||
|
[PATH_INFO]
|
||||||
|
BuildDirPolicy=BuildDirIsProjectDir
|
||||||
|
dir_src=
|
||||||
|
dir_bin=
|
||||||
|
dir_tmp=tmp
|
||||||
|
dir_sin=
|
||||||
|
dir_inc=USB2.9i_cdc\include;C\MCC18\h
|
||||||
|
dir_lib=C:\MCC18\lib
|
||||||
|
dir_lkr=
|
||||||
|
[CAT_FILTERS]
|
||||||
|
filter_src=*.asm;*.c
|
||||||
|
filter_inc=*.h;*.inc
|
||||||
|
filter_obj=*.o
|
||||||
|
filter_lib=*.lib
|
||||||
|
filter_lkr=*.lkr
|
||||||
|
[CAT_SUBFOLDERS]
|
||||||
|
subfolder_src=USB
|
||||||
|
subfolder_inc=
|
||||||
|
subfolder_obj=
|
||||||
|
subfolder_lib=
|
||||||
|
subfolder_lkr=
|
||||||
|
[FILE_SUBFOLDERS]
|
||||||
|
file_000=.
|
||||||
|
file_001=USB
|
||||||
|
file_002=USB
|
||||||
|
file_003=.
|
||||||
|
file_004=.
|
||||||
|
file_005=.
|
||||||
|
file_006=.
|
||||||
|
[GENERATED_FILES]
|
||||||
|
file_000=no
|
||||||
|
file_001=no
|
||||||
|
file_002=no
|
||||||
|
file_003=no
|
||||||
|
file_004=no
|
||||||
|
file_005=no
|
||||||
|
file_006=no
|
||||||
|
[OTHER_FILES]
|
||||||
|
file_000=no
|
||||||
|
file_001=no
|
||||||
|
file_002=no
|
||||||
|
file_003=no
|
||||||
|
file_004=no
|
||||||
|
file_005=no
|
||||||
|
file_006=no
|
||||||
|
[FILE_INFO]
|
||||||
|
file_000=usb_descriptors.c
|
||||||
|
file_001=USB2.9i_cdc\USB\usb_device.c
|
||||||
|
file_002=USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
file_003=picft245.c
|
||||||
|
file_004=HardwareProfile.h
|
||||||
|
file_005=usb_config.h
|
||||||
|
file_006=picft245.lkr
|
||||||
|
[SUITE_INFO]
|
||||||
|
suite_guid={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
suite_state=
|
||||||
|
[TOOL_SETTINGS]
|
||||||
|
TS{DD2213A8-6310-47B1-8376-9430CDFC013F}=
|
||||||
|
TS{BFD27FBA-4A02-4C0E-A5E5-B812F3E7707C}=/o"$(BINDIR_)$(TARGETBASE).cof" /M"$(BINDIR_)$(TARGETBASE).map" /W
|
||||||
|
TS{C2AF05E7-1416-4625-923D-E114DB6E2B96}=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
|
||||||
|
TS{ADE93A55-C7C7-4D4D-A4BA-59305F7D0391}=
|
||||||
|
[INSTRUMENTED_TRACE]
|
||||||
|
enable=0
|
||||||
|
transport=0
|
||||||
|
format=0
|
||||||
|
[CUSTOM_BUILD]
|
||||||
|
Pre-Build=
|
||||||
|
Pre-BuildEnabled=1
|
||||||
|
Post-Build=
|
||||||
|
Post-BuildEnabled=1
|
||||||
84
Source/USB/picft245.mcs
Normale Datei
84
Source/USB/picft245.mcs
Normale Datei
@ -0,0 +1,84 @@
|
|||||||
|
[Header]
|
||||||
|
MagicCookie={0b13fe8c-dfe0-40eb-8900-6712719559a7}
|
||||||
|
Version=1.0
|
||||||
|
[File000]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\tmp\usb_descriptors.o
|
||||||
|
Folder=Intermediary
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={E56A1C86-9D32-4DF6-8C34-FE0388B1B644}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mcc18.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[File001]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\tmp\usb_device.o
|
||||||
|
Folder=Intermediary
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={E56A1C86-9D32-4DF6-8C34-FE0388B1B644}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mcc18.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[File002]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\tmp\usb_function_cdc.o
|
||||||
|
Folder=Intermediary
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={E56A1C86-9D32-4DF6-8C34-FE0388B1B644}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mcc18.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[File003]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\tmp\picft245.o
|
||||||
|
Folder=Intermediary
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={E56A1C86-9D32-4DF6-8C34-FE0388B1B644}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mcc18.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[File004]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.cof
|
||||||
|
Folder=Output
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={96C98149-AA1B-4CF9-B967-FAE79CAB663C}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mplink.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=/o"$(BINDIR_)$(TARGETBASE).cof" /M"$(BINDIR_)$(TARGETBASE).map" /W
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[File005]
|
||||||
|
Location=D:\Projects\CBUS_MERG\mplab\cbus\can_usb4\picft245\picft245.hex
|
||||||
|
Folder=Output
|
||||||
|
DeviceName=PIC18F14K50
|
||||||
|
LanguageToolSuiteID={5B7D72DD-9861-47BD-9F60-2BE967BF8416}
|
||||||
|
LanguageToolID={96C98149-AA1B-4CF9-B967-FAE79CAB663C}
|
||||||
|
LanguageToolLocation=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mplink.exe
|
||||||
|
PPAD=$(BINDIR)||$(TMPDIR)|tmp||$(AINDIR)||$(INCDIR)|USB2.9i_cdc\include;C\MCC18\h||$(LIBDIR)|C:\MCC18\lib||$(LKRDIR)||
|
||||||
|
SOLK=<src>|usb_descriptors.c|USB2.9i_cdc\USB\usb_device.c|USB2.9i_cdc\USB\CDC Device Driver\usb_function_cdc.c|picft245.c||<obj>||<lib>||<lkr>|picft245.lkr||
|
||||||
|
SuiteArgsString=
|
||||||
|
ToolArgsString=/o"$(BINDIR_)$(TARGETBASE).cof" /M"$(BINDIR_)$(TARGETBASE).map" /W
|
||||||
|
TraceCmdString=
|
||||||
|
DebugOptions=
|
||||||
|
[TOOL_LOC_STAMPS]
|
||||||
|
tool_loc{96C98149-AA1B-4CF9-B967-FAE79CAB663C}=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mplink.exe
|
||||||
|
tool_loc{E56A1C86-9D32-4DF6-8C34-FE0388B1B644}=C:\Program Files (x86)\Microchip\mplabc18\v3.47\bin\mcc18.exe
|
||||||
BIN
Source/USB/picft245.mcw
Normale Datei
BIN
Source/USB/picft245.mcw
Normale Datei
Binäre Datei nicht angezeigt.
252
Source/USB/picft245.mptags
Normale Datei
252
Source/USB/picft245.mptags
Normale Datei
@ -0,0 +1,252 @@
|
|||||||
|
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
||||||
|
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
||||||
|
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
||||||
|
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
||||||
|
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
||||||
|
!_TAG_PROGRAM_VERSION 5.5.4 //
|
||||||
|
!_TAG_REVISION_NAME MCHPTags //
|
||||||
|
!_TAG_REVISION_VERSION 6.0.1 //
|
||||||
|
BDT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 319;" v line:319
|
||||||
|
BDT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 321;" v line:321
|
||||||
|
BDT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 323;" v line:323
|
||||||
|
BDT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 325;" v line:325
|
||||||
|
BaudRateGen E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 149;" v line:149
|
||||||
|
BothEP0OutUOWNsSet E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 290;" v line:290
|
||||||
|
CDAV::RB7 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 44;" d line:44
|
||||||
|
CDCDataInHandle E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 145;" v line:145
|
||||||
|
CDCDataOutHandle E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 144;" v line:144
|
||||||
|
CDCInitEP E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 350;" f line:350 signature:(void)
|
||||||
|
CDCNotificationHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 422;" f line:422 signature:(void)
|
||||||
|
CDCNotificationHandler::{} E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 453;" d line:453 file:
|
||||||
|
CDCNotificationInHandle E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 156;" v line:156
|
||||||
|
CDCTxService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 892;" f line:892 signature:(void)
|
||||||
|
CDC_COMM_EP::2 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 73;" d line:73
|
||||||
|
CDC_COMM_INTF_ID::0x0 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 72;" d line:72
|
||||||
|
CDC_COMM_IN_EP_SIZE::8 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 74;" d line:74
|
||||||
|
CDC_DATA_EP::3 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 77;" d line:77
|
||||||
|
CDC_DATA_INTF_ID::0x01 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 76;" d line:76
|
||||||
|
CDC_DATA_IN_EP_SIZE::32 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 79;" d line:79
|
||||||
|
CDC_DATA_OUT_EP_SIZE::32 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 78;" d line:78
|
||||||
|
CLOCK_FREQ::48000000 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 94;" d line:94
|
||||||
|
CREQ::RB5 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 42;" d line:42
|
||||||
|
C_IDLE::0 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 106;" d line:106 file:
|
||||||
|
C_WAIT::1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 107;" d line:107 file:
|
||||||
|
CtrlTrfData E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 334;" v line:334
|
||||||
|
DATA_PORT::PORTC E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 31;" d line:31
|
||||||
|
DATA_PORTbits::PORTCbits E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 32;" d line:32
|
||||||
|
GetSystemClock::CLOCK_FREQ E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 95;" d line:95
|
||||||
|
HARDWARE_PROFILE_H E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 10;" d line:10
|
||||||
|
HIGH_INT_VECT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 147;" f line:147 signature:(void)
|
||||||
|
InitializeSystem E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 109;" p line:109 file: signature:(void)
|
||||||
|
LastUSBIn E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 93;" v line:93
|
||||||
|
NextUSBOut E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 91;" v line:91
|
||||||
|
NextUSBOut E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 92;" v line:92
|
||||||
|
OldSerialStateBitmap E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 155;" v line:155
|
||||||
|
PORTA_DDR::0xFF E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 60;" d line:60
|
||||||
|
PORTA_INIT::0x00 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 61;" d line:61
|
||||||
|
PORTB_DDR::0b11000000 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 47;" d line:47
|
||||||
|
PORTB_INIT::0b00000000 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 48;" d line:48
|
||||||
|
PORTC_DDR::0b11111111 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 35;" d line:35
|
||||||
|
PORTC_INIT::0b00000000 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 36;" d line:36
|
||||||
|
ProcessIO E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 110;" p line:110 file: signature:(void)
|
||||||
|
RX_BUFFER_LENGTH::32 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 119;" d line:119 file:
|
||||||
|
RemoteWakeup E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 286;" v line:286
|
||||||
|
SerialStateBitmap E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 154;" v line:154
|
||||||
|
SerialStatePacket E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 129;" v line:129
|
||||||
|
SetupPkt E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 333;" v line:333
|
||||||
|
UDAV::RB4 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 41;" d line:41
|
||||||
|
UREQ::RB6 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 43;" d line:43
|
||||||
|
USBActiveConfiguration E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 275;" v line:275
|
||||||
|
USBAdvancePingPongBuffer::(buffer)((BYTE_VAL*)buffer)->V E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 444;" d line:444 file:
|
||||||
|
USBAlternateInterface E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 276;" v line:276
|
||||||
|
USBBusIsSuspended E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 287;" v line:287
|
||||||
|
USBCBSendResume E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 114;" p line:114 file: signature:(void)
|
||||||
|
USBCDCEventHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 480;" f line:480 signature:(USB_EVENT event, void *pdata, WORD size)
|
||||||
|
USBCDCSetLineCoding E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 173;" p line:173 file: signature:(void)
|
||||||
|
USBCFG_H E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 13;" d line:13
|
||||||
|
USBCancelIO E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1311;" f line:1311 signature:(BYTE endpoint)
|
||||||
|
USBCheckCDCRequest E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 203;" f line:203 signature:(void)
|
||||||
|
USBCheckStdRequest E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2832;" f line:2832 file: signature:(void)
|
||||||
|
USBCheckStdRequest E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 394;" p line:394 file: signature:(void)
|
||||||
|
USBConfigureEndpoint E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1721;" f line:1721 file: signature:(BYTE EPNum, BYTE direction)
|
||||||
|
USBConfigureEndpoint E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 403;" p line:403 file: signature:(BYTE EPNum, BYTE direction)
|
||||||
|
USBCtrlEPAllowDataStage E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1668;" f line:1668 signature:(void)
|
||||||
|
USBCtrlEPAllowStatusStage E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1598;" f line:1598 signature:(void)
|
||||||
|
USBCtrlEPService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2516;" f line:2516 file: signature:(void)
|
||||||
|
USBCtrlEPService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 391;" p line:391 file: signature:(void)
|
||||||
|
USBCtrlEPServiceComplete E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1794;" f line:1794 file: signature:(void)
|
||||||
|
USBCtrlEPServiceComplete E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 396;" p line:396 file: signature:(void)
|
||||||
|
USBCtrlTrfInHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2741;" f line:2741 file: signature:(void)
|
||||||
|
USBCtrlTrfInHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 393;" p line:393 file: signature:(void)
|
||||||
|
USBCtrlTrfOutHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2688;" f line:2688 file: signature:(void)
|
||||||
|
USBCtrlTrfOutHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 402;" p line:402 file: signature:(void)
|
||||||
|
USBCtrlTrfRxService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2027;" f line:2027 file: signature:(void)
|
||||||
|
USBCtrlTrfRxService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 398;" p line:398 file: signature:(void)
|
||||||
|
USBCtrlTrfSetupHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2616;" f line:2616 file: signature:(void)
|
||||||
|
USBCtrlTrfSetupHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 392;" p line:392 file: signature:(void)
|
||||||
|
USBCtrlTrfTxService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1946;" f line:1946 file: signature:(void)
|
||||||
|
USBCtrlTrfTxService E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 397;" p line:397 file: signature:(void)
|
||||||
|
USBDeferINDataStagePackets E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 297;" v line:297
|
||||||
|
USBDeferOUTDataStagePackets E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 298;" v line:298
|
||||||
|
USBDeferStatusStagePacket E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 294;" v line:294
|
||||||
|
USBDeviceAttach E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1534;" f line:1534 signature:(void)
|
||||||
|
USBDeviceDetach E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1429;" f line:1429 signature:(void)
|
||||||
|
USBDeviceInit E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 476;" f line:476 signature:(void)
|
||||||
|
USBDeviceState E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 274;" v line:274
|
||||||
|
USBDeviceTasks E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 669;" f line:669 signature:(void)
|
||||||
|
USBDeviceTasks E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 111;" p line:111 file: signature:(void)
|
||||||
|
USBEnableEndpoint E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1064;" f line:1064 signature:(BYTE ep, BYTE options)
|
||||||
|
USBHALPingPongSetToEven::(buffer){((BYTE_VAL*)buffer)-> E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 446;" d line:446 file:
|
||||||
|
USBHALPingPongSetToOdd::(buffer){((BYTE_VAL*)buffer)-> E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 445;" d line:445 file:
|
||||||
|
USBStallEndpoint E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1258;" f line:1258 signature:(BYTE ep, BYTE dir)
|
||||||
|
USBStallHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2349;" f line:2349 file: signature:(void)
|
||||||
|
USBStallHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 406;" p line:406 file: signature:(void)
|
||||||
|
USBStatusStageEnabledFlag1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 295;" v line:295
|
||||||
|
USBStatusStageEnabledFlag2 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 296;" v line:296
|
||||||
|
USBStatusStageTimeoutCounter E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 293;" v line:293
|
||||||
|
USBStdFeatureReqHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2900;" f line:2900 file: signature:(void)
|
||||||
|
USBStdFeatureReqHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 401;" p line:401 file: signature:(void)
|
||||||
|
USBStdGetDscHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2209;" f line:2209 file: signature:(void)
|
||||||
|
USBStdGetDscHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 395;" p line:395 file: signature:(void)
|
||||||
|
USBStdGetStatusHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2276;" f line:2276 signature:(void)
|
||||||
|
USBStdGetStatusHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 400;" p line:400 file: signature:(void)
|
||||||
|
USBStdSetCfgHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2131;" f line:2131 signature:(void)
|
||||||
|
USBStdSetCfgHandler E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 399;" p line:399 file: signature:(void)
|
||||||
|
USBSuspend E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2392;" f line:2392 file: signature:(void)
|
||||||
|
USBSuspend E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 405;" p line:405 file: signature:(void)
|
||||||
|
USBTransferOnePacket E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1181;" f line:1181 signature:(BYTE ep,BYTE dir,BYTE* data,BYTE len)
|
||||||
|
USBWakeFromSuspend E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2449;" f line:2449 file: signature:(void)
|
||||||
|
USBWakeFromSuspend E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 404;" p line:404 file: signature:(void)
|
||||||
|
USB_BUS_SENSE E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 257;" d line:257 file:
|
||||||
|
USB_BUS_SENSE::1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 80;" d line:80
|
||||||
|
USB_BUS_SENSE::1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 258;" d line:258 file:
|
||||||
|
USB_CDC_SET_LINE_CODING_HANDLER E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 169;" p line:169 file:
|
||||||
|
USB_CDC_SUPPORT_ABSTRACT_CONTROL_MANAGEMENT_CAPABILITIES_D1:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 82;" d line:82
|
||||||
|
USB_CD_Ptr E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 254;" v line:254
|
||||||
|
USB_ENABLE_ALL_HANDLERS E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 54;" d line:54
|
||||||
|
USB_EP0_BUFF_SIZE::8 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 16;" d line:16
|
||||||
|
USB_INTERRUPT E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 39;" d line:39
|
||||||
|
USB_In_Buffer E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 89;" v line:89
|
||||||
|
USB_In_Data_Rdy E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 95;" v line:95
|
||||||
|
USB_MAX_EP_NUMBER::3 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 69;" d line:69
|
||||||
|
USB_MAX_NUM_INT::2 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 23;" d line:23
|
||||||
|
USB_NUM_STRING_DESCRIPTORS::3 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 51;" d line:51
|
||||||
|
USB_Out_Buffer E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 88;" v line:88
|
||||||
|
USB_PING_PONG_MODE::USB_PING_PONG__FULL_PING_PONG E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 36;" d line:36
|
||||||
|
USB_PULLUP_OPTION::USB_PULLUP_ENABLE E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 42;" d line:42
|
||||||
|
USB_SD_Ptr E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 259;" v line:259
|
||||||
|
USB_SPEED_OPTION::USB_FULL_SPEED E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 47;" d line:47
|
||||||
|
USB_SUPPORT_DEVICE E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 49;" d line:49
|
||||||
|
USB_TRANSCEIVER_OPTION::USB_INTERNAL_TRANSCEIVER E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 45;" d line:45
|
||||||
|
USB_USER_CONFIG_DESCRIPTOR::USB_CD_Ptr E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 33;" d line:33
|
||||||
|
USB_USER_CONFIG_DESCRIPTOR_INCLUDE::externROMBYTE*ROMUSB_CD_Ptr[] E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 34;" d line:34
|
||||||
|
USB_USER_DEVICE_DESCRIPTOR::&device_dsc E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 28;" d line:28
|
||||||
|
USB_USER_DEVICE_DESCRIPTOR_INCLUDE::externROMUSB_DEVICE_DESCRIPTOR E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 29;" d line:29
|
||||||
|
USB_USE_CDC E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h 66;" d line:66
|
||||||
|
USBcp E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 94;" v line:94
|
||||||
|
USER_USB_CALLBACK_EVENT_HANDLER E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 388;" p line:388 file: signature:(USB_EVENT event, void *pdata, WORD size)
|
||||||
|
USTATcopy E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 288;" v line:288
|
||||||
|
U_IDLE::0 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 100;" d line:100 file:
|
||||||
|
U_OUT::2 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 102;" d line:102 file:
|
||||||
|
U_RDY::1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 101;" d line:101 file:
|
||||||
|
UserInit E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 115;" p line:115 file: signature:(void)
|
||||||
|
YourHighPriorityISRCode E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 112;" p line:112 file:
|
||||||
|
YourLowPriorityISRCode E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 113;" p line:113 file:
|
||||||
|
_DTS_CHECKING_ENABLED::0 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 262;" d line:262 file:
|
||||||
|
_DTS_CHECKING_ENABLED::_DTSEN E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 264;" d line:264 file:
|
||||||
|
__USB_DESCRIPTORS_C E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 121;" d line:121 file:
|
||||||
|
bDscType E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 238;" m line:238 file:
|
||||||
|
bDscType E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 242;" m line:242 file:
|
||||||
|
bDscType E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 248;" m line:248 file:
|
||||||
|
bLength E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 238;" m line:238 file:
|
||||||
|
bLength E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 242;" m line:242 file:
|
||||||
|
bLength E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 248;" m line:248 file:
|
||||||
|
byteToRead E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2029;" l line:2029
|
||||||
|
byteToSend E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1948;" l line:1948
|
||||||
|
byte_to_send E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 894;" l line:894
|
||||||
|
can_in E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 104;" v line:104
|
||||||
|
can_in_state E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 105;" v line:105
|
||||||
|
cdc_data_rx E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 124;" v line:124
|
||||||
|
cdc_data_tx E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 125;" v line:125
|
||||||
|
cdc_mem_type E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 142;" v line:142
|
||||||
|
cdc_notice E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 123;" v line:123
|
||||||
|
cdc_rx_len E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 136;" v line:136
|
||||||
|
cdc_trf_state E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 138;" v line:138
|
||||||
|
cdc_tx_len E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 141;" v line:141
|
||||||
|
configDescriptor1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 152;" v line:152
|
||||||
|
controlTransferState E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 282;" v line:282
|
||||||
|
control_signal_bitmap E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 148;" v line:148
|
||||||
|
current_ep_data E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2903;" l line:2903
|
||||||
|
device_dsc E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 133;" v line:133
|
||||||
|
dummy_encapsulated_cmd_response E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 166;" v line:166
|
||||||
|
dummy_length::0x08 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 165;" d line:165 file:
|
||||||
|
endpoint_number E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 289;" v line:289
|
||||||
|
ep_data_in E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 291;" v line:291
|
||||||
|
ep_data_out E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 292;" v line:292
|
||||||
|
getsUSBUSART E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 541;" f line:541 signature:(char *buffer, BYTE len)
|
||||||
|
handle E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1183;" l line:1183
|
||||||
|
handle E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1723;" l line:1723
|
||||||
|
hid_report_in E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 342;" v line:342
|
||||||
|
hid_report_out E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 341;" v line:341
|
||||||
|
i E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 895;" l line:895
|
||||||
|
i E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2030;" l line:2030
|
||||||
|
i E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2133;" l line:2133
|
||||||
|
i E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 478;" l line:478
|
||||||
|
i E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 679;" l line:679
|
||||||
|
inPipes E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 283;" v line:283
|
||||||
|
isr_high E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 128;" f line:128 signature:(void)
|
||||||
|
isr_low E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 138;" f line:138 signature:(void)
|
||||||
|
lastDTS E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2743;" l line:2743
|
||||||
|
lastTransmission E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 96;" v line:96
|
||||||
|
len E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 687;" l line:687
|
||||||
|
len E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 784;" l line:784
|
||||||
|
line_coding E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 126;" v line:126
|
||||||
|
mGetLED_1:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 101;" d line:101
|
||||||
|
mGetLED_2:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 102;" d line:102
|
||||||
|
mLED_1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 98;" d line:98
|
||||||
|
mLED_1_Off:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 107;" d line:107
|
||||||
|
mLED_1_On:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 104;" d line:104
|
||||||
|
mLED_1_Toggle:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 110;" d line:110
|
||||||
|
mLED_2 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 99;" d line:99
|
||||||
|
mLED_2_Off:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 108;" d line:108
|
||||||
|
mLED_2_On:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 105;" d line:105
|
||||||
|
mLED_2_Toggle:: E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 111;" d line:111
|
||||||
|
msd_buffer E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 354;" v line:354
|
||||||
|
msd_cbw E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 347;" v line:347
|
||||||
|
msd_csw E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 348;" v line:348
|
||||||
|
outPipes E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 284;" v line:284
|
||||||
|
p E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1066;" l line:1066
|
||||||
|
p E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 1260;" l line:1260
|
||||||
|
p E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2308;" l line:2308
|
||||||
|
p E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2902;" l line:2902
|
||||||
|
pBDTEntryEP0OutCurrent E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 277;" v line:277
|
||||||
|
pBDTEntryEP0OutNext E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 278;" v line:278
|
||||||
|
pBDTEntryIn E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 280;" v line:280
|
||||||
|
pBDTEntryOut E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 279;" v line:279
|
||||||
|
pCDCDst E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 140;" v line:140
|
||||||
|
pCDCSrc E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 139;" v line:139
|
||||||
|
pData E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 688;" l line:688
|
||||||
|
pData E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 785;" l line:785
|
||||||
|
pDst E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 285;" v line:285
|
||||||
|
pFunc E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2088;" p line:2088 file:
|
||||||
|
pFunc E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2803;" p line:2803 file:
|
||||||
|
pUEP E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2905;" l line:2905
|
||||||
|
pUEP E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2907;" l line:2907
|
||||||
|
putUSBUSART E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 612;" f line:612 signature:(char *data, BYTE length)
|
||||||
|
putrsUSBUSART E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 782;" f line:782 signature:(const ROM char *data)
|
||||||
|
putsUSBUSART E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c 685;" f line:685 signature:(char *data)
|
||||||
|
sd000 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 238;" v line:238
|
||||||
|
sd001 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 242;" v line:242
|
||||||
|
sd002 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 248;" v line:248
|
||||||
|
self_power::1 E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h 78;" d line:78
|
||||||
|
setup_cnt E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 2545;" l line:2545
|
||||||
|
shortPacketStatus E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c 281;" v line:281
|
||||||
|
string E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 238;" m line:238 file:
|
||||||
|
string E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 242;" m line:242 file:
|
||||||
|
string E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c 248;" m line:248 file:
|
||||||
|
usbGetChar E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 116;" p line:116 file: signature:(void)
|
||||||
|
usbIsDataRdy E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 117;" p line:117 file: signature:(void)
|
||||||
|
usb_in E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 98;" v line:98
|
||||||
|
usb_in_state E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 99;" v line:99
|
||||||
|
usb_rx_buff E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 121;" v line:121
|
||||||
|
usb_rx_ptr E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c 124;" v line:124
|
||||||
6
Source/USB/picft245.tagsrc
Normale Datei
6
Source/USB/picft245.tagsrc
Normale Datei
@ -0,0 +1,6 @@
|
|||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_descriptors.c
|
||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\usb_device.c
|
||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\USB2.9e_cdc\USB\CDC Device Driver\usb_function_cdc.c
|
||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\picft245.c
|
||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\HardwareProfile.h
|
||||||
|
E:\Projects\CBUS\mplab\canusb\merg_can_usb4\picft245\usb_config.h
|
||||||
84
Source/USB/usb_config.h
Normale Datei
84
Source/USB/usb_config.h
Normale Datei
@ -0,0 +1,84 @@
|
|||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
; PICFT245
|
||||||
|
;
|
||||||
|
; FTDI FT245 replacement in a POC18F14K50 (C) SPROG DCC 2012
|
||||||
|
; web: http://www.sprog-dcc.co.uk
|
||||||
|
; e-mail: sprog@sprog-dcc.co.uk
|
||||||
|
;-----------------------------------------------------------------------------*/
|
||||||
|
/*********************************************************************
|
||||||
|
* Descriptor specific type definitions are defined in: usbd.h
|
||||||
|
********************************************************************/
|
||||||
|
|
||||||
|
#ifndef USBCFG_H
|
||||||
|
#define USBCFG_H
|
||||||
|
|
||||||
|
/** DEFINITIONS ****************************************************/
|
||||||
|
#define USB_EP0_BUFF_SIZE 8 // Valid Options: 8, 16, 32, or 64 bytes.
|
||||||
|
// Using larger options take more SRAM, but
|
||||||
|
// does not provide much advantage in most types
|
||||||
|
// of applications. Exceptions to this, are applications
|
||||||
|
// that use EP0 IN or OUT for sending large amounts of
|
||||||
|
// application related data.
|
||||||
|
|
||||||
|
#define USB_MAX_NUM_INT 2 // For tracking Alternate Setting
|
||||||
|
|
||||||
|
//Device descriptor - if these two definitions are not defined then
|
||||||
|
// a ROM USB_DEVICE_DESCRIPTOR variable by the exact name of device_dsc
|
||||||
|
// must exist.
|
||||||
|
#define USB_USER_DEVICE_DESCRIPTOR &device_dsc
|
||||||
|
#define USB_USER_DEVICE_DESCRIPTOR_INCLUDE extern ROM USB_DEVICE_DESCRIPTOR device_dsc
|
||||||
|
|
||||||
|
//Configuration descriptors - if these two definitions do not exist then
|
||||||
|
// a ROM BYTE *ROM variable named exactly USB_CD_Ptr[] must exist.
|
||||||
|
#define USB_USER_CONFIG_DESCRIPTOR USB_CD_Ptr
|
||||||
|
#define USB_USER_CONFIG_DESCRIPTOR_INCLUDE extern ROM BYTE *ROM USB_CD_Ptr[]
|
||||||
|
|
||||||
|
#define USB_PING_PONG_MODE USB_PING_PONG__FULL_PING_PONG
|
||||||
|
|
||||||
|
//#define USB_POLLING
|
||||||
|
#define USB_INTERRUPT
|
||||||
|
|
||||||
|
/* Parameter definitions are defined in usb_device.h */
|
||||||
|
#define USB_PULLUP_OPTION USB_PULLUP_ENABLE
|
||||||
|
//#define USB_PULLUP_OPTION USB_PULLUP_DISABLED
|
||||||
|
|
||||||
|
#define USB_TRANSCEIVER_OPTION USB_INTERNAL_TRANSCEIVER
|
||||||
|
|
||||||
|
#define USB_SPEED_OPTION USB_FULL_SPEED
|
||||||
|
|
||||||
|
#define USB_SUPPORT_DEVICE
|
||||||
|
|
||||||
|
#define USB_NUM_STRING_DESCRIPTORS 3
|
||||||
|
|
||||||
|
//#define USB_INTERRUPT_LEGACY_CALLBACKS
|
||||||
|
#define USB_ENABLE_ALL_HANDLERS
|
||||||
|
//#define USB_ENABLE_SUSPEND_HANDLER
|
||||||
|
//#define USB_ENABLE_WAKEUP_FROM_SUSPEND_HANDLER
|
||||||
|
//#define USB_ENABLE_SOF_HANDLER
|
||||||
|
//#define USB_ENABLE_ERROR_HANDLER
|
||||||
|
//#define USB_ENABLE_OTHER_REQUEST_HANDLER
|
||||||
|
//#define USB_ENABLE_SET_DESCRIPTOR_HANDLER
|
||||||
|
//#define USB_ENABLE_INIT_EP_HANDLER
|
||||||
|
//#define USB_ENABLE_EP0_DATA_HANDLER
|
||||||
|
//#define USB_ENABLE_TRANSFER_COMPLETE_HANDLER
|
||||||
|
|
||||||
|
/** DEVICE CLASS USAGE *********************************************/
|
||||||
|
#define USB_USE_CDC
|
||||||
|
|
||||||
|
/** ENDPOINTS ALLOCATION *******************************************/
|
||||||
|
#define USB_MAX_EP_NUMBER 2
|
||||||
|
|
||||||
|
/* CDC */
|
||||||
|
#define CDC_COMM_INTF_ID 0x0
|
||||||
|
#define CDC_COMM_EP 1
|
||||||
|
#define CDC_COMM_IN_EP_SIZE 10
|
||||||
|
|
||||||
|
#define CDC_DATA_INTF_ID 0x01
|
||||||
|
#define CDC_DATA_EP 2
|
||||||
|
#define CDC_DATA_OUT_EP_SIZE 32
|
||||||
|
#define CDC_DATA_IN_EP_SIZE 32
|
||||||
|
|
||||||
|
//#define USB_CDC_SUPPORT_ABSTRACT_CONTROL_MANAGEMENT_CAPABILITIES_D2 //Send_Break command
|
||||||
|
#define USB_CDC_SUPPORT_ABSTRACT_CONTROL_MANAGEMENT_CAPABILITIES_D1 //Set_Line_Coding, Set_Control_Line_State, Get_Line_Coding, and Serial_State commands
|
||||||
|
|
||||||
|
#endif //USBCFG_H
|
||||||
270
Source/USB/usb_descriptors.c
Normale Datei
270
Source/USB/usb_descriptors.c
Normale Datei
@ -0,0 +1,270 @@
|
|||||||
|
/********************************************************************
|
||||||
|
-usb_descriptors.c-
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Filling in the descriptor values in the usb_descriptors.c file:
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
[Device Descriptors]
|
||||||
|
The device descriptor is defined as a USB_DEVICE_DESCRIPTOR type.
|
||||||
|
This type is defined in usb_ch9.h Each entry into this structure
|
||||||
|
needs to be the correct length for the data type of the entry.
|
||||||
|
|
||||||
|
[Configuration Descriptors]
|
||||||
|
The configuration descriptor was changed in v2.x from a structure
|
||||||
|
to a BYTE array. Given that the configuration is now a byte array
|
||||||
|
each byte of multi-byte fields must be listed individually. This
|
||||||
|
means that for fields like the total size of the configuration where
|
||||||
|
the field is a 16-bit value "64,0," is the correct entry for a
|
||||||
|
configuration that is only 64 bytes long and not "64," which is one
|
||||||
|
too few bytes.
|
||||||
|
|
||||||
|
The configuration attribute must always have the _DEFAULT
|
||||||
|
definition at the minimum. Additional options can be ORed
|
||||||
|
to the _DEFAULT attribute. Available options are _SELF and _RWU.
|
||||||
|
These definitions are defined in the usb_device.h file. The
|
||||||
|
_SELF tells the USB host that this device is self-powered. The
|
||||||
|
_RWU tells the USB host that this device supports Remote Wakeup.
|
||||||
|
|
||||||
|
[Endpoint Descriptors]
|
||||||
|
Like the configuration descriptor, the endpoint descriptors were
|
||||||
|
changed in v2.x of the stack from a structure to a BYTE array. As
|
||||||
|
endpoint descriptors also has a field that are multi-byte entities,
|
||||||
|
please be sure to specify both bytes of the field. For example, for
|
||||||
|
the endpoint size an endpoint that is 64 bytes needs to have the size
|
||||||
|
defined as "64,0," instead of "64,"
|
||||||
|
|
||||||
|
Take the following example:
|
||||||
|
// Endpoint Descriptor //
|
||||||
|
0x07, //the size of this descriptor //
|
||||||
|
USB_DESCRIPTOR_ENDPOINT, //Endpoint Descriptor
|
||||||
|
_EP02_IN, //EndpointAddress
|
||||||
|
_INT, //Attributes
|
||||||
|
0x08,0x00, //size (note: 2 bytes)
|
||||||
|
0x02, //Interval
|
||||||
|
|
||||||
|
The first two parameters are self-explanatory. They specify the
|
||||||
|
length of this endpoint descriptor (7) and the descriptor type.
|
||||||
|
The next parameter identifies the endpoint, the definitions are
|
||||||
|
defined in usb_device.h and has the following naming
|
||||||
|
convention:
|
||||||
|
_EP<##>_<dir>
|
||||||
|
where ## is the endpoint number and dir is the direction of
|
||||||
|
transfer. The dir has the value of either 'OUT' or 'IN'.
|
||||||
|
The next parameter identifies the type of the endpoint. Available
|
||||||
|
options are _BULK, _INT, _ISO, and _CTRL. The _CTRL is not
|
||||||
|
typically used because the default control transfer endpoint is
|
||||||
|
not defined in the USB descriptors. When _ISO option is used,
|
||||||
|
addition options can be ORed to _ISO. Example:
|
||||||
|
_ISO|_AD|_FE
|
||||||
|
This describes the endpoint as an isochronous pipe with adaptive
|
||||||
|
and feedback attributes. See usb_device.h and the USB
|
||||||
|
specification for details. The next parameter defines the size of
|
||||||
|
the endpoint. The last parameter in the polling interval.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Adding a USB String
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
A string descriptor array should have the following format:
|
||||||
|
|
||||||
|
rom struct{byte bLength;byte bDscType;word string[size];}sdxxx={
|
||||||
|
sizeof(sdxxx),DSC_STR,<text>};
|
||||||
|
|
||||||
|
The above structure provides a means for the C compiler to
|
||||||
|
calculate the length of string descriptor sdxxx, where xxx is the
|
||||||
|
index number. The first two bytes of the descriptor are descriptor
|
||||||
|
length and type. The rest <text> are string texts which must be
|
||||||
|
in the unicode format. The unicode format is achieved by declaring
|
||||||
|
each character as a word type. The whole text string is declared
|
||||||
|
as a word array with the number of characters equals to <size>.
|
||||||
|
<size> has to be manually counted and entered into the array
|
||||||
|
declaration. Let's study this through an example:
|
||||||
|
if the string is "USB" , then the string descriptor should be:
|
||||||
|
(Using index 02)
|
||||||
|
rom struct{byte bLength;byte bDscType;word string[3];}sd002={
|
||||||
|
sizeof(sd002),DSC_STR,'U','S','B'};
|
||||||
|
|
||||||
|
A USB project may have multiple strings and the firmware supports
|
||||||
|
the management of multiple strings through a look-up table.
|
||||||
|
The look-up table is defined as:
|
||||||
|
rom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002};
|
||||||
|
|
||||||
|
The above declaration has 3 strings, sd000, sd001, and sd002.
|
||||||
|
Strings can be removed or added. sd000 is a specialized string
|
||||||
|
descriptor. It defines the language code, usually this is
|
||||||
|
US English (0x0409). The index of the string must match the index
|
||||||
|
position of the USB_SD_Ptr array, &sd000 must be in position
|
||||||
|
USB_SD_Ptr[0], &sd001 must be in position USB_SD_Ptr[1] and so on.
|
||||||
|
The look-up table USB_SD_Ptr is used by the get string handler
|
||||||
|
function.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
The look-up table scheme also applies to the configuration
|
||||||
|
descriptor. A USB device may have multiple configuration
|
||||||
|
descriptors, i.e. CFG01, CFG02, etc. To add a configuration
|
||||||
|
descriptor, user must implement a structure similar to CFG01.
|
||||||
|
The next step is to add the configuration descriptor name, i.e.
|
||||||
|
cfg01, cfg02,.., to the look-up table USB_CD_Ptr. USB_CD_Ptr[0]
|
||||||
|
is a dummy place holder since configuration 0 is the un-configured
|
||||||
|
state according to the definition in the USB specification.
|
||||||
|
|
||||||
|
********************************************************************/
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* Descriptor specific type definitions are defined in:
|
||||||
|
* usb_device.h
|
||||||
|
*
|
||||||
|
* Configuration options are defined in:
|
||||||
|
* usb_config.h
|
||||||
|
********************************************************************/
|
||||||
|
#ifndef __USB_DESCRIPTORS_C
|
||||||
|
#define __USB_DESCRIPTORS_C
|
||||||
|
|
||||||
|
/** INCLUDES *******************************************************/
|
||||||
|
#include "./USB/usb.h"
|
||||||
|
#include "./USB/usb_function_cdc.h"
|
||||||
|
|
||||||
|
/** CONSTANTS ******************************************************/
|
||||||
|
#if defined(__18CXX)
|
||||||
|
#pragma romdata
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Device Descriptor */
|
||||||
|
ROM USB_DEVICE_DESCRIPTOR device_dsc=
|
||||||
|
{
|
||||||
|
0x12, // Size of this descriptor in bytes
|
||||||
|
USB_DESCRIPTOR_DEVICE, // DEVICE descriptor type
|
||||||
|
0x0200, // USB Spec Release Number in BCD format
|
||||||
|
CDC_DEVICE, // Class Code
|
||||||
|
0x00, // Subclass code
|
||||||
|
0x00, // Protocol code
|
||||||
|
USB_EP0_BUFF_SIZE, // Max packet size for EP0, see usb_config.h
|
||||||
|
0x04D8, // Vendor ID
|
||||||
|
0xF80C, // Product ID: CDC RS-232 Emulation Demo
|
||||||
|
0x0100, // Device release number in BCD format
|
||||||
|
0x01, // Manufacturer string index
|
||||||
|
0x02, // Product string index
|
||||||
|
0x00, // Device serial number string index
|
||||||
|
0x01 // Number of possible configurations
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Configuration 1 Descriptor */
|
||||||
|
ROM BYTE configDescriptor1[]={
|
||||||
|
/* Configuration Descriptor */
|
||||||
|
0x09,//sizeof(USB_CFG_DSC), // Size of this descriptor in bytes
|
||||||
|
USB_DESCRIPTOR_CONFIGURATION, // CONFIGURATION descriptor type
|
||||||
|
67,0, // Total length of data for this cfg
|
||||||
|
2, // Number of interfaces in this cfg
|
||||||
|
1, // Index value of this configuration
|
||||||
|
0, // Configuration string index
|
||||||
|
_DEFAULT | _SELF, // Attributes, see usb_device.h
|
||||||
|
49, // Max power consumption (2X mA)
|
||||||
|
|
||||||
|
/* Interface Descriptor */
|
||||||
|
9,//sizeof(USB_INTF_DSC), // Size of this descriptor in bytes
|
||||||
|
USB_DESCRIPTOR_INTERFACE, // INTERFACE descriptor type
|
||||||
|
0, // Interface Number
|
||||||
|
0, // Alternate Setting Number
|
||||||
|
1, // Number of endpoints in this intf
|
||||||
|
COMM_INTF, // Class code
|
||||||
|
ABSTRACT_CONTROL_MODEL, // Subclass code
|
||||||
|
V25TER, // Protocol code
|
||||||
|
0, // Interface string index
|
||||||
|
|
||||||
|
/* CDC Class-Specific Descriptors */
|
||||||
|
sizeof(USB_CDC_HEADER_FN_DSC),
|
||||||
|
CS_INTERFACE,
|
||||||
|
DSC_FN_HEADER,
|
||||||
|
0x10,0x01,
|
||||||
|
|
||||||
|
sizeof(USB_CDC_ACM_FN_DSC),
|
||||||
|
CS_INTERFACE,
|
||||||
|
DSC_FN_ACM,
|
||||||
|
USB_CDC_ACM_FN_DSC_VAL,
|
||||||
|
|
||||||
|
sizeof(USB_CDC_UNION_FN_DSC),
|
||||||
|
CS_INTERFACE,
|
||||||
|
DSC_FN_UNION,
|
||||||
|
CDC_COMM_INTF_ID,
|
||||||
|
CDC_DATA_INTF_ID,
|
||||||
|
|
||||||
|
sizeof(USB_CDC_CALL_MGT_FN_DSC),
|
||||||
|
CS_INTERFACE,
|
||||||
|
DSC_FN_CALL_MGT,
|
||||||
|
0x00,
|
||||||
|
CDC_DATA_INTF_ID,
|
||||||
|
|
||||||
|
/* Endpoint Descriptor */
|
||||||
|
//sizeof(USB_EP_DSC),DSC_EP,_EP02_IN,_INT,CDC_INT_EP_SIZE,0x02,
|
||||||
|
0x07,/*sizeof(USB_EP_DSC)*/
|
||||||
|
USB_DESCRIPTOR_ENDPOINT, //Endpoint Descriptor
|
||||||
|
_EP01_IN, //EndpointAddress
|
||||||
|
_INTERRUPT, //Attributes
|
||||||
|
0x0A,0x00, //size
|
||||||
|
0x01, //Interval
|
||||||
|
|
||||||
|
/* Interface Descriptor */
|
||||||
|
9,//sizeof(USB_INTF_DSC), // Size of this descriptor in bytes
|
||||||
|
USB_DESCRIPTOR_INTERFACE, // INTERFACE descriptor type
|
||||||
|
1, // Interface Number
|
||||||
|
0, // Alternate Setting Number
|
||||||
|
2, // Number of endpoints in this intf
|
||||||
|
DATA_INTF, // Class code
|
||||||
|
0, // Subclass code
|
||||||
|
NO_PROTOCOL, // Protocol code
|
||||||
|
0, // Interface string index
|
||||||
|
|
||||||
|
/* Endpoint Descriptor */
|
||||||
|
//sizeof(USB_EP_DSC),DSC_EP,_EP03_OUT,_BULK,CDC_BULK_OUT_EP_SIZE,0x00,
|
||||||
|
0x07,/*sizeof(USB_EP_DSC)*/
|
||||||
|
USB_DESCRIPTOR_ENDPOINT, //Endpoint Descriptor
|
||||||
|
_EP02_OUT, //EndpointAddress
|
||||||
|
_BULK, //Attributes
|
||||||
|
0x20,0x00, //size
|
||||||
|
0x00, //Interval
|
||||||
|
|
||||||
|
/* Endpoint Descriptor */
|
||||||
|
//sizeof(USB_EP_DSC),DSC_EP,_EP03_IN,_BULK,CDC_BULK_IN_EP_SIZE,0x00
|
||||||
|
0x07,/*sizeof(USB_EP_DSC)*/
|
||||||
|
USB_DESCRIPTOR_ENDPOINT, //Endpoint Descriptor
|
||||||
|
_EP02_IN, //EndpointAddress
|
||||||
|
_BULK, //Attributes
|
||||||
|
0x20,0x00, //size
|
||||||
|
0x00, //Interval
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//Language code string descriptor
|
||||||
|
ROM struct{BYTE bLength;BYTE bDscType;WORD string[1];}sd000={
|
||||||
|
sizeof(sd000),USB_DESCRIPTOR_STRING,{0x0409}};
|
||||||
|
|
||||||
|
//Manufacturer string descriptor
|
||||||
|
ROM struct{BYTE bLength;BYTE bDscType;WORD string[9];}sd001={
|
||||||
|
sizeof(sd001),USB_DESCRIPTOR_STRING,
|
||||||
|
{'S','P','R','O','G',' ','D','C','C'}
|
||||||
|
};
|
||||||
|
|
||||||
|
//Product string descriptor
|
||||||
|
ROM struct{BYTE bLength;BYTE bDscType;WORD string[8];}sd002={
|
||||||
|
sizeof(sd002),USB_DESCRIPTOR_STRING,
|
||||||
|
{'C','A','N','_','U','S','B','4'}
|
||||||
|
};
|
||||||
|
|
||||||
|
//Array of configuration descriptors
|
||||||
|
ROM BYTE *ROM USB_CD_Ptr[]=
|
||||||
|
{
|
||||||
|
(ROM BYTE *ROM)&configDescriptor1
|
||||||
|
};
|
||||||
|
//Array of string descriptors
|
||||||
|
ROM BYTE *ROM USB_SD_Ptr[]=
|
||||||
|
{
|
||||||
|
(ROM BYTE *ROM)&sd000,
|
||||||
|
(ROM BYTE *ROM)&sd001,
|
||||||
|
(ROM BYTE *ROM)&sd002
|
||||||
|
};
|
||||||
|
|
||||||
|
#if defined(__18CXX)
|
||||||
|
#pragma code
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
/** EOF usb_descriptors.c ****************************************************/
|
||||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren