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

📄 at91_svc_usbin_wr.s

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

; =========================================================
; r0 = buffer base address !!!WORD aligned!!!
; r1 = count
; r2 = address of the UDP_CSR register

	MACRO
	AT91C_UDP_WR_32 $fdr, $scratch
	str     $scratch, [$fdr]
	mov     $scratch, $scratch, LSR #8
	str     $scratch, [$fdr]
	mov     $scratch, $scratch, LSR #8
	str     $scratch, [$fdr]
	mov     $scratch, $scratch, LSR #8
	str     $scratch, [$fdr]
	MEND
	
	MACRO
	AT91C_UDP_WR_8   $scratch, $fdr, $base
	ldrb    $scratch, [$base], #1
	str     $scratch, [$fdr]
	MEND


; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Write_64
AT91F_UDP_Write_64	
 	stmfd  sp!,{r4-r11} 
	ldmia  r0!, {r4-r11}
	AT91C_UDP_WR_32 r2, r4
	AT91C_UDP_WR_32 r2, r5 
	AT91C_UDP_WR_32 r2, r6
	AT91C_UDP_WR_32 r2, r7
	AT91C_UDP_WR_32 r2, r8
	AT91C_UDP_WR_32 r2, r9
	AT91C_UDP_WR_32 r2, r10
	AT91C_UDP_WR_32 r2, r11
	ldmia   r0!, {r4-r11}
	AT91C_UDP_WR_32 r2, r4
	AT91C_UDP_WR_32 r2, r5 
	AT91C_UDP_WR_32 r2, r6
	AT91C_UDP_WR_32 r2, r7
	AT91C_UDP_WR_32 r2, r8
	AT91C_UDP_WR_32 r2, r9
	AT91C_UDP_WR_32 r2, r10
	AT91C_UDP_WR_32 r2, r11

	ldmfd   sp!,{r4-r11} 
	mov     pc, r14 
 
; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Write_32
AT91F_UDP_Write_32	
 	stmfd   sp!,{r4-r11} 
	ldmia   r0!, {r4-r11}
	AT91C_UDP_WR_32 r2, r4
	AT91C_UDP_WR_32 r2, r5 
	AT91C_UDP_WR_32 r2, r6
	AT91C_UDP_WR_32 r2, r7
	AT91C_UDP_WR_32 r2, r8
	AT91C_UDP_WR_32 r2, r9
	AT91C_UDP_WR_32 r2, r10
	AT91C_UDP_WR_32 r2, r11

	ldmfd   sp!,{r4-r11} 
	mov     pc, r14 
 
; ------------------------------------------------------
; ------------------------------------------------------
	EXPORT  AT91F_UDP_Write_8
AT91F_UDP_Write_8	
 	stmfd   sp!,{r4-r5} 
	ldmia   r0!, {r4-r5}
	AT91C_UDP_WR_32 r2, r4
	AT91C_UDP_WR_32 r2, r5 

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

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

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

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0
	AT91C_UDP_WR_8 r3, r2, r0

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


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

⌨️ 快捷键说明

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