📄 lib_twi.lst
字号:
00000014 4770 BX R14
00000016 ENDP ; 'AT91F_PDC_SetNextRx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_SetNextTx?T?lib_twi':
145: __inline void AT91F_PDC_SetNextTx (
00000000 B410 PUSH {R4}
00000002 ---- Variable 'bytes' assigned to Register 'R2' ----
00000002 1C0C MOV R4,R1 ; address
00000004 ---- Variable 'address' assigned to Register 'R4' ----
00000004 1C03 MOV R3,R0 ; pPDC
00000006 ---- Variable 'pPDC' assigned to Register 'R3' ----
150: pPDC->PDC_TNPR = (unsigned int) address;
00000006 1C21 MOV R1,R4 ; address
00000008 1C18 MOV R0,R3 ; pPDC
0000000A 6181 STR R1,[R0,#0x18]
151: pPDC->PDC_TNCR = bytes;
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 6
0000000C 1C11 MOV R1,R2 ; bytes
0000000E 1C18 MOV R0,R3 ; pPDC
00000010 61C1 STR R1,[R0,#0x1C]
152: }
00000012 BC10 POP {R4}
00000014 4770 BX R14
00000016 ENDP ; 'AT91F_PDC_SetNextTx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_SetRx?T?lib_twi':
158: __inline void AT91F_PDC_SetRx (
00000000 B410 PUSH {R4}
00000002 ---- Variable 'bytes' assigned to Register 'R2' ----
00000002 1C0C MOV R4,R1 ; address
00000004 ---- Variable 'address' assigned to Register 'R4' ----
00000004 1C03 MOV R3,R0 ; pPDC
00000006 ---- Variable 'pPDC' assigned to Register 'R3' ----
163: pPDC->PDC_RPR = (unsigned int) address;
00000006 1C21 MOV R1,R4 ; address
00000008 1C18 MOV R0,R3 ; pPDC
0000000A 6001 STR R1,[R0,#0x0] ; pPDC
164: pPDC->PDC_RCR = bytes;
0000000C 1C11 MOV R1,R2 ; bytes
0000000E 1C18 MOV R0,R3 ; pPDC
00000010 6041 STR R1,[R0,#0x4]
165: }
00000012 BC10 POP {R4}
00000014 4770 BX R14
00000016 ENDP ; 'AT91F_PDC_SetRx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_SetTx?T?lib_twi':
171: __inline void AT91F_PDC_SetTx (
00000000 B410 PUSH {R4}
00000002 ---- Variable 'bytes' assigned to Register 'R2' ----
00000002 1C0C MOV R4,R1 ; address
00000004 ---- Variable 'address' assigned to Register 'R4' ----
00000004 1C03 MOV R3,R0 ; pPDC
00000006 ---- Variable 'pPDC' assigned to Register 'R3' ----
176: pPDC->PDC_TPR = (unsigned int) address;
00000006 1C21 MOV R1,R4 ; address
00000008 1C18 MOV R0,R3 ; pPDC
0000000A 6081 STR R1,[R0,#0x8]
177: pPDC->PDC_TCR = bytes;
0000000C 1C11 MOV R1,R2 ; bytes
0000000E 1C18 MOV R0,R3 ; pPDC
00000010 60C1 STR R1,[R0,#0xC]
178: }
00000012 BC10 POP {R4}
00000014 4770 BX R14
00000016 ENDP ; 'AT91F_PDC_SetTx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_EnableTx?T?lib_twi':
184: __inline void AT91F_PDC_EnableTx (
00000000 1C02 MOV R2,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R2' ----
187: pPDC->PDC_PTCR = AT91C_PDC_TXTEN;
00000002 4940 LDR R1,=0x100
00000004 1C10 MOV R0,R2 ; pPDC
00000006 6201 STR R1,[R0,#0x20]
188: }
00000008 4770 BX R14
0000000A ENDP ; 'AT91F_PDC_EnableTx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_EnableRx?T?lib_twi':
194: __inline void AT91F_PDC_EnableRx (
00000000 1C02 MOV R2,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R2' ----
197: pPDC->PDC_PTCR = AT91C_PDC_RXTEN;
00000002 2101 MOV R1,#0x1
00000004 1C10 MOV R0,R2 ; pPDC
00000006 6201 STR R1,[R0,#0x20]
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 7
198: }
00000008 4770 BX R14
0000000A ENDP ; 'AT91F_PDC_EnableRx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_DisableTx?T?lib_twi':
204: __inline void AT91F_PDC_DisableTx (
00000000 1C02 MOV R2,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R2' ----
207: pPDC->PDC_PTCR = AT91C_PDC_TXTDIS;
00000002 4980 LDR R1,=0x200
00000004 1C10 MOV R0,R2 ; pPDC
00000006 6201 STR R1,[R0,#0x20]
208: }
00000008 4770 BX R14
0000000A ENDP ; 'AT91F_PDC_DisableTx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_DisableRx?T?lib_twi':
214: __inline void AT91F_PDC_DisableRx (
00000000 1C02 MOV R2,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R2' ----
217: pPDC->PDC_PTCR = AT91C_PDC_RXTDIS;
00000002 2102 MOV R1,#0x2
00000004 1C10 MOV R0,R2 ; pPDC
00000006 6201 STR R1,[R0,#0x20]
218: }
00000008 4770 BX R14
0000000A ENDP ; 'AT91F_PDC_DisableRx?T'
*** CODE SEGMENT '?PR?AT91F_PDC_IsTxEmpty?T?lib_twi':
224: __inline int AT91F_PDC_IsTxEmpty ( // \return return 1 if transfer is complete
00000000 1C01 MOV R1,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R1' ----
227: return !(pPDC->PDC_TCR);
00000002 1C08 MOV R0,R1 ; pPDC
00000004 68C0 LDR R0,[R0,#0xC]
00000006 2800 CMP R0,#0x0
00000008 D101 BNE L_4 ; T=0x0000000E
0000000A 2001 MOV R0,#0x1
0000000C E000 B L_5 ; T=0x00000010
0000000E L_4:
0000000E 2000 MOV R0,#0x0
00000010 L_5:
228: }
00000010 4770 BX R14
00000012 ENDP ; 'AT91F_PDC_IsTxEmpty?T'
*** CODE SEGMENT '?PR?AT91F_PDC_IsNextTxEmpty?T?lib_twi':
234: __inline int AT91F_PDC_IsNextTxEmpty ( // \return return 1 if transfer is complete
00000000 1C01 MOV R1,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R1' ----
237: return !(pPDC->PDC_TNCR);
00000002 1C08 MOV R0,R1 ; pPDC
00000004 69C0 LDR R0,[R0,#0x1C]
00000006 2800 CMP R0,#0x0
00000008 D101 BNE L_7 ; T=0x0000000E
0000000A 2001 MOV R0,#0x1
0000000C E000 B L_8 ; T=0x00000010
0000000E L_7:
0000000E 2000 MOV R0,#0x0
00000010 L_8:
238: }
00000010 4770 BX R14
00000012 ENDP ; 'AT91F_PDC_IsNextTxEmpty?T'
*** CODE SEGMENT '?PR?AT91F_PDC_IsRxEmpty?T?lib_twi':
244: __inline int AT91F_PDC_IsRxEmpty ( // \return return 1 if transfer is complete
00000000 1C01 MOV R1,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R1' ----
247: return !(pPDC->PDC_RCR);
00000002 1C08 MOV R0,R1 ; pPDC
00000004 6840 LDR R0,[R0,#0x4]
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 8
00000006 2800 CMP R0,#0x0
00000008 D101 BNE L_10 ; T=0x0000000E
0000000A 2001 MOV R0,#0x1
0000000C E000 B L_11 ; T=0x00000010
0000000E L_10:
0000000E 2000 MOV R0,#0x0
00000010 L_11:
248: }
00000010 4770 BX R14
00000012 ENDP ; 'AT91F_PDC_IsRxEmpty?T'
*** CODE SEGMENT '?PR?AT91F_PDC_IsNextRxEmpty?T?lib_twi':
254: __inline int AT91F_PDC_IsNextRxEmpty ( // \return return 1 if transfer is complete
00000000 1C01 MOV R1,R0 ; pPDC
00000002 ---- Variable 'pPDC' assigned to Register 'R1' ----
257: return !(pPDC->PDC_RNCR);
00000002 1C08 MOV R0,R1 ; pPDC
00000004 6940 LDR R0,[R0,#0x14]
00000006 2800 CMP R0,#0x0
00000008 D101 BNE L_13 ; T=0x0000000E
0000000A 2001 MOV R0,#0x1
0000000C E000 B L_14 ; T=0x00000010
0000000E L_13:
0000000E 2000 MOV R0,#0x0
00000010 L_14:
258: }
00000010 4770 BX R14
00000012 ENDP ; 'AT91F_PDC_IsNextRxEmpty?T'
*** CODE SEGMENT '?PR?AT91F_PDC_Open?T?lib_twi':
264: __inline void AT91F_PDC_Open (
00000000 B510 PUSH {R4,LR}
00000002 1C04 MOV R4,R0 ; pPDC
00000004 ---- Variable 'pPDC' assigned to Register 'R4' ----
268: AT91F_PDC_DisableRx(pPDC);
00000004 1C20 MOV R0,R4 ; pPDC
00000006 F7FF BL AT91F_PDC_DisableRx?T ; T=0x0001 (1)
00000008 FFFB BL AT91F_PDC_DisableRx?T ; T=0x0001 (2)
269: AT91F_PDC_DisableTx(pPDC);
0000000A 1C20 MOV R0,R4 ; pPDC
0000000C F7FF BL AT91F_PDC_DisableTx?T ; T=0x0001 (1)
0000000E FFF8 BL AT91F_PDC_DisableTx?T ; T=0x0001 (2)
272: AT91F_PDC_SetNextTx(pPDC, (char *) 0, 0);
00000010 1C20 MOV R0,R4 ; pPDC
00000012 2100 MOV R1,#0x0
00000014 2200 MOV R2,#0x0
00000016 F7FF BL AT91F_PDC_SetNextTx?T ; T=0x0001 (1)
00000018 FFF3 BL AT91F_PDC_SetNextTx?T ; T=0x0001 (2)
273: AT91F_PDC_SetNextRx(pPDC, (char *) 0, 0);
0000001A 1C20 MOV R0,R4 ; pPDC
0000001C 2100 MOV R1,#0x0
0000001E 2200 MOV R2,#0x0
00000020 F7FF BL AT91F_PDC_SetNextRx?T ; T=0x0001 (1)
00000022 FFEE BL AT91F_PDC_SetNextRx?T ; T=0x0001 (2)
274: AT91F_PDC_SetTx(pPDC, (char *) 0, 0);
00000024 1C20 MOV R0,R4 ; pPDC
00000026 2100 MOV R1,#0x0
00000028 2200 MOV R2,#0x0
0000002A F7FF BL AT91F_PDC_SetTx?T ; T=0x0001 (1)
0000002C FFE9 BL AT91F_PDC_SetTx?T ; T=0x0001 (2)
275: AT91F_PDC_SetRx(pPDC, (char *) 0, 0);
0000002E 1C20 MOV R0,R4 ; pPDC
00000030 2100 MOV R1,#0x0
00000032 2200 MOV R2,#0x0
00000034 F7FF BL AT91F_PDC_SetRx?T ; T=0x0001 (1)
00000036 FFE4 BL AT91F_PDC_SetRx?T ; T=0x0001 (2)
278: AT91F_PDC_EnableRx(pPDC);
00000038 1C20 MOV R0,R4 ; pPDC
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 9
0000003A F7FF BL AT91F_PDC_EnableRx?T ; T=0x0001 (1)
0000003C FFE1 BL AT91F_PDC_EnableRx?T ; T=0x0001 (2)
279: AT91F_PDC_EnableTx(pPDC);
0000003E 1C20 MOV R0,R4 ; pPDC
00000040 F7FF BL AT91F_PDC_EnableTx?T ; T=0x0001 (1)
00000042 FFDE BL AT91F_PDC_EnableTx?T ; T=0x0001 (2)
280: }
00000044 BC10 POP {R4}
00000046 BC08 POP {R3}
00000048 4718 BX R3
0000004A ENDP ; 'AT91F_PDC_Open?T'
*** CODE SEGMENT '?PR?AT91F_PDC_Close?T?lib_twi':
286: __inline void AT91F_PDC_Close (
00000000 B510 PUSH {R4,LR}
00000002 1C04 MOV R4,R0 ; pPDC
00000004 ---- Variable 'pPDC' assigned to Register 'R4' ----
290: AT91F_PDC_DisableRx(pPDC);
00000004 1C20 MOV R0,R4 ; pPDC
00000006 F7FF BL AT91F_PDC_DisableRx?T ; T=0x0001 (1)
00000008 FFFB BL AT91F_PDC_DisableRx?T ; T=0x0001 (2)
291: AT91F_PDC_DisableTx(pPDC);
0000000A 1C20 MOV R0,R4 ; pPDC
0000000C F7FF BL AT91F_PDC_DisableTx?T ; T=0x0001 (1)
0000000E FFF8 BL AT91F_PDC_DisableTx?T ; T=0x0001 (2)
294: AT91F_PDC_SetNextTx(pPDC, (char *) 0, 0);
00000010 1C20 MOV R0,R4 ; pPDC
00000012 2100 MOV R1,#0x0
00000014 2200 MOV R2,#0x0
00000016 F7FF BL AT91F_PDC_SetNextTx?T ; T=0x0001 (1)
00000018 FFF3 BL AT91F_PDC_SetNextTx?T ; T=0x0001 (2)
295: AT91F_PDC_SetNextRx(pPDC, (char *) 0, 0);
0000001A 1C20 MOV R0,R4 ; pPDC
0000001C 2100 MOV R1,#0x0
0000001E 2200 MOV R2,#0x0
00000020 F7FF BL AT91F_PDC_SetNextRx?T ; T=0x0001 (1)
00000022 FFEE BL AT91F_PDC_SetNextRx?T ; T=0x0001 (2)
296: AT91F_PDC_SetTx(pPDC, (char *) 0, 0);
00000024 1C20 MOV R0,R4 ; pPDC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -