⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at91_svc_usbout_rd.s

📁 AT91RM9200的USB相关ACM CDC的源代码包! AT91RM9200-BasicUSBPipe-ARM1_2-2_0.zip
💻 S
字号:
;------------------------------------------------------------------------------ 
 CODE32 
;------------------------------------------------------------------------------ 
	AREA        AT91_UDP_USBOUT, CODE, READONLY

; =========================================================
; r0 = buffer base address !!!WORD aligned!!!
; r1 = count
; r2 = address of the UDP_CSR register
	MACRO
	AT91C_UDP_RD_32 $fdr, $scratch, $dest
	mov     $scratch, #0
	ldrb    $scratch, [$fdr]
	mov     $dest, $scratch
	ldrb    $scratch, [$fdr]
	add     $dest, $dest, $scratch, LSL #8
	ldrb    $scratch, [$fdr]
	add     $dest, $dest, $scratch, LSL #16
	ldrb    $scratch, [$fdr]
	add     $dest, $dest, $scratch, LSL #24
	MEND
	
	MACRO
	AT91C_UDP_RD_8   $fdr, $scratch, $base
	ldrb    $scratch, [$fdr]
	strb    $scratch, [$base], #1
	MEND


; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Read_64
AT91F_UDP_Read_64	
 	stmfd  sp!,{r3-r11} 
	AT91C_UDP_RD_32 r2, r3, r4
	AT91C_UDP_RD_32 r2, r3, r5 
	AT91C_UDP_RD_32 r2, r3, r6
	AT91C_UDP_RD_32 r2, r3, r7
	AT91C_UDP_RD_32 r2, r3, r8
	AT91C_UDP_RD_32 r2, r3, r9
	AT91C_UDP_RD_32 r2, r3, r10
	AT91C_UDP_RD_32 r2, r3, r11
	stmia  r0!, {r4-r11}  
	AT91C_UDP_RD_32 r2, r3, r4
	AT91C_UDP_RD_32 r2, r3, r5 
	AT91C_UDP_RD_32 r2, r3, r6
	AT91C_UDP_RD_32 r2, r3, r7
	AT91C_UDP_RD_32 r2, r3, r8
	AT91C_UDP_RD_32 r2, r3, r9
	AT91C_UDP_RD_32 r2, r3, r10
	AT91C_UDP_RD_32 r2, r3, r11
	stmia  r0!, {r4-r11}  

	ldmfd   sp!,{r3-r11} 
	mov     pc, r14 
 
; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Read_32
AT91F_UDP_Read_32	
 	stmfd   sp!,{r3-r11} 
	AT91C_UDP_RD_32 r2, r3, r4
	AT91C_UDP_RD_32 r2, r3, r5 
	AT91C_UDP_RD_32 r2, r3, r6
	AT91C_UDP_RD_32 r2, r3, r7
	AT91C_UDP_RD_32 r2, r3, r8
	AT91C_UDP_RD_32 r2, r3, r9
	AT91C_UDP_RD_32 r2, r3, r10
	AT91C_UDP_RD_32 r2, r3, r11
	stmia  r0!, {r4-r11}  

	ldmfd   sp!,{r3-r11} 
	mov     pc, r14 
 
; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Read_8
AT91F_UDP_Read_8	
 	stmfd   sp!,{r3-r5} 
	AT91C_UDP_RD_32 r2, r3, r4
	AT91C_UDP_RD_32 r2, r3, r5 
	stmia   r0!, {r4-r5}

	ldmfd   sp!,{r3-r5} 
	mov     pc, r14 

; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Read_N
AT91F_UDP_Read_N	
 	stmfd   sp!,{r3, r4} 

	mov     r3, #64
	sub     r1, r3, r1
	mov     r1, r1, LSL #3
	ldr     r4, =AT91F_UDP_Read_N_xxx
	add     r1, r4, r1
	bx      r1
	
AT91F_UDP_Read_N_xxx
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0
	AT91C_UDP_RD_8 r2, r3, r0

	ldmfd   sp!,{r3, r4} 
	mov     pc, r14 

; =========================================================
	END

⌨️ 快捷键说明

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