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

📄 dbgu.lst

📁 IAR5.2下 AT91SAM9260 ARM 对 MCP2515 控制源化码
💻 LST
📖 第 1 页 / 共 2 页
字号:

   \                                 In section .text, align 4, keep-with-next
    118          static void DBGU_PutChar(unsigned char c)
    119          {
    120              //* Wait for the transmitter to be ready
    121              //* 等待发送缓存器空
    122              while ((AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXEMPTY) == 0);
   \                     DBGU_PutChar:
   \                     ??DBGU_PutChar_0:
   \   00000000   EB10E0E3           MVN      R1,#+235
   \   00000004   D01EC1E3           BIC      R1,R1,#0xD00
   \   00000008   001091E5           LDR      R1,[R1, #+0]
   \   0000000C   800F11E3           TST      R1,#0x200
   \   00000010   FAFFFF0A           BEQ      ??DBGU_PutChar_0
    123              
    124              //* Send character
    125              //* 发送字符
    126              AT91C_BASE_DBGU->DBGU_THR = c;
   \   00000014   E310E0E3           MVN      R1,#+227
   \   00000018   D01EC1E3           BIC      R1,R1,#0xD00
   \   0000001C   0020B0E1           MOVS     R2,R0
   \   00000020   FF2012E2           ANDS     R2,R2,#0xFF      ;; Zero extend
   \   00000024   002081E5           STR      R2,[R1, #+0]
    127              
    128              //* Wait for the transfer to complete
    129              //* 等待发送完成
    130              while ((AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXEMPTY) == 0);
   \                     ??DBGU_PutChar_1:
   \   00000028   EB10E0E3           MVN      R1,#+235
   \   0000002C   D01EC1E3           BIC      R1,R1,#0xD00
   \   00000030   001091E5           LDR      R1,[R1, #+0]
   \   00000034   800F11E3           TST      R1,#0x200
   \   00000038   FAFFFF0A           BEQ      ??DBGU_PutChar_1
    131          }
   \   0000003C   1EFF2FE1           BX       LR               ;; return
    132          
    133          
    134          //*-----------------------------------------------------------------------------
    135          //* 函数名称:  DBGU_GetChar
    136          //* 函数功能:  从串获取一个字符
    137          //* 入口参数:  无
    138          //* 返回值 :  获取的字符
    139          //*-----------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    140          unsigned char DBGU_GetChar()
    141          {
    142              while ((AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_RXRDY) == 0);
   \                     DBGU_GetChar:
   \                     ??DBGU_GetChar_0:
   \   00000000   EB00E0E3           MVN      R0,#+235
   \   00000004   D00EC0E3           BIC      R0,R0,#0xD00
   \   00000008   000090E5           LDR      R0,[R0, #+0]
   \   0000000C   010010E3           TST      R0,#0x1
   \   00000010   FAFFFF0A           BEQ      ??DBGU_GetChar_0
    143              return AT91C_BASE_DBGU->DBGU_RHR;
   \   00000014   E700E0E3           MVN      R0,#+231
   \   00000018   D00EC0E3           BIC      R0,R0,#0xD00
   \   0000001C   000090E5           LDR      R0,[R0, #+0]
   \   00000020   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000024   1EFF2FE1           BX       LR               ;; return
    144          }
    145          
    146          
    147          #ifndef NOFPUT
    148          
    149          #include <stdio.h>
    150          
    151          //------------------------------------------------------------------------------
    152          /// Implementation of fputc using the DBGU as the standard output. Required
    153          /// for printf().
    154          /// Returns the character written if successful, or -1 if the output stream is
    155          /// not stdout or stderr.
    156          /// \param c  Character to write.
    157          /// \param pStream  Output stream.
    158          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    159          signed int fputc(signed int c, FILE *pStream)
    160          {
   \                     fputc:
   \   00000000   38402DE9           PUSH     {R3-R5,LR}
   \   00000004   0050B0E1           MOVS     R5,R0
   \   00000008   0140B0E1           MOVS     R4,R1
    161              if ((pStream == stdout) || (pStream == stderr)) 
   \   0000000C   ........           LDR      R0,??DataTable1  ;; __iar_Stdout
   \   00000010   000054E1           CMP      R4,R0
   \   00000014   0200000A           BEQ      ??fputc_0
   \   00000018   20009FE5           LDR      R0,??fputc_1     ;; __iar_Stderr
   \   0000001C   000054E1           CMP      R4,R0
   \   00000020   0400001A           BNE      ??fputc_2
    162              {
    163                  DBGU_PutChar(c);
   \                     ??fputc_0:
   \   00000024   0500B0E1           MOVS     R0,R5
   \   00000028   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   0000002C   ........           BL       DBGU_PutChar
    164                  return c;
   \   00000030   0500B0E1           MOVS     R0,R5
   \   00000034   000000EA           B        ??fputc_3
    165              }
    166              else 
    167                  return EOF;
   \                     ??fputc_2:
   \   00000038   0000E0E3           MVN      R0,#+0
   \                     ??fputc_3:
   \   0000003C   3280BDE8           POP      {R1,R4,R5,PC}    ;; return
   \                     ??fputc_1:
   \   00000040   ........           DC32     __iar_Stderr
    168          }
    169          
    170          
    171          //------------------------------------------------------------------------------
    172          /// Implementation of fputs using the DBGU as the standard output. Required
    173          /// for printf(). Does NOT currently use the PDC.
    174          /// Returns the number of characters written if successful, or -1 if the output
    175          /// stream is not stdout or stderr.
    176          /// \param pStr  String to write.
    177          /// \param pStream  Output stream.
    178          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    179          signed int fputs(const char *pStr, FILE *pStream)
    180          {
   \                     fputs:
   \   00000000   70402DE9           PUSH     {R4-R6,LR}
   \   00000004   0050B0E1           MOVS     R5,R0
   \   00000008   0140B0E1           MOVS     R4,R1
    181              signed int num = 0;
   \   0000000C   0000A0E3           MOV      R0,#+0
   \   00000010   0060B0E1           MOVS     R6,R0
    182          
    183              while (*pStr != 0) 
   \                     ??fputs_0:
   \   00000014   0000D5E5           LDRB     R0,[R5, #+0]
   \   00000018   000050E3           CMP      R0,#+0
   \   0000001C   0900000A           BEQ      ??fputs_1
    184              {
    185                  if (fputc(*pStr, pStream) == -1) 
   \   00000020   0410B0E1           MOVS     R1,R4
   \   00000024   0000D5E5           LDRB     R0,[R5, #+0]
   \   00000028   ........           BL       fputc
   \   0000002C   010070E3           CMN      R0,#+1
   \   00000030   0100001A           BNE      ??fputs_2
    186                      return -1;
   \   00000034   0000E0E3           MVN      R0,#+0
   \   00000038   030000EA           B        ??fputs_3
    187                  num++;
   \                     ??fputs_2:
   \   0000003C   016096E2           ADDS     R6,R6,#+1
    188                  pStr++;
   \   00000040   015095E2           ADDS     R5,R5,#+1
   \   00000044   F2FFFFEA           B        ??fputs_0
    189              }
    190          
    191              return num;
   \                     ??fputs_1:
   \   00000048   0600B0E1           MOVS     R0,R6
   \                     ??fputs_3:
   \   0000004C   7080BDE8           POP      {R4-R6,PC}       ;; return
    192          }
    193          
    194          #undef putchar
    195          
    196          //------------------------------------------------------------------------------
    197          /// Outputs a character on the DBGU. Returns the character itself.
    198          /// \param c  Character to output.
    199          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    200          signed int putchar(signed int c)
    201          {
   \                     putchar:
   \   00000000   10402DE9           PUSH     {R4,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    202              return fputc(c, stdout);
   \   00000008   ........           LDR      R1,??DataTable1  ;; __iar_Stdout
   \   0000000C   0400B0E1           MOVS     R0,R4
   \   00000010   ........           BL       fputc
   \   00000014   1080BDE8           POP      {R4,PC}          ;; return
    203          }

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable1:
   \   00000000   ........           DC32     __iar_Stdout
    204          
    205          #endif //#ifndef NOFPUT
    206          

   Maximum stack usage in bytes:

     Function         .cstack
     --------         -------
     AT91F_US_PutChar      0
     AT91F_US_TxReady      0
     DBGU_Configure        0
     DBGU_GetChar          0
     DBGU_Printk           0
     DBGU_PutChar          0
     fputc                 0
     fputs                 0
     putchar               0


   Section sizes:

     Function/Label   Bytes
     --------------   -----
     DBGU_Configure    128
     AT91F_US_TxReady   12
     AT91F_US_PutChar   16
     DBGU_Printk        68
     DBGU_PutChar       64
     DBGU_GetChar       40
     fputc              68
     fputs              80
     putchar            24
     ??DataTable1        4

 
 504 bytes in section .text
 
 504 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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