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

📄 cstartup_sam7.lst

📁 ARM7x256开发板的了LED测试程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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)
  376:     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)
  377:     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)
  378:     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)
  380: }
 00000038  BC10      POP         {R4}
 0000003A  BC08      POP         {R3}
 0000003C  4718      BX          R3
 0000003E          ENDP ; 'AT91F_PDC_Close?T'


*** CODE SEGMENT '?PR?AT91F_PDC_SendFrame?T?Cstartup_SAM7':
  386: __inline unsigned int AT91F_PDC_SendFrame(
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C1F      MOV         R7,R3 ; pNextBuffer
 00000004  ---- Variable 'pNextBuffer' assigned to Register 'R7' ----
 00000004  1C14      MOV         R4,R2 ; szBuffer
 00000006  ---- Variable 'szBuffer' assigned to Register 'R4' ----
 00000006  1C0D      MOV         R5,R1 ; pBuffer
 00000008  ---- Variable 'pBuffer' assigned to Register 'R5' ----
 00000008  1C06      MOV         R6,R0 ; pPDC
 0000000A  ---- Variable 'pPDC' assigned to Register 'R6' ----
  393:     if (AT91F_PDC_IsTxEmpty(pPDC)) {
 0000000A  1C30      MOV         R0,R6 ; pPDC
 0000000C  F7FF      BL          AT91F_PDC_IsTxEmpty?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          AT91F_PDC_IsTxEmpty?T  ; T=0x0001  (2)
 00000010  2800      CMP         R0,#0x0 ; AT91F_PDC_IsTxEmpty?T
 00000012  D00B      BEQ         L_17  ; T=0x0000002C
  395:         AT91F_PDC_SetTx(pPDC, pBuffer, szBuffer);
 00000014  1C30      MOV         R0,R6 ; pPDC
 00000016  1C29      MOV         R1,R5 ; pBuffer
 00000018  1C22      MOV         R2,R4 ; szBuffer
 0000001A  F7FF      BL          AT91F_PDC_SetTx?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          AT91F_PDC_SetTx?T  ; T=0x0001  (2)
  396:         AT91F_PDC_SetNextTx(pPDC, pNextBuffer, szNextBuffer);
 0000001E  1C30      MOV         R0,R6 ; pPDC
 00000020  1C39      MOV         R1,R7 ; pNextBuffer
 00000022  9A00      LDR         R2,[R13,#0x0] ; szNextBuffer
 00000024  F7FF      BL          AT91F_PDC_SetNextTx?T  ; T=0x0001  (1)
 00000026  FFEC      BL          AT91F_PDC_SetNextTx?T  ; T=0x0001  (2)
  397:         return 2;
 00000028  2002      MOV         R0,#0x2
 0000002A  E00C      B           L_18  ; T=0x00000046
  398:     }
 0000002C          L_17:
  399:     else if (AT91F_PDC_IsNextTxEmpty(pPDC)) {
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 10  

 0000002C  1C30      MOV         R0,R6 ; pPDC
 0000002E  F7FF      BL          AT91F_PDC_IsNextTxEmpty?T  ; T=0x0001  (1)
 00000030  FFE7      BL          AT91F_PDC_IsNextTxEmpty?T  ; T=0x0001  (2)
 00000032  2800      CMP         R0,#0x0 ; AT91F_PDC_IsNextTxEmpty?T
 00000034  D006      BEQ         L_20  ; T=0x00000044
  401:         AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer);
 00000036  1C30      MOV         R0,R6 ; pPDC
 00000038  1C29      MOV         R1,R5 ; pBuffer
 0000003A  1C22      MOV         R2,R4 ; szBuffer
 0000003C  F7FF      BL          AT91F_PDC_SetNextTx?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          AT91F_PDC_SetNextTx?T  ; T=0x0001  (2)
  402:         return 1;
 00000040  2001      MOV         R0,#0x1
 00000042  E000      B           L_18  ; T=0x00000046
  403:     }
 00000044          L_20:
  406:         return 0;
 00000044  2000      MOV         R0,#0x0
  408: }
 00000046          L_18:
 00000046  BCF0      POP         {R4-R7}
 00000048  BC08      POP         {R3}
 0000004A  4718      BX          R3
 0000004C          ENDP ; 'AT91F_PDC_SendFrame?T'


*** CODE SEGMENT '?PR?AT91F_PDC_ReceiveFrame?T?Cstartup_SAM7':
  414: __inline unsigned int AT91F_PDC_ReceiveFrame (
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C1F      MOV         R7,R3 ; pNextBuffer
 00000004  ---- Variable 'pNextBuffer' assigned to Register 'R7' ----
 00000004  1C14      MOV         R4,R2 ; szBuffer
 00000006  ---- Variable 'szBuffer' assigned to Register 'R4' ----
 00000006  1C0D      MOV         R5,R1 ; pBuffer
 00000008  ---- Variable 'pBuffer' assigned to Register 'R5' ----
 00000008  1C06      MOV         R6,R0 ; pPDC
 0000000A  ---- Variable 'pPDC' assigned to Register 'R6' ----
  421:     if (AT91F_PDC_IsRxEmpty(pPDC)) {
 0000000A  1C30      MOV         R0,R6 ; pPDC
 0000000C  F7FF      BL          AT91F_PDC_IsRxEmpty?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          AT91F_PDC_IsRxEmpty?T  ; T=0x0001  (2)
 00000010  2800      CMP         R0,#0x0 ; AT91F_PDC_IsRxEmpty?T
 00000012  D00B      BEQ         L_22  ; T=0x0000002C
  423:         AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer);
 00000014  1C30      MOV         R0,R6 ; pPDC
 00000016  1C29      MOV         R1,R5 ; pBuffer
 00000018  1C22      MOV         R2,R4 ; szBuffer
 0000001A  F7FF      BL          AT91F_PDC_SetRx?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          AT91F_PDC_SetRx?T  ; T=0x0001  (2)
  424:         AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer);
 0000001E  1C30      MOV         R0,R6 ; pPDC
 00000020  1C39      MOV         R1,R7 ; pNextBuffer
 00000022  9A00      LDR         R2,[R13,#0x0] ; szNextBuffer
 00000024  F7FF      BL          AT91F_PDC_SetNextRx?T  ; T=0x0001  (1)
 00000026  FFEC      BL          AT91F_PDC_SetNextRx?T  ; T=0x0001  (2)
  425:         return 2;
 00000028  2002      MOV         R0,#0x2
 0000002A  E00C      B           L_23  ; T=0x00000046
  426:     }
 0000002C          L_22:
  427:     else if (AT91F_PDC_IsNextRxEmpty(pPDC)) {
 0000002C  1C30      MOV         R0,R6 ; pPDC
 0000002E  F7FF      BL          AT91F_PDC_IsNextRxEmpty?T  ; T=0x0001  (1)
 00000030  FFE7      BL          AT91F_PDC_IsNextRxEmpty?T  ; T=0x0001  (2)
 00000032  2800      CMP         R0,#0x0 ; AT91F_PDC_IsNextRxEmpty?T
 00000034  D006      BEQ         L_25  ; T=0x00000044
  429:         AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer);
 00000036  1C30      MOV         R0,R6 ; pPDC
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 11  

 00000038  1C29      MOV         R1,R5 ; pBuffer
 0000003A  1C22      MOV         R2,R4 ; szBuffer
 0000003C  F7FF      BL          AT91F_PDC_SetNextRx?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          AT91F_PDC_SetNextRx?T  ; T=0x0001  (2)
  430:         return 1;
 00000040  2001      MOV         R0,#0x1
 00000042  E000      B           L_23  ; T=0x00000046
  431:     }
 00000044          L_25:
  434:         return 0;
 00000044  2000      MOV         R0,#0x0
  436: }
 00000046          L_23:
 00000046  BCF0      POP         {R4-R7}
 00000048  BC08      POP         {R3}
 0000004A  4718      BX          R3
 0000004C          ENDP ; 'AT91F_PDC_ReceiveFrame?T'


*** CODE SEGMENT '?PR?AT91F_DBGU_GetInterruptMaskStatus?T?Cstartup_SAM7':
  466: __inline unsigned int AT91F_DBGU_GetInterruptMaskStatus( // \return DBGU Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pDbgu
 00000002  ---- Variable 'pDbgu' assigned to Register 'R1' ----
  469:         return pDbgu->DBGU_IMR;
 00000002  1C08      MOV         R0,R1 ; pDbgu
 00000004  6900      LDR         R0,[R0,#0x10]
  470: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_DBGU_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_CfgPeriph?T?Cstartup_SAM7':
  490: __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' ----
  496:     pPio->PIO_ASR = periphAEnable;
 00000006  1C21      MOV         R1,R4 ; periphAEnable
 00000008  1C18      MOV         R0,R3 ; pPio
 0000000A  6701      STR         R1,[R0,#0x70]
  497:     pPio->PIO_BSR = periphBEnable;
 0000000C  1C11      MOV         R1,R2 ; periphBEnable
 0000000E  1C18      MOV         R0,R3 ; pPio
 00000010  6741      STR         R1,[R0,#0x74]
  498:     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]
  499: }
 0000001C  BC10      POP         {R4}
 0000001E  4770      BX          R14
 00000020          ENDP ; 'AT91F_PIO_CfgPeriph?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetInput?T?Cstartup_SAM7':
  584: __inline unsigned int AT91F_PIO_GetInput( // \return PIO input
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  587:     return pPio->PIO_PDSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6BC0      LDR         R0,[R0,#0x3C]
  588: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetInput?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetStatus?T?Cstartup_SAM7':
  661: __inline unsigned int AT91F_PIO_GetStatus( // \return PIO Status
 00000000  1C01      MOV         R1,R0 ; pPio
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 12  

 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  664:         return pPio->PIO_PSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6880      LDR         R0,[R0,#0x8]
  665: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputStatus?T?Cstartup_SAM7':
  704: __inline unsigned int AT91F_PIO_GetOutputStatus( // \return PIO Output Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  707:         return pPio->PIO_OSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6980      LDR         R0,[R0,#0x18]
  708: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetOutputStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetInputFilterStatus?T?Cstartup_SAM7':
  747: __inline unsigned int AT91F_PIO_GetInputFilterStatus( // \return PIO Input Filter Status
 00000000  1C01      MOV         R1,R0 ; pPio
 00000002  ---- Variable 'pPio' assigned to Register 'R1' ----
  750:         return pPio->PIO_IFSR;
 00000002  1C08      MOV         R0,R1 ; pPio
 00000004  6A80      LDR         R0,[R0,#0x28]
  751: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PIO_GetInputFilterStatus?T'


*** CODE SEGMENT '?PR?AT91F_PIO_GetOutputDataStatus?T?Cstartup_SAM7':
  768: __inline unsigned int AT91F_PIO_GetOutputDataStatus( // \return PIO Output Data Status 
 00000000  1C01      MOV         R1,R0 ; pPio
 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?Cstartup_SAM7':
  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?Cstartup_SAM7':
  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]

⌨️ 快捷键说明

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