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

📄 interrupt_usart.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 2 页
字号:
     76          		USART_pt->US_CR = AT91C_US_STTTO;
   \   0000003C   D000               LSL         R0,R2,#+0x3
   \   0000003E   1860               STR         R0,[R3, #+0]
     77          		 AT91F_US_PutChar (USART_pt, 'T');
   \   00000040   5420               MOV         R0,#+0x54
   \   00000042   0860               STR         R0,[R1, #+0]
     78          	}
     79          
     80          	//* Reset the satus bit
     81          	 USART_pt->US_CR = AT91C_US_RSTSTA;
   \                     ??Usart_c_irq_handler_5:
   \   00000044   1A60               STR         R2,[R3, #+0]
     82          }
   \   00000046   10BC               POP         {R4}
   \   00000048   7047               BX          LR                 ;; return
   \   0000004A   C046               NOP         
   \                     ??Usart_c_irq_handler_0:
   \   0000004C   1400FCFF           DC32        0xfffc0014
   \   00000050   1C00FCFF           DC32        0xfffc001c
   \   00000054   1800FCFF           DC32        0xfffc0018
   \   00000058   0000FCFF           DC32        0xfffc0000
     83          //*-------------------------- External Function -------------------------------
     84          
     85          //*----------------------------------------------------------------------------
     86          //* Function Name       : Usart_init
     87          //* Object              : USART initialization
     88          //* Input Parameters    : none
     89          //* Output Parameters   : TRUE
     90          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     91          void Usart_init ( void )
     92          //* Begin
     93          {
   \                     Usart_init:
   \   00000000   71B5               PUSH        {R0,R4-R6,LR}
     94          	AT91PS_USART COM0 = AT91C_BASE_US0;
     95          
     96                  //* Configure PIO controllers to periph mode
     97           	AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA,
     98           		((unsigned int) AT91C_PA0_RXD0    ) |
     99           		((unsigned int) AT91C_PA1_TXD0    ) |
    100           		((unsigned int) AT91C_PA3_RTS0    ) |
    101           		((unsigned int) AT91C_PA4_CTS0    ), // Peripheral A
    102           		0); // Peripheral B
   \   00000002   1B20               MOV         R0,#+0x1B
   \   00000004   2449               LDR         R1,??Usart_init_0  ;; 0xfffff470
   \   00000006   0860               STR         R0,[R1, #+0]
   \   00000008   0024               MOV         R4,#+0
   \   0000000A   2449               LDR         R1,??Usart_init_0+0x4  ;; 0xfffff474
   \   0000000C   0C60               STR         R4,[R1, #+0]
   \   0000000E   2449               LDR         R1,??Usart_init_0+0x8  ;; 0xfffff404
   \   00000010   0860               STR         R0,[R1, #+0]
    103          
    104             	// First, enable the clock of the USART
    105              	AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_US0 ) ;
   \   00000012   4025               MOV         R5,#+0x40
   \   00000014   2348               LDR         R0,??Usart_init_0+0xC  ;; 0xfffffc10
   \   00000016   0560               STR         R5,[R0, #+0]
    106          	// Usart Configure
    107                  AT91F_US_Configure (COM0, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
   \   00000018   2348               LDR         R0,??Usart_init_0+0x10  ;; 0xfffc000c
   \   0000001A   0021               MOV         R1,#+0
   \   0000001C   C943               MVN         R1,R1              ;; #-1
   \   0000001E   0160               STR         R1,[R0, #+0]
   \   00000020   224E               LDR         R6,??Usart_init_0+0x14  ;; 0xfffc0000
   \   00000022   AC20               MOV         R0,#+0xAC
   \   00000024   3060               STR         R0,[R6, #+0]
   \   00000026   2248               LDR         R0,??Usart_init_0+0x18  ;; 0xfffc0020
   \   00000028   1A21               MOV         R1,#+0x1A
   \   0000002A   0160               STR         R1,[R0, #+0]
   \   0000002C   2148               LDR         R0,??Usart_init_0+0x1C  ;; 0xfffc0028
   \   0000002E   0460               STR         R4,[R0, #+0]
   \   00000030   2148               LDR         R0,??Usart_init_0+0x20  ;; 0xfffc0100
   \   00000032   ........           _BLF        AT91F_PDC_Open,AT91F_PDC_Open??rT
   \   00000036   2148               LDR         R0,??Usart_init_0+0x24  ;; 0xfffc0004
   \   00000038   8C21               MOV         R1,#+0x8C
   \   0000003A   0901               LSL         R1,R1,#+0x4        ;; #+0x8C0
   \   0000003C   0160               STR         R1,[R0, #+0]
    108          
    109          	// Enable usart
    110          	COM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
   \   0000003E   5020               MOV         R0,#+0x50
   \   00000040   3060               STR         R0,[R6, #+0]
    111          
    112              //* Enable USART IT error and RXRDY
    113              	AT91F_US_EnableIt(COM0,AT91C_US_TIMEOUT | AT91C_US_FRAME | AT91C_US_OVRE |AT91C_US_RXRDY);
   \   00000042   1F48               LDR         R0,??Usart_init_0+0x28  ;; 0xfffc0008
   \   00000044   FF21               MOV         R1,#+0xFF
   \   00000046   6231               ADD         R1,#+0x62          ;; #+0x161
   \   00000048   0160               STR         R1,[R0, #+0]
    114          
    115              	//* open Usart 1 interrupt
    116          	AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US0, USART_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
   \   0000004A   1E48               LDR         R0,??Usart_init_0+0x2C  ;; 0xfffff098
   \   0000004C   0168               LDR         R1,[R0, #+0]
   \   0000004E   1E49               LDR         R1,??Usart_init_0+0x30  ;; 0xfffff124
   \   00000050   0D60               STR         R5,[R1, #+0]
   \   00000052   1E49               LDR         R1,??Usart_init_0+0x34  ;; Usart_c_irq_handler
   \   00000054   0160               STR         R1,[R0, #+0]
   \   00000056   1E48               LDR         R0,??Usart_init_0+0x38  ;; 0xfffff018
   \   00000058   0721               MOV         R1,#+0x7
   \   0000005A   0160               STR         R1,[R0, #+0]
   \   0000005C   1D48               LDR         R0,??Usart_init_0+0x3C  ;; 0xfffff128
   \   0000005E   0560               STR         R5,[R0, #+0]
    117          	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);
   \   00000060   1D48               LDR         R0,??Usart_init_0+0x40  ;; 0xfffff120
   \   00000062   0560               STR         R5,[R0, #+0]
    118          
    119          	AT91F_US_PutChar (COM0,'X');
   \   00000064   1D48               LDR         R0,??Usart_init_0+0x44  ;; 0xfffc001c
   \   00000066   5821               MOV         R1,#+0x58
   \   00000068   0160               STR         R1,[R0, #+0]
    120          
    121           	AT91F_US_SendFrame(COM0,(char *)atmel_header,sizeof(atmel_header),0,0);
   \   0000006A   1D48               LDR         R0,??Usart_init_0+0x48  ;; ??atmel_header
   \   0000006C   5221               MOV         R1,#+0x52
   \   0000006E   1D4A               LDR         R2,??Usart_init_0+0x4C  ;; 0xfffc0118
   \   00000070   1D4B               LDR         R3,??Usart_init_0+0x50  ;; 0xfffc011c
   \   00000072   1E4D               LDR         R5,??Usart_init_0+0x54  ;; 0xfffc010c
   \   00000074   2E68               LDR         R6,[R5, #+0]
   \   00000076   002E               CMP         R6,#+0
   \   00000078   05D1               BNE         ??Usart_init_1
   \   0000007A   1D4E               LDR         R6,??Usart_init_0+0x58  ;; 0xfffc0108
   \   0000007C   3060               STR         R0,[R6, #+0]
   \   0000007E   2960               STR         R1,[R5, #+0]
   \   00000080   1460               STR         R4,[R2, #+0]
   \   00000082   1C60               STR         R4,[R3, #+0]
   \   00000084   04E0               B           ??Usart_init_2
   \                     ??Usart_init_1:
   \   00000086   1C68               LDR         R4,[R3, #+0]
   \   00000088   002C               CMP         R4,#+0
   \   0000008A   01D1               BNE         ??Usart_init_2
   \   0000008C   1060               STR         R0,[R2, #+0]
   \   0000008E   1960               STR         R1,[R3, #+0]
    122          
    123          //* End
    124          }
   \                     ??Usart_init_2:
   \   00000090   78BC               POP         {R3-R6}
   \   00000092   01BC               POP         {R0}
   \   00000094   0047               BX          R0                 ;; return
   \   00000096   C046               NOP         
   \                     ??Usart_init_0:
   \   00000098   70F4FFFF           DC32        0xfffff470
   \   0000009C   74F4FFFF           DC32        0xfffff474
   \   000000A0   04F4FFFF           DC32        0xfffff404
   \   000000A4   10FCFFFF           DC32        0xfffffc10
   \   000000A8   0C00FCFF           DC32        0xfffc000c
   \   000000AC   0000FCFF           DC32        0xfffc0000
   \   000000B0   2000FCFF           DC32        0xfffc0020
   \   000000B4   2800FCFF           DC32        0xfffc0028
   \   000000B8   0001FCFF           DC32        0xfffc0100
   \   000000BC   0400FCFF           DC32        0xfffc0004
   \   000000C0   0800FCFF           DC32        0xfffc0008
   \   000000C4   98F0FFFF           DC32        0xfffff098
   \   000000C8   24F1FFFF           DC32        0xfffff124
   \   000000CC   ........           DC32        Usart_c_irq_handler
   \   000000D0   18F0FFFF           DC32        0xfffff018
   \   000000D4   28F1FFFF           DC32        0xfffff128
   \   000000D8   20F1FFFF           DC32        0xfffff120
   \   000000DC   1C00FCFF           DC32        0xfffc001c
   \   000000E0   ........           DC32        ??atmel_header
   \   000000E4   1801FCFF           DC32        0xfffc0118
   \   000000E8   1C01FCFF           DC32        0xfffc011c
   \   000000EC   0C01FCFF           DC32        0xfffc010c
   \   000000F0   0801FCFF           DC32        0xfffc0108

   Maximum stack usage in bytes:

     Function            CSTACK
     --------            ------
     AT91F_PDC_Open          0
     Usart_c_irq_handler     4
     Usart_init             20


   Segment part sizes:

     Function/Label      Bytes
     --------------      -----
     AT91F_PDC_Open        36
     atmel_header          84
     Usart_c_irq_handler   92
     Usart_init           244
      Others               36

 
 296 bytes in segment CODE
 100 bytes in segment CODE_I
  84 bytes in segment DATA_C
  12 bytes in segment INITTAB
 
 336 bytes of CODE  memory (+ 72 bytes shared)
  84 bytes of CONST memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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