📄 bsp_i2c.lst
字号:
\ 0000015C 1010A0E3 MOV R1,#+16
\ 00000160 001080E5 STR R1,[R0, #+0]
341 OSSemPost(I2C_SemWait);
\ 00000164 ........ LDR R0,??DataTable65 ;; I2C_SemWait
\ 00000168 000090E5 LDR R0,[R0, #+0]
\ 0000016C ........ _BLF OSSemPost,??OSSemPost??rA
342 VICIntEnClear = (1 << VIC_I2C0);
\ 00000170 EB00E0E3 MVN R0,#+235
\ 00000174 F00EC0E3 BIC R0,R0,#0xF00
\ 00000178 801FA0E3 MOV R1,#+512
\ 0000017C 001080E5 STR R1,[R0, #+0]
\ 00000180 610000EA B ??I2C_ISR_Handler_9
343 }
344 break;
345
346 case I2STAT_SLA_W_NOACK:
347 case I2STAT_DAT_T_NOACK:
348 case I2STAT_SLA_R_NOACK:
349 I20CONSET = I2CON_STO;
\ ??I2C_ISR_Handler_2:
\ 00000184 E004A0E3 MOV R0,#-536870912
\ 00000188 700B80E3 ORR R0,R0,#0x1C000
\ 0000018C 1010A0E3 MOV R1,#+16
\ 00000190 001080E5 STR R1,[R0, #+0]
350 I20CONCLR = I2CON_STA | I2CON_SI;
\ 00000194 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 00000198 2810A0E3 MOV R1,#+40
\ 0000019C 001080E5 STR R1,[R0, #+0]
351 OSSemPost(I2C_SemWait);
\ 000001A0 ........ LDR R0,??DataTable65 ;; I2C_SemWait
\ 000001A4 000090E5 LDR R0,[R0, #+0]
\ 000001A8 ........ _BLF OSSemPost,??OSSemPost??rA
352 VICIntEnClear = (1 << VIC_I2C0);
\ 000001AC EB00E0E3 MVN R0,#+235
\ 000001B0 F00EC0E3 BIC R0,R0,#0xF00
\ 000001B4 801FA0E3 MOV R1,#+512
\ 000001B8 001080E5 STR R1,[R0, #+0]
\ 000001BC 520000EA B ??I2C_ISR_Handler_9
353 break;
354
355 case I2STAT_ARB_LOST:
356 I20CONCLR = I2CON_STA | I2CON_SI;
\ ??I2C_ISR_Handler_4:
\ 000001C0 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 000001C4 2810A0E3 MOV R1,#+40
\ 000001C8 001080E5 STR R1,[R0, #+0]
357 OSSemPost(I2C_SemWait);
\ 000001CC ........ LDR R0,??DataTable65 ;; I2C_SemWait
\ 000001D0 000090E5 LDR R0,[R0, #+0]
\ 000001D4 ........ _BLF OSSemPost,??OSSemPost??rA
358 VICIntEnClear = (1 << VIC_I2C0);
\ 000001D8 EB00E0E3 MVN R0,#+235
\ 000001DC F00EC0E3 BIC R0,R0,#0xF00
\ 000001E0 801FA0E3 MOV R1,#+512
\ 000001E4 001080E5 STR R1,[R0, #+0]
\ 000001E8 470000EA B ??I2C_ISR_Handler_9
359 break;
360
361
362 case I2STAT_SLA_R_ACK:
363 if (I2C_Count <= 1) {
\ ??I2C_ISR_Handler_5:
\ 000001EC ........ LDR R0,??DataTable63 ;; I2C_Count
\ 000001F0 0000D0E5 LDRB R0,[R0, #+0]
\ 000001F4 020050E3 CMP R0,#+2
\ 000001F8 0400002A BCS ??I2C_ISR_Handler_11
364 I20CONSET = I2CON_AA;
\ 000001FC E004A0E3 MOV R0,#-536870912
\ 00000200 700B80E3 ORR R0,R0,#0x1C000
\ 00000204 0410A0E3 MOV R1,#+4
\ 00000208 001080E5 STR R1,[R0, #+0]
\ 0000020C 020000EA B ??I2C_ISR_Handler_12
365 } else {
366 I20CONCLR = I2CON_AA;
\ ??I2C_ISR_Handler_11:
\ 00000210 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 00000214 0410A0E3 MOV R1,#+4
\ 00000218 001080E5 STR R1,[R0, #+0]
367 }
368 I20CONCLR = I2CON_STA | I2CON_SI;
\ ??I2C_ISR_Handler_12:
\ 0000021C ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 00000220 2810A0E3 MOV R1,#+40
\ 00000224 001080E5 STR R1,[R0, #+0]
\ 00000228 370000EA B ??I2C_ISR_Handler_9
369 break;
370
371 case I2STAT_DAT_R_ACK:
372 temp = I20DAT;
\ ??I2C_ISR_Handler_6:
\ 0000022C 8E02A0E3 MOV R0,#-536870904
\ 00000230 700B80E3 ORR R0,R0,#0x1C000
\ 00000234 001090E5 LDR R1,[R0, #+0]
373 *I2C_BufPtr = temp;
\ 00000238 ........ LDR R0,??DataTable61 ;; I2C_BufPtr
\ 0000023C 000090E5 LDR R0,[R0, #+0]
\ 00000240 0010C0E5 STRB R1,[R0, #+0]
374 I2C_BufPtr += 1;
\ 00000244 ........ LDR R0,??DataTable61 ;; I2C_BufPtr
\ 00000248 ........ LDR R1,??DataTable61 ;; I2C_BufPtr
\ 0000024C 001091E5 LDR R1,[R1, #+0]
\ 00000250 011091E2 ADDS R1,R1,#+1
\ 00000254 001080E5 STR R1,[R0, #+0]
375 I2C_Count -= 1;
\ 00000258 ........ LDR R0,??DataTable63 ;; I2C_Count
\ 0000025C ........ LDR R1,??DataTable63 ;; I2C_Count
\ 00000260 0010D1E5 LDRB R1,[R1, #+0]
\ 00000264 011051E2 SUBS R1,R1,#+1
\ 00000268 0010C0E5 STRB R1,[R0, #+0]
376 if (I2C_Count <= 1) {
\ 0000026C ........ LDR R0,??DataTable63 ;; I2C_Count
\ 00000270 0000D0E5 LDRB R0,[R0, #+0]
\ 00000274 020050E3 CMP R0,#+2
\ 00000278 0200002A BCS ??I2C_ISR_Handler_13
377 I20CONCLR = I2CON_AA;
\ 0000027C ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 00000280 0410A0E3 MOV R1,#+4
\ 00000284 001080E5 STR R1,[R0, #+0]
378 }
379 I20CONCLR = I2CON_STA | I2CON_SI;
\ ??I2C_ISR_Handler_13:
\ 00000288 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 0000028C 2810A0E3 MOV R1,#+40
\ 00000290 001080E5 STR R1,[R0, #+0]
\ 00000294 1C0000EA B ??I2C_ISR_Handler_9
380 break;
381
382 case I2STAT_DAT_R_NOACK:
383 temp = I20DAT;
\ ??I2C_ISR_Handler_7:
\ 00000298 8E02A0E3 MOV R0,#-536870904
\ 0000029C 700B80E3 ORR R0,R0,#0x1C000
\ 000002A0 001090E5 LDR R1,[R0, #+0]
384 *I2C_BufPtr = temp;
\ 000002A4 ........ LDR R0,??DataTable61 ;; I2C_BufPtr
\ 000002A8 000090E5 LDR R0,[R0, #+0]
\ 000002AC 0010C0E5 STRB R1,[R0, #+0]
385 I2C_Count -= 1;
\ 000002B0 ........ LDR R0,??DataTable63 ;; I2C_Count
\ 000002B4 ........ LDR R1,??DataTable63 ;; I2C_Count
\ 000002B8 0010D1E5 LDRB R1,[R1, #+0]
\ 000002BC 011051E2 SUBS R1,R1,#+1
\ 000002C0 0010C0E5 STRB R1,[R0, #+0]
386 I20CONSET = I2CON_STO;
\ 000002C4 E004A0E3 MOV R0,#-536870912
\ 000002C8 700B80E3 ORR R0,R0,#0x1C000
\ 000002CC 1010A0E3 MOV R1,#+16
\ 000002D0 001080E5 STR R1,[R0, #+0]
387 I20CONCLR = I2CON_STA | I2CON_SI;
\ 000002D4 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 000002D8 2810A0E3 MOV R1,#+40
\ 000002DC 001080E5 STR R1,[R0, #+0]
388 OSSemPost(I2C_SemWait);
\ 000002E0 ........ LDR R0,??DataTable65 ;; I2C_SemWait
\ 000002E4 000090E5 LDR R0,[R0, #+0]
\ 000002E8 ........ _BLF OSSemPost,??OSSemPost??rA
389 VICIntEnClear = (1 << VIC_I2C0);
\ 000002EC EB00E0E3 MVN R0,#+235
\ 000002F0 F00EC0E3 BIC R0,R0,#0xF00
\ 000002F4 801FA0E3 MOV R1,#+512
\ 000002F8 001080E5 STR R1,[R0, #+0]
\ 000002FC 020000EA B ??I2C_ISR_Handler_9
390 break;
391
392 default:
393 I20CONCLR = I2CON_STA | I2CON_SI;
\ ??I2C_ISR_Handler_8:
\ 00000300 ........ LDR R0,??DataTable66 ;; 0xffffffffe001c018
\ 00000304 2810A0E3 MOV R1,#+40
\ 00000308 001080E5 STR R1,[R0, #+0]
394 break;
395 }
396 }
\ ??I2C_ISR_Handler_9:
\ 0000030C 0080BDE8 POP {PC} ;; return
\ In segment CODE, align 4, keep-with-next
\ ??DataTable28:
\ 00000000 ........ DC32 I2C_SemBusy
\ In segment CODE, align 4, keep-with-next
\ ??DataTable29:
\ 00000000 ........ DC32 I2C_Address
\ In segment CODE, align 4, keep-with-next
\ ??DataTable61:
\ 00000000 ........ DC32 I2C_BufPtr
\ In segment CODE, align 4, keep-with-next
\ ??DataTable63:
\ 00000000 ........ DC32 I2C_Count
\ In segment CODE, align 4, keep-with-next
\ ??DataTable65:
\ 00000000 ........ DC32 I2C_SemWait
\ In segment CODE, align 4, keep-with-next
\ ??DataTable66:
\ 00000000 18C001E0 DC32 0xffffffffe001c018
Maximum stack usage in bytes:
Function CSTACK
-------- ------
I2C_ISR_Handler 4
I2C_Init 4
I2C_Read 16
I2C_ReadReg 20
I2C_Write 16
Segment part sizes:
Function/Label Bytes
-------------- -----
_A_VICIntSelect 4
_A_VICIntEnable 4
_A_VICIntEnClear 4
VICVectAddr9 4
_A_PINSEL1 4
_A_I2C0CONSET 4
_A_I2C0STAT 4
_A_I2C0DAT 4
_A_I2C0SCLH 4
_A_I2C0SCLL 4
_A_I2C0CONCLR 4
I2C_Address 1
I2C_BufPtr 4
I2C_Count 1
I2C_SemWait 4
I2C_SemBusy 4
I2C_Init 180
I2C_Read 164
I2C_ReadReg 280
I2C_Write 164
I2C_ISR_Handler 784
??DataTable28 4
??DataTable29 4
??DataTable61 4
??DataTable63 4
??DataTable65 4
??DataTable66 4
Others 48
1 632 bytes in segment CODE
44 bytes in segment DATA_AN
14 bytes in segment DATA_Z
12 bytes in segment INITTAB
1 596 bytes of CODE memory (+ 48 bytes shared)
14 bytes of DATA memory (+ 44 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -