📄 lib_twi.lst
字号:
*** CODE SEGMENT '?PR?AT91F_PMC_EnablePeriphClock?T?lib_twi':
1051: __inline void AT91F_PMC_EnablePeriphClock (
00000000 1C0B MOV R3,R1 ; periphIds
00000002 ---- Variable 'periphIds' assigned to Register 'R3' ----
00000002 1C02 MOV R2,R0 ; pPMC
00000004 ---- Variable 'pPMC' assigned to Register 'R2' ----
1055: pPMC->PMC_PCER = periphIds;
00000004 1C19 MOV R1,R3 ; periphIds
00000006 1C10 MOV R0,R2 ; pPMC
00000008 6101 STR R1,[R0,#0x10]
1056: }
0000000A 4770 BX R14
0000000C ENDP ; 'AT91F_PMC_EnablePeriphClock?T'
*** CODE SEGMENT '?PR?AT91F_CKGR_GetMainClock?T?lib_twi':
1147: __inline unsigned int AT91F_CKGR_GetMainClock (
00000000 1C0A MOV R2,R1 ; slowClock
00000002 ---- Variable 'slowClock' assigned to Register 'R2' ----
00000002 1C01 MOV R1,R0 ; pCKGR
00000004 ---- Variable 'pCKGR' assigned to Register 'R1' ----
1151: return ((pCKGR->CKGR_MCFR & AT91C_CKGR_MAINF) * slowClock) >> 4;
00000004 1C08 MOV R0,R1 ; pCKGR
00000006 6840 LDR R0,[R0,#0x4]
00000008 4800 LDR R1,=0xFFFF
0000000A 4008 AND R0,R1
0000000C 1C11 MOV R1,R2 ; slowClock
0000000E 4348 MUL R0,R1 ; slowClock
00000010 0900 LSR R0,R0,#0x4
1152: }
00000012 4770 BX R14
00000014 ENDP ; 'AT91F_CKGR_GetMainClock?T'
*** CODE SEGMENT '?PR?AT91F_PMC_GetStatus?T?lib_twi':
1254: __inline unsigned int AT91F_PMC_GetStatus( // \return PMC Interrupt Status
00000000 1C01 MOV R1,R0 ; pPMC
00000002 ---- Variable 'pPMC' assigned to Register 'R1' ----
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 14
1257: return pPMC->PMC_SR;
00000002 1C08 MOV R0,R1 ; pPMC
00000004 6E80 LDR R0,[R0,#0x68]
1258: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PMC_GetStatus?T'
*** CODE SEGMENT '?PR?AT91F_PMC_GetInterruptMaskStatus?T?lib_twi':
1264: __inline unsigned int AT91F_PMC_GetInterruptMaskStatus( // \return PMC Interrupt Mask Status
00000000 1C01 MOV R1,R0 ; pPMC
00000002 ---- Variable 'pPMC' assigned to Register 'R1' ----
1267: return pPMC->PMC_IMR;
00000002 1C08 MOV R0,R1 ; pPMC
00000004 6EC0 LDR R0,[R0,#0x6C]
1268: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PMC_GetInterruptMaskStatus?T'
*** CODE SEGMENT '?PR?AT91F_ADC_GetStatus?T?lib_twi':
1321: __inline unsigned int AT91F_ADC_GetStatus( // \return ADC Interrupt Status
00000000 1C01 MOV R1,R0 ; pADC
00000002 ---- Variable 'pADC' assigned to Register 'R1' ----
1324: return pADC->ADC_SR;
00000002 1C08 MOV R0,R1 ; pADC
00000004 69C0 LDR R0,[R0,#0x1C]
1325: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_ADC_GetStatus?T'
*** CODE SEGMENT '?PR?AT91F_ADC_GetInterruptMaskStatus?T?lib_twi':
1331: __inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status
00000000 1C01 MOV R1,R0 ; pADC
00000002 ---- Variable 'pADC' assigned to Register 'R1' ----
1334: return pADC->ADC_IMR;
00000002 1C08 MOV R0,R1 ; pADC
00000004 6AC0 LDR R0,[R0,#0x2C]
1335: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_ADC_GetInterruptMaskStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_CfgPeriph?T?lib_twi':
1566: __inline void AT91F_PIO_CfgPeriph(
00000000 B410 PUSH {R4}
00000002 ---- Variable 'periphBEnable' assigned to Register 'R2' ----
00000002 1C0C MOV R4,R1 ; periphAEnable
00000004 ---- Variable 'periphAEnable' assigned to Register 'R4' ----
00000004 1C03 MOV R3,R0 ; pPio
00000006 ---- Variable 'pPio' assigned to Register 'R3' ----
1572: pPio->PIO_ASR = periphAEnable;
00000006 1C21 MOV R1,R4 ; periphAEnable
00000008 1C18 MOV R0,R3 ; pPio
0000000A 6701 STR R1,[R0,#0x70]
1573: pPio->PIO_BSR = periphBEnable;
0000000C 1C11 MOV R1,R2 ; periphBEnable
0000000E 1C18 MOV R0,R3 ; pPio
00000010 6741 STR R1,[R0,#0x74]
1574: pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode
00000012 1C10 MOV R0,R2 ; periphBEnable
00000014 1C21 MOV R1,R4 ; periphAEnable
00000016 4301 ORR R1,R0 ; periphBEnable
00000018 1C18 MOV R0,R3 ; pPio
0000001A 6041 STR R1,[R0,#0x4]
1575: }
0000001C BC10 POP {R4}
0000001E 4770 BX R14
00000020 ENDP ; 'AT91F_PIO_CfgPeriph?T'
*** CODE SEGMENT '?PR?AT91F_PIO_CfgOpendrain?T?lib_twi':
1606: __inline void AT91F_PIO_CfgOpendrain(
00000000 1C0B MOV R3,R1 ; multiDrvEnable
00000002 ---- Variable 'multiDrvEnable' assigned to Register 'R3' ----
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 15
00000002 1C02 MOV R2,R0 ; pPio
00000004 ---- Variable 'pPio' assigned to Register 'R2' ----
1611: pPio->PIO_MDDR = ~multiDrvEnable;
00000004 1C19 MOV R1,R3 ; multiDrvEnable
00000006 43C9 MVN R1,R1 ; multiDrvEnable
00000008 1C10 MOV R0,R2 ; pPio
0000000A 6541 STR R1,[R0,#0x54]
1612: pPio->PIO_MDER = multiDrvEnable;
0000000C 1C19 MOV R1,R3 ; multiDrvEnable
0000000E 1C10 MOV R0,R2 ; pPio
00000010 6501 STR R1,[R0,#0x50]
1613: }
00000012 4770 BX R14
00000014 ENDP ; 'AT91F_PIO_CfgOpendrain?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetInput?T?lib_twi':
1660: __inline unsigned int AT91F_PIO_GetInput( // \return PIO input
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1663: return pPio->PIO_PDSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6BC0 LDR R0,[R0,#0x3C]
1664: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetInput?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetStatus?T?lib_twi':
1737: __inline unsigned int AT91F_PIO_GetStatus( // \return PIO Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1740: return pPio->PIO_PSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6880 LDR R0,[R0,#0x8]
1741: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputStatus?T?lib_twi':
1780: __inline unsigned int AT91F_PIO_GetOutputStatus( // \return PIO Output Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1783: return pPio->PIO_OSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6980 LDR R0,[R0,#0x18]
1784: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetOutputStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetInputFilterStatus?T?lib_twi':
1823: __inline unsigned int AT91F_PIO_GetInputFilterStatus( // \return PIO Input Filter Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1826: return pPio->PIO_IFSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6A80 LDR R0,[R0,#0x28]
1827: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetInputFilterStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputDataStatus?T?lib_twi':
1844: __inline unsigned int AT91F_PIO_GetOutputDataStatus( // \return PIO Output Data Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1847: return pPio->PIO_ODSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6B80 LDR R0,[R0,#0x38]
1848: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetOutputDataStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetInterruptMaskStatus?T?lib_twi':
1876: __inline unsigned int AT91F_PIO_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 16
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1879: return pPio->PIO_IMR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6C80 LDR R0,[R0,#0x48]
1880: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetInterruptMaskStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetInterruptStatus?T?lib_twi':
1886: __inline unsigned int AT91F_PIO_GetInterruptStatus( // \return PIO Interrupt Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1889: return pPio->PIO_ISR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6CC0 LDR R0,[R0,#0x4C]
1890: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetInterruptStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetMultiDriverStatus?T?lib_twi':
1940: __inline unsigned int AT91F_PIO_GetMultiDriverStatus( // \return PIO Multi Driver Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1943: return pPio->PIO_MDSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6D80 LDR R0,[R0,#0x58]
1944: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetMultiDriverStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_Get_AB_RegisterStatus?T?lib_twi':
1983: __inline unsigned int AT91F_PIO_Get_AB_RegisterStatus( // \return PIO AB Register Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
1986: return pPio->PIO_ABSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6F80 LDR R0,[R0,#0x78]
1987: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_Get_AB_RegisterStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputWriteStatus?T?lib_twi':
2026: __inline unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
2029: return pPio->PIO_OWSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 30A8 ADD R0,#0xA8
00000006 6800 LDR R0,[R0,#0x0]
2030: }
00000008 4770 BX R14
0000000A ENDP ; 'AT91F_PIO_GetOutputWriteStatus?T'
*** CODE SEGMENT '?PR?AT91F_PIO_GetCfgPullup?T?lib_twi':
2047: __inline unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup
00000000 1C01 MOV R1,R0 ; pPio
00000002 ---- Variable 'pPio' assigned to Register 'R1' ----
2050: return pPio->PIO_PPUSR;
00000002 1C08 MOV R0,R1 ; pPio
00000004 6E80 LDR R0,[R0,#0x68]
2051: }
00000006 4770 BX R14
00000008 ENDP ; 'AT91F_PIO_GetCfgPullup?T'
*** CODE SEGMENT '?PR?AT91F_TWI_Configure?T?lib_twi':
2106: __inline void AT91F_TWI_Configure ( AT91PS_TWI pTWI ) // \arg pointer to a TWI controller
00000000 1C02 MOV R2,R0 ; pTWI
00000002 ---- Variable 'pTWI' assigned to Register 'R2' ----
2109: pTWI->TWI_IDR = (unsigned int) -1;
00000002 4800 LDR R1,=0xFFFFFFFF
00000004 1C10 MOV R0,R2 ; pTWI
ARM COMPILER V2.53, lib_twi 19/07/06 08:38:07 PAGE 17
00000006 6281 STR R1,[R0,#0x28]
2112: pTWI->TWI_CR = AT91C_TWI_SWRST;
00000008 2180 MOV R1,#0x80
0000000A 1C10 MOV R0,R2 ; pTWI
0000000C 6001 STR R1,[R0,#0x0] ; pTWI
2115: pTWI->TWI_CR = AT91C_TWI_MSEN; // | AT91C_TWI_SVDIS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -