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

📄 main.lst

📁 ARM7x256开发板的了LED测试程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  771:         return pPio->PIO_ODSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6B80      LDR         R0,[R0,#0x38]
  772: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetOutputDataStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetInterruptMaskStatus?T?main':
  800: __inline unsigned int AT91F_PIO_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  803:         return pPio->PIO_IMR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6C80      LDR         R0,[R0,#0x48]
  804: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetInterruptStatus?T?main':
  810: __inline unsigned int AT91F_PIO_GetInterruptStatus( // \return PIO Interrupt Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  813:         return pPio->PIO_ISR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6CC0      LDR         R0,[R0,#0x4C]
  814: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetInterruptStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetMultiDriverStatus?T?main':
  864: __inline unsigned int AT91F_PIO_GetMultiDriverStatus( // \return PIO Multi Driver Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  867:         return pPio->PIO_MDSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6D80      LDR         R0,[R0,#0x58]
  868: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetMultiDriverStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_Get_AB_RegisterStatus?T?main':
  907: __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' ----
  910:         return pPio->PIO_ABSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6F80      LDR         R0,[R0,#0x78]
  911: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_Get_AB_RegisterStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputWriteStatus?T?main':
  950: __inline unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  953:         return pPio->PIO_OWSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  30A8      ADD         R0,#0xA8
 00000006  6800      LDR         R0,[R0,#0x0]
  954: }
 00000008  4770      BX          R14
 0000000A          ENDP ; 'AT91F_PIO_GetOutputWriteStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetCfgPullup?T?main':
  971: __inline unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup 
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 14  

 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  974:         return pPio->PIO_PPUSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6E80      LDR         R0,[R0,#0x68]
  975: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetCfgPullup?T'


*** CODE SEGMENT '?PR?AT91F_PMC_EnablePeriphClock?T?main':
 1041: __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' ----
 1045:     pPMC->PMC_PCER = periphIds;
 00000004  1C19      MOV         R1,R3 ; periphIds
 00000006  1C10      MOV         R0,R2 ; pPMC
 00000008  6101      STR         R1,[R0,#0x10]
 1046: }
 0000000A  4770      BX          R14
 0000000C          ENDP ; 'AT91F_PMC_EnablePeriphClock?T'


*** CODE SEGMENT '?PR?AT91F_CKGR_GetMainClock?T?main':
 1137: __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' ----
 1141:     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
 1142: }
 00000012  4770      BX          R14
 00000014          ENDP ; 'AT91F_CKGR_GetMainClock?T'


*** CODE SEGMENT '?PR?AT91F_PMC_GetStatus?T?main':
 1244: __inline unsigned int AT91F_PMC_GetStatus( // \return PMC Interrupt Status
 00000000  1C01      MOV         R1,R0 ; pPMC
 00000002  ---- Variable 'pPMC' assigned to Register 'R1' ----
 1247:     return pPMC->PMC_SR;
 00000002  1C08      MOV         R0,R1 ; pPMC
 00000004  6E80      LDR         R0,[R0,#0x68]
 1248: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PMC_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_PMC_GetInterruptMaskStatus?T?main':
 1254: __inline unsigned int AT91F_PMC_GetInterruptMaskStatus( // \return PMC Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pPMC
 00000002  ---- Variable 'pPMC' assigned to Register 'R1' ----
 1257:     return pPMC->PMC_IMR;
 00000002  1C08      MOV         R0,R1 ; pPMC
 00000004  6EC0      LDR         R0,[R0,#0x6C]
 1258: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PMC_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_MC_EFC_GetModeReg?T?main':
 1670: __inline unsigned int AT91F_MC_EFC_GetModeReg(
 00000000  1C01      MOV         R1,R0 ; pMC
 00000002  ---- Variable 'pMC' assigned to Register 'R1' ----
 1673:     return pMC->MC_FMR;
 00000002  1C08      MOV         R0,R1 ; pMC
 00000004  6E00      LDR         R0,[R0,#0x60]
 1674: }
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 15  

 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_MC_EFC_GetModeReg?T'


*** CODE SEGMENT '?PR?AT91F_MC_EFC_GetStatus?T?main':
 1701: __inline unsigned int AT91F_MC_EFC_GetStatus(
 00000000  1C01      MOV         R1,R0 ; pMC
 00000002  ---- Variable 'pMC' assigned to Register 'R1' ----
 1704:     return pMC->MC_FSR;
 00000002  1C08      MOV         R0,R1 ; pMC
 00000004  6E80      LDR         R0,[R0,#0x68]
 1705: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_MC_EFC_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_SPI_GetInterruptMaskStatus?T?main':
 1922: __inline unsigned int AT91F_SPI_GetInterruptMaskStatus( // \return SPI Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pSpi
 00000002  ---- Variable 'pSpi' assigned to Register 'R1' ----
 1925:         return pSpi->SPI_IMR;
 00000002  1C08      MOV         R0,R1 ; pSpi
 00000004  69C0      LDR         R0,[R0,#0x1C]
 1926: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_SPI_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_US_Baudrate?T?main':
 1990: __inline unsigned int AT91F_US_Baudrate (
 00000000  B500      PUSH        {LR}
 00000002  1C0B      MOV         R3,R1 ; baud_rate
 00000004  ---- Variable 'baud_rate' assigned to Register 'R3' ----
 00000004  1C02      MOV         R2,R0 ; main_clock
 00000006  ---- Variable 'main_clock' assigned to Register 'R2' ----
 1993: {
 00000006            ; SCOPE-START
 1994:     unsigned int baud_value = ((main_clock*10)/(baud_rate * 16));
 00000006  1C19      MOV         R1,R3 ; baud_rate
 00000008  0109      LSL         R1,R1,#0x4 ; baud_rate
 0000000A  1C10      MOV         R0,R2 ; main_clock
 0000000C  230A      MOV         R3,#0xA
 0000000E  4358      MUL         R0,R3
 00000010  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000012  FFF6      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000014  1C08      MOV         R0,R1
 00000016  1C02      MOV         R2,R0 ; baud_value
 00000018  ---- Variable 'baud_value' assigned to Register 'R2' ----
 1995:     if ((baud_value % 10) >= 5)
 00000018  1C10      MOV         R0,R2 ; baud_value
 0000001A  1C19      MOV         R1,R3
 0000001C  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 0000001E  FFF0      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000020  1C01      MOV         R1,R0
 00000022  2905      CMP         R1,#0x5
 00000024  D307      BCC         L_45  ; T=0x00000036
 1996:         baud_value = (baud_value / 10) + 1;
 00000026  1C10      MOV         R0,R2 ; baud_value
 00000028  1C19      MOV         R1,R3
 0000002A  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 0000002C  FFE9      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 0000002E  1C08      MOV         R0,R1
 00000030  1C02      MOV         R2,R0
 00000032  3201      ADD         R2,#0x1
 00000034  E005      B           L_46  ; T=0x00000042
 00000036          L_45:
 1998:         baud_value /= 10;
 00000036  1C10      MOV         R0,R2 ; baud_value
 00000038  1C19      MOV         R1,R3
 0000003A  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 0000003C  FFE1      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 0000003E  1C08      MOV         R0,R1
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 16  

 00000040  1C02      MOV         R2,R0 ; baud_value
 00000042          L_46:
 1999:     return baud_value;
 00000042  1C10      MOV         R0,R2 ; baud_value
 00000044            ; SCOPE-END
 2000: }
 00000044  BC08      POP         {R3}
 00000046  4718      BX          R3
 00000048          ENDP ; 'AT91F_US_Baudrate?T'


*** CODE SEGMENT '?PR?AT91F_US_SetBaudrate?T?main':
 2006: __inline void AT91F_US_SetBaudrate (
 00000000  B510      PUSH        {R4,LR}
 00000002  ---- Variable 'speed' assigned to Register 'R2' ----
 00000002  ---- Variable 'mainClock' assigned to Register 'R1' ----
 00000002  1C04      MOV         R4,R0 ; pUSART
 00000004  ---- Variable 'pUSART' assigned to Register 'R4' ----
 2012:     pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed);
 00000004  1C08      MOV         R0,R1 ; mainClock
 00000006  1C11      MOV         R1,R2 ; speed
 00000008  F7FF      BL          AT91F_US_Baudrate?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          AT91F_US_Baudrate?T  ; T=0x0001  (2)
 0000000C  1C21      MOV         R1,R4 ; pUSART
 0000000E  6208      STR         R0,[R1,#0x20]
 2013: }
 00000010  BC10      POP         {R4}
 00000012  BC08      POP         {R3}
 00000014  4718      BX          R3
 00000016          ENDP ; 'AT91F_US_SetBaudrate?T'


*** CODE SEGMENT '?PR?AT91F_US_SetTimeguard?T?main':
 2019: __inline void AT91F_US_SetTimeguard (
 00000000  1C0B      MOV         R3,R1 ; timeguard
 00000002  ---- Variable 'timeguard' assigned to Register 'R3' ----
 00000002  1C02      MOV         R2,R0 ; pUSART
 00000004  ---- Variable 'pUSART' assigned to Register 'R2' ----
 2024:     pUSART->US_TTGR = timeguard ;
 00000004  1C19      MOV         R1,R3 ; timeguard
 00000006  1C10      MOV         R0,R2 ; pUSART
 00000008  6281      STR         R1,[R0,#0x28]
 2025: }
 0000000A  4770      BX          R14
 0000000C          ENDP ; 'AT91F_US_SetTimeguard?T'


*** CODE SEGMENT '?PR?AT91F_SSC_SetBaudrate?T?main':

⌨️ 快捷键说明

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