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

📄 interrupt_usart.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 3 页
字号:
    150          
    151          	// Usart Configure
    152                  AT91F_US_Configure (COM0, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
   \   00000018   114D               LDR         R5,??Usart_init_0  ;; 0xfffc0000
   \   0000001A   0020               MOV         R0,#+0
   \   0000001C   01B4               PUSH        {R0}
   \   0000001E   E123               MOV         R3,#+0xE1
   \   00000020   5B02               LSL         R3,R3,#+0x9        ;; #+0x1C200
   \   00000022   8C22               MOV         R2,#+0x8C
   \   00000024   1201               LSL         R2,R2,#+0x4        ;; #+0x8C0
   \   00000026   ....               LDR         R1,??DataTable11   ;; 0x2dd4249
   \   00000028   281C               MOV         R0,R5
   \   0000002A   ........           _BLF        AT91F_US_Configure,AT91F_US_Configure??rT
    153          
    154          	// Enable usart
    155          	COM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
   \   0000002E   5020               MOV         R0,#+0x50
   \   00000030   2860               STR         R0,[R5, #+0]
    156          
    157                  //* Enable USART IT error and RXRDY
    158              	AT91F_US_EnableIt(COM0,AT91C_US_TIMEOUT | AT91C_US_FRAME | AT91C_US_OVRE |AT91C_US_RXRDY);
   \   00000032   0C48               LDR         R0,??Usart_init_0+0x4  ;; 0xfffc0008
   \   00000034   FF21               MOV         R1,#+0xFF
   \   00000036   6231               ADD         R1,#+0x62          ;; #+0x161
   \   00000038   0160               STR         R1,[R0, #+0]
    159          
    160              	//* open Usart 0 interrupt
    161          	AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US0, USART0_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
   \   0000003A   0B48               LDR         R0,??Usart_init_0+0x8  ;; Usart_c_irq_handler
   \   0000003C   01B4               PUSH        {R0}
   \   0000003E   0023               MOV         R3,#+0
   \   00000040   0622               MOV         R2,#+0x6
   \   00000042   111C               MOV         R1,R2
   \   00000044   ....               LDR         R0,??DataTable12   ;; 0xfffff000
   \   00000046   ........           _BLF        AT91F_AIC_ConfigureIt,AT91F_AIC_ConfigureIt??rT
    162          	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);
   \   0000004A   ....               LDR         R0,??DataTable13   ;; 0xfffff120
   \   0000004C   0460               STR         R4,[R0, #+0]
    163          
    164          	AT91F_US_PutChar (COM0,'X');
   \   0000004E   0748               LDR         R0,??Usart_init_0+0xC  ;; 0xfffc001c
   \   00000050   5821               MOV         R1,#+0x58
   \   00000052   0160               STR         R1,[R0, #+0]
    165          
    166           	AT91F_US_SendFrame(COM0,(char *)szembed_header,sizeof(szembed_header),0,0);
   \   00000054   0020               MOV         R0,#+0
   \   00000056   01B4               PUSH        {R0}
   \   00000058   031C               MOV         R3,R0
   \   0000005A   FD22               MOV         R2,#+0xFD
   \   0000005C   0449               LDR         R1,??Usart_init_0+0x10  ;; ??szembed_header
   \   0000005E   ....               B           ?Subroutine5
   \                     ??Usart_init_0:
   \   00000060   0000FCFF           DC32        0xfffc0000
   \   00000064   0800FCFF           DC32        0xfffc0008
   \   00000068   ........           DC32        Usart_c_irq_handler
   \   0000006C   1C00FCFF           DC32        0xfffc001c
   \   00000070   ........           DC32        ??szembed_header
    167          //* End
    168          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine5:
   \   00000000   281C               MOV         R0,R5
   \   00000002   ........           _BLF        AT91F_US_SendFrame,AT91F_US_SendFrame??rT
   \   00000006   3EBC               POP         {R1-R5}
   \   00000008   01BC               POP         {R0}
   \   0000000A   0047               BX          R0                 ;; return
   \                     ??Subroutine5_0:
   \   0000000C   0040FCFF           DC32        0xfffc4000
   \   00000010   0840FCFF           DC32        0xfffc4008
   \   00000014   ........           DC32        Usart1_c_irq_handler
   \   00000018   1C40FCFF           DC32        0xfffc401c
   \   0000001C   ........           DC32        ??atmel_header

   \                                 In segment CODE, align 4, keep-with-next
    169          void Usart_init1 ( void )
    170          //* Begin
    171          {
   \                     Usart_init1:
   \   00000000   30B5               PUSH        {R4,R5,LR}
    172          	AT91PS_USART COM1 = AT91C_BASE_US1;
    173          
    174             	// First, enable the clock of the USART
    175              	AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_US1 ) ;
   \   00000002   8024               MOV         R4,#+0x80
   \   00000004   ....               LDR         R0,??DataTable7    ;; 0xfffffc10
   \   00000006   0460               STR         R4,[R0, #+0]
    176          
    177                  //* Configure PIO controllers to periph mode
    178           	AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA,
    179           		((unsigned int) AT91C_PA5_RXD1    ) |
    180           		((unsigned int) AT91C_PA6_TXD1    ) |
    181           		((unsigned int) AT91C_PA8_RTS1    ) |
    182           		((unsigned int) AT91C_PA9_CTS1    ), // Peripheral A
    183           		0); // Peripheral B
   \   00000008   D820               MOV         R0,#+0xD8
   \   0000000A   8000               LSL         R0,R0,#+0x2        ;; #+0x360
   \   0000000C   ....               LDR         R1,??DataTable8    ;; 0xfffff470
   \   0000000E   0860               STR         R0,[R1, #+0]
   \   00000010   ....               LDR         R1,??DataTable9    ;; 0xfffff474
   \   00000012   0022               MOV         R2,#+0
   \   00000014   0A60               STR         R2,[R1, #+0]
   \   00000016   ....               LDR         R1,??DataTable10   ;; 0xfffff404
   \   00000018   0860               STR         R0,[R1, #+0]
    184          
    185                  // Usart Configure
    186                  AT91F_US_Configure (COM1, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
   \   0000001A   ....               LDR         R5,??Subroutine5_0  ;; 0xfffc4000
   \   0000001C   0020               MOV         R0,#+0
   \   0000001E   01B4               PUSH        {R0}
   \   00000020   E123               MOV         R3,#+0xE1
   \   00000022   5B02               LSL         R3,R3,#+0x9        ;; #+0x1C200
   \   00000024   8C22               MOV         R2,#+0x8C
   \   00000026   1201               LSL         R2,R2,#+0x4        ;; #+0x8C0
   \   00000028   ....               LDR         R1,??DataTable11   ;; 0x2dd4249
   \   0000002A   281C               MOV         R0,R5
   \   0000002C   ........           _BLF        AT91F_US_Configure,AT91F_US_Configure??rT
    187          
    188          	// Enable usart
    189          	COM1->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
   \   00000030   5020               MOV         R0,#+0x50
   \   00000032   2860               STR         R0,[R5, #+0]
    190          
    191                  //* Enable USART IT error and RXRDY
    192              	AT91F_US_EnableIt(COM1,AT91C_US_TIMEOUT | AT91C_US_FRAME | AT91C_US_OVRE |AT91C_US_RXRDY);
   \   00000034   ....               LDR         R0,??Subroutine5_0+0x4  ;; 0xfffc4008
   \   00000036   FF21               MOV         R1,#+0xFF
   \   00000038   6231               ADD         R1,#+0x62          ;; #+0x161
   \   0000003A   0160               STR         R1,[R0, #+0]
    193          
    194              	//* open Usart 1 interrupt
    195          	AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US1, USART1_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart1_c_irq_handler);
   \   0000003C   ....               LDR         R0,??Subroutine5_0+0x8  ;; Usart1_c_irq_handler
   \   0000003E   01B4               PUSH        {R0}
   \   00000040   0023               MOV         R3,#+0
   \   00000042   0722               MOV         R2,#+0x7
   \   00000044   111C               MOV         R1,R2
   \   00000046   ....               LDR         R0,??DataTable12   ;; 0xfffff000
   \   00000048   ........           _BLF        AT91F_AIC_ConfigureIt,AT91F_AIC_ConfigureIt??rT
    196          	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US1);
   \   0000004C   ....               LDR         R0,??DataTable13   ;; 0xfffff120
   \   0000004E   0460               STR         R4,[R0, #+0]
    197          
    198          	AT91F_US_PutChar (COM1,'Y');
   \   00000050   ....               LDR         R0,??Subroutine5_0+0xC  ;; 0xfffc401c
   \   00000052   5921               MOV         R1,#+0x59
   \   00000054   0160               STR         R1,[R0, #+0]
    199          
    200           	AT91F_US_SendFrame(COM1,(char *)atmel_header,sizeof(atmel_header),0,0);
   \   00000056   0020               MOV         R0,#+0
   \   00000058   01B4               PUSH        {R0}
   \   0000005A   031C               MOV         R3,R0
   \   0000005C   5322               MOV         R2,#+0x53
   \   0000005E   ....               LDR         R1,??Subroutine5_0+0x10  ;; ??atmel_header
   \   00000060                      REQUIRE ?Subroutine5
   \   00000060                      ;; // Fall through to label ?Subroutine5
    201          //* End
    202          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   10FCFFFF           DC32        0xfffffc10

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable8:
   \   00000000   70F4FFFF           DC32        0xfffff470

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable9:
   \   00000000   74F4FFFF           DC32        0xfffff474

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable10:
   \   00000000   04F4FFFF           DC32        0xfffff404

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable11:
   \   00000000   4942DD02           DC32        0x2dd4249

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable12:
   \   00000000   00F0FFFF           DC32        0xfffff000

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable13:
   \   00000000   20F1FFFF           DC32        0xfffff120

   Maximum stack usage in bytes:

     Function              CSTACK
     --------              ------
     AT91F_AIC_ConfigureIt    20
     AT91F_PDC_Open            0
     AT91F_US_Configure       12
     AT91F_US_SendFrame       12
     Usart1_c_irq_handler      4
     Usart_c_irq_handler       4
     Usart_init               24
     Usart_init1              24


   Segment part sizes:

     Function/Label        Bytes
     --------------        -----
     AT91F_AIC_ConfigureIt   44
     AT91F_PDC_Open          36
     AT91F_US_Configure      86
     AT91F_US_SendFrame      50
     szembed_header         256
     atmel_header            84
     Usart_c_irq_handler      2
     ?Subroutine4            92
     Usart1_c_irq_handler     0
     Usart_init             116
     ?Subroutine5            32
     Usart_init1             96
     ??DataTable7             4
     ??DataTable8             4
     ??DataTable9             4
     ??DataTable10            4
     ??DataTable11            4
     ??DataTable12            4
     ??DataTable13            4
      Others                116

 
 576 bytes in segment CODE
 110 bytes in segment CODE_I
 340 bytes in segment DATA_C
  12 bytes in segment INITTAB
 
 366 bytes of CODE  memory (+ 332 bytes shared)
 340 bytes of CONST memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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