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

📄 lib_twi.lst

📁 atmelsam7s64twi完美底层驱动
💻 LST
📖 第 1 页 / 共 5 页
字号:

*** 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 + -