otgdevice.s

来自「Samsung公司S3C6400芯片的BSP源码包」· S 代码 · 共 104 行

S
104
字号
; Optimize USB Transfer Performance
; chandolp 
;
; OTG Device Transfer Related Routines
;

	INCLUDE kxarm.h

	TEXTAREA


;----------------------------------------------
; void RxData512(unsigned char *bufPt, volatile ULONG *FifoPt);
; Buffer (r0) must be aligned.
;----------------------------------------------	
	LEAF_ENTRY RxData512

		stmfd		sp!,{r2 - r12}

		mov		r2, #0x1E0
1
		ldr		r3, [r1]
		ldr		r4, [r1]
		ldr		r5, [r1]
		ldr		r6, [r1]
		ldr		r7, [r1]
		ldr		r8, [r1]
		ldr		r9, [r1]
		ldr		r10, [r1]
		ldr		r11, [r1]
		ldr		r12, [r1]

		stmia		r0!, {r3 - r12}
		subs    	r2, r2, #40
		bne		%B1

		ldr		r3, [r1]
		ldr		r4, [r1]
		ldr		r5, [r1]
		ldr		r6, [r1]
		ldr		r7, [r1]
		ldr		r8, [r1]
		ldr		r9, [r1]
		ldr		r10, [r1]
		
		stmia		r0!, {r3 - r10}

		ldmfd		sp!, {r2 - r12}

	IF Interworking :LOR: Thumbing
		bx		lr
	ELSE
		mov		pc, lr	; return
	ENDIF

	
;----------------------------------------------------------
; void TxData512(unsigned char *bufPt, volatile ULONG *FifoPt);
; Buffer (r0) must be aligned.
;----------------------------------------------------------
	LEAF_ENTRY TxData512

		stmfd		sp!,{r2 - r12}

		mov		r2, #0x1E0
1
		ldmia		r0!, {r3 - r12}

		str		r3, [r1]
		str		r4, [r1]
		str		r5, [r1]
		str		r6, [r1]
		str		r7, [r1]
		str		r8, [r1]
		str		r9, [r1]
		str		r10, [r1]
		str		r11, [r1]
		str		r12, [r1]

		subs		r2, r2, #40
		bne		%B1

		ldmia		r0!, {r3 - r10}
		
		str		r3, [r1]
		str		r4, [r1]
		str		r5, [r1]
		str		r6, [r1]
		str		r7, [r1]
		str		r8, [r1]
		str		r9, [r1]
		str		r10, [r1]
		
		ldmfd		sp!, {r2 - r12}

	IF Interworking :LOR: Thumbing
		bx		lr
	ELSE
		mov		pc, lr	; return
	ENDIF

	END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?