_USB0Interrupt:
;HID_Read_Write.c,28 :: 		void USB0Interrupt() iv IVT_INT_OTG_FS{
SUB	SP, SP, #4
STR	LR, [SP, #0]
;HID_Read_Write.c,29 :: 		USB_Interrupt_Proc();
BL	_USB_Interrupt_Proc+0
;HID_Read_Write.c,30 :: 		}
L_end_USB0Interrupt:
LDR	LR, [SP, #0]
ADD	SP, SP, #4
BX	LR
; end of _USB0Interrupt
_main:
;HID_Read_Write.c,32 :: 		void main(void){
SUB	SP, SP, #4
;HID_Read_Write.c,34 :: 		int Count = 0;
MOVW	R0, #0
STRH	R0, [SP, #0]
;HID_Read_Write.c,35 :: 		GPIO_Digital_Output(&GPIOB_BASE, _GPIO_PINMASK_ALL); // Set PORTA as digital output
MOVW	R1, #65535
MOVW	R0, #lo_addr(GPIOB_BASE+0)
MOVT	R0, #hi_addr(GPIOB_BASE+0)
BL	_GPIO_Digital_Output+0
;HID_Read_Write.c,36 :: 		GPIOB_ODR = 0;
MOVS	R1, #0
MOVW	R0, #lo_addr(GPIOB_ODR+0)
MOVT	R0, #hi_addr(GPIOB_ODR+0)
STR	R1, [R0, #0]
;HID_Read_Write.c,38 :: 		HID_Enable(&readbuff,&writebuff);
MOVW	R1, #lo_addr(_writebuff+0)
MOVT	R1, #hi_addr(_writebuff+0)
MOVW	R0, #lo_addr(_readbuff+0)
MOVT	R0, #hi_addr(_readbuff+0)
BL	_HID_Enable+0
;HID_Read_Write.c,40 :: 		while(1){
L_main0:
;HID_Read_Write.c,41 :: 		while(!HID_Read())
L_main2:
BL	_HID_Read+0
CMP	R0, #0
IT	NE
BNE	L_main3
;HID_Read_Write.c,42 :: 		;
IT	AL
BAL	L_main2
L_main3:
;HID_Read_Write.c,44 :: 		for(cnt=0;cnt<64;cnt++)
; cnt start address is: 12 (R3)
MOVS	R3, #0
; cnt end address is: 12 (R3)
UXTB	R2, R3
L_main4:
; cnt start address is: 8 (R2)
CMP	R2, #64
IT	CS
BCS	L_main5
;HID_Read_Write.c,45 :: 		writebuff[cnt]=readbuff[cnt];
MOVW	R0, #lo_addr(_writebuff+0)
MOVT	R0, #hi_addr(_writebuff+0)
ADDS	R1, R0, R2
MOVW	R0, #lo_addr(_readbuff+0)
MOVT	R0, #hi_addr(_readbuff+0)
ADDS	R0, R0, R2
LDRB	R0, [R0, #0]
STRB	R0, [R1, #0]
;HID_Read_Write.c,44 :: 		for(cnt=0;cnt<64;cnt++)
ADDS	R0, R2, #1
; cnt end address is: 8 (R2)
; cnt start address is: 12 (R3)
UXTB	R3, R0
;HID_Read_Write.c,45 :: 		writebuff[cnt]=readbuff[cnt];
UXTB	R2, R3
; cnt end address is: 12 (R3)
IT	AL
BAL	L_main4
L_main5:
;HID_Read_Write.c,47 :: 		GPIOB_ODR  = readbuff[63];     //Toggle LED
MOVW	R0, #lo_addr(_readbuff+63)
MOVT	R0, #hi_addr(_readbuff+63)
LDRB	R1, [R0, #0]
MOVW	R0, #lo_addr(GPIOB_ODR+0)
MOVT	R0, #hi_addr(GPIOB_ODR+0)
STR	R1, [R0, #0]
;HID_Read_Write.c,48 :: 		writebuff[0] = ++Count;   //send Count
LDRSH	R0, [SP, #0]
ADDS	R1, R0, #1
STRH	R1, [SP, #0]
MOVW	R0, #lo_addr(_writebuff+0)
MOVT	R0, #hi_addr(_writebuff+0)
STRB	R1, [R0, #0]
;HID_Read_Write.c,50 :: 		while(!HID_Write(&writebuff,64))
L_main7:
MOVS	R1, #64
MOVW	R0, #lo_addr(_writebuff+0)
MOVT	R0, #hi_addr(_writebuff+0)
BL	_HID_Write+0
CMP	R0, #0
IT	NE
BNE	L_main8
;HID_Read_Write.c,51 :: 		;
IT	AL
BAL	L_main7
L_main8:
;HID_Read_Write.c,52 :: 		}
IT	AL
BAL	L_main0
;HID_Read_Write.c,53 :: 		}
L_end_main:
L__main_end_loop:
B	L__main_end_loop
; end of _main
