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

📄 interrupt_usart.lst

📁 高性能USB转串口(可高达10Mbps)完整的源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
  73              		.loc 1 59 0
  59:interrupt_Usart.c **** 	AT91PS_USART USART_pt = COM0;
  74              	4, .L20
  75 0006 3B4C     		ldr	r6, [r4]
  76 0008 2668     	.LVL1:
  77              		.loc 1 63 0
  60:interrupt_Usart.c **** 	unsigned int status;
  61:interrupt_Usart.c **** 
  62:interrupt_Usart.c **** 	//* get Usart status register and active interrupt
  63:interrupt_Usart.c **** 	status = USART_pt->US_CSR ;
  78              		r2, [r6, #20]
  79 000a 7269     	.LVL2:
  80              		.loc 1 64 0
  64:interrupt_Usart.c ****         status &= USART_pt->US_IMR;
  81              	r	r3, [r6, #16]
  82 000c 3369     		mov	r5, r2
  83 000e 151C     	.LVL3:
  84              		and	r5, r5, r3
  85 0010 1D40     		.loc 1 66 0
  65:interrupt_Usart.c **** 
  66:interrupt_Usart.c **** 	if ( status & AT91C_US_RXBUFF){
  86              	r2, r5, #19
  87 0012 EA04     		bpl	.L9
  88 0014 2BD5     	.LVL4:
  89              		.loc 1 68 0
  67:interrupt_Usart.c **** 	//* Toggel LED
  68:interrupt_Usart.c ****  	Trace_Toggel_LED( AT91B_LED3) ;
  90              		r0, #4
  91 0016 0420     		bl	Trace_Toggel_LED
  92 0018 FFF7FEFF 		.loc 1 70 0
  69:interrupt_Usart.c **** 	//* transfert the char to DBGU
  70:interrupt_Usart.c **** 	 if ( first == 0){
  93              	r	r7, .L20+4
  94 001c 364F     		ldr	r3, [r7]
  95 001e 3B68     		cmp	r3, #0
  96 0020 002B     		bne	.L11
  97 0022 11D1     		.loc 1 71 0
  71:interrupt_Usart.c ****  	     COM0->US_RPR = (unsigned int) buff_rx1;
  98              	r1, [r4]
  99 0024 2168     		ldr	r2, .L20+8
 100 0026 354A     		mov	r3, #128
 101 0028 8023     		lsl	r3, r3, #1
 102 002a 5B00     		str	r2, [r1, r3]
 103 002c CA50     		.loc 1 72 0
  72:interrupt_Usart.c **** 	     COM0->US_RCR = 100;
 104              	1, [r4]
 105 002e 2168     		mov	r3, #130
 106 0030 8223     		lsl	r3, r3, #1
 107 0032 5B00     		mov	r2, #100
 108 0034 6422     		str	r2, [r1, r3]
 109 0036 CA50     		.loc 1 73 0
  73:interrupt_Usart.c ****  	     pCDC.Write(&pCDC, buff_rx,100);
 110              	0, .L20+12
 111 0038 3148     		ldr	r1, .L20+16
 112 003a 3249     		ldr	r3, [r0, #16]
 113 003c 0369     		bl	.L22
 114 003e 00F063F8 		.loc 1 74 0
  74:interrupt_Usart.c ****  	     first =1;
 115              	r3, #1
 116 0042 0123     		str	r3, [r7]
 117 0044 3B60     		b	.L9
 118 0046 12E0     	.L11:
 119              		.loc 1 76 0
  75:interrupt_Usart.c **** 	   }else{
  76:interrupt_Usart.c **** 	     COM0->US_RPR = (unsigned int) buff_rx;
 120              	r1, .L20
 121 0048 2A49     		ldr	r0, [r1]
 122 004a 0868     		ldr	r2, .L20+16
 123 004c 2D4A     		mov	r3, #128
 124 004e 8023     		lsl	r3, r3, #1
 125 0050 5B00     		str	r2, [r0, r3]
 126 0052 C250     		.loc 1 77 0
  77:interrupt_Usart.c **** 	     COM0->US_RCR = 100;
 127              	, [r1]
 128 0054 0968     		mov	r3, #130
 129 0056 8223     		lsl	r3, r3, #1
 130 0058 5B00     		mov	r2, #100
 131 005a 6422     		str	r2, [r1, r3]
 132 005c CA50     		.loc 1 78 0
  78:interrupt_Usart.c **** 	     pCDC.Write(&pCDC, buff_rx1,100);
 133              	0, .L20+12
 134 005e 2848     		ldr	r1, .L20+8
 135 0060 2649     		ldr	r3, [r0, #16]
 136 0062 0369     		bl	.L22
 137 0064 00F050F8 		.loc 1 79 0
  79:interrupt_Usart.c **** 	     first=0;
 138              	r2, .L20+4
 139 0068 234A     		mov	r3, #0
 140 006a 0023     		str	r3, [r2]
 141 006c 1360     	.L9:
 142              		.loc 1 84 0
  80:interrupt_Usart.c **** 	   }
  81:interrupt_Usart.c **** 	}
  82:interrupt_Usart.c **** //* Check error
  83:interrupt_Usart.c **** 
  84:interrupt_Usart.c **** 	if ( status & AT91C_US_TIMEOUT){
 143              	r4, #128
 144 006e 8024     		lsl	r4, r4, #1
 145 0070 6400     		tst	r5, r4
 146 0072 2542     		beq	.L13
 147 0074 36D0     		.loc 1 85 0
  85:interrupt_Usart.c **** 	 Trace_Toggel_LED( AT91B_LED4) ;
 148              	r0, #8
 149 0076 0820     		bl	Trace_Toggel_LED
 150 0078 FFF7FEFF 		.loc 1 86 0
  86:interrupt_Usart.c **** 	 status = 100 - COM0->US_RCR;
 151              	r	r0, .L20
 152 007c 1D48     		ldr	r1, [r0]
 153 007e 0168     		mov	r2, #130
 154 0080 8222     		lsl	r2, r2, #1
 155 0082 5200     		ldr	r3, [r1, r2]
 156 0084 8B58     		mov	r7, #100
 157 0086 6427     		sub	r5, r7, r3
 158 0088 FD1A     	.LVL5:
 159              		.loc 1 87 0
  87:interrupt_Usart.c **** 	 if  (status !=0){
 160              	#0
 161 008a 002D     		beq	.L13
 162 008c 2AD0     		.loc 1 88 0
  88:interrupt_Usart.c ****  	   if ( first == 0){
 163              	r	r3, .L20+4
 164 008e 1A4B     		mov	r8, r3
 165 0090 9846     		ldr	r3, [r3]
 166 0092 1B68     		cmp	r3, #0
 167 0094 002B     		bne	.L16
 168 0096 0DD1     		.loc 1 89 0
  89:interrupt_Usart.c **** 		COM0->US_RPR = (unsigned int) buff_rx1;
 169              	3, .L20+8
 170 0098 184B     		str	r3, [r1, r4]
 171 009a 0B51     		.loc 1 90 0
  90:interrupt_Usart.c **** 		COM0->US_RCR = 100;
 172              	r	r3, [r0]
 173 009c 0368     		str	r7, [r3, r2]
 174 009e 9F50     		.loc 1 91 0
  91:interrupt_Usart.c ****  	        pCDC.Write(&pCDC, buff_rx,status);
 175              	r	r0, .L20+12
 176 00a0 1748     		ldr	r1, .L20+16
 177 00a2 1849     		ldr	r3, [r0, #16]
 178 00a4 0369     		mov	r2, r5
 179 00a6 2A1C     		bl	.L22
 180 00a8 00F02EF8 		.loc 1 92 0
  92:interrupt_Usart.c ****  	        first =1;
 181              	3, #1
 182 00ac 0123     		mov	r2, r8
 183 00ae 4246     		str	r3, [r2]
 184 00b0 1360     		b	.L18
 185 00b2 12E0     	.L16:
 186              		.loc 1 94 0
  93:interrupt_Usart.c **** 	   }else{
  94:interrupt_Usart.c **** 	        COM0->US_RPR = (unsigned int) buff_rx;
 187              	2, .L20+16
 188 00b4 134A     		mov	r3, #128
 189 00b6 8023     		lsl	r3, r3, #1
 190 00b8 5B00     		str	r2, [r1, r3]
 191 00ba CA50     		.loc 1 95 0
  95:interrupt_Usart.c **** 	        COM0->US_RCR = 100;
 192              	r3, .L20
 193 00bc 0D4B     		ldr	r1, [r3]
 194 00be 1968     		mov	r3, #130
 195 00c0 8223     		lsl	r3, r3, #1
 196 00c2 5B00     		mov	r2, #100
 197 00c4 6422     		str	r2, [r1, r3]
 198 00c6 CA50     		.loc 1 96 0
  96:interrupt_Usart.c **** 	        pCDC.Write(&pCDC, buff_rx1,status);
 199              	, .L20+12
 200 00c8 0D48     		ldr	r1, .L20+8
 201 00ca 0C49     		ldr	r3, [r0, #16]
 202 00cc 0369     		mov	r2, r5
 203 00ce 2A1C     		bl	.L22
 204 00d0 00F01AF8 		.loc 1 97 0
  97:interrupt_Usart.c **** 	        first=0;
 205              	2, .L20+4
 206 00d4 084A     		mov	r3, #0
 207 00d6 0023     		str	r3, [r2]
 208 00d8 1360     	.L18:
 209              		.loc 1 99 0
  98:interrupt_Usart.c **** 	    }
  99:interrupt_Usart.c ****             COM0->US_CR = AT91C_US_STTTO;
 210              	r3, .L20
 211 00da 064B     		ldr	r2, [r3]
 212 00dc 1A68     		mov	r3, #128
 21

⌨️ 快捷键说明

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