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

📄 dbgu.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000002   0968               LDR         R1,[R1, #+0]
   \   00000004   C907               LSL         R1,R1,#+31
   \   00000006   01D4               BMI         ??AT91F_US_Get_0
     76            {
     77              return( FALSE );
   \   00000008   0020               MOV         R0,#+0
   \   0000000A   03E0               B           ??AT91F_US_Get_1
     78            }
     79            else
     80            {
     81              *val= AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU);
   \                     ??AT91F_US_Get_0:
   \   0000000C   ....               LDR         R1,??DataTable3    ;; 0xfffff218
   \   0000000E   0968               LDR         R1,[R1, #+0]
   \   00000010   0170               STRB        R1,[R0, #+0]
     82              return( TRUE );
   \   00000012   0120               MOV         R0,#+1
   \                     ??AT91F_US_Get_1:
   \   00000014   00B0               ADD         SP,#+0
   \   00000016   7047               BX          LR                 ;; return
     83            }
     84          }
     85          //----------------------------------------------------------------------------
     86          // \fn    AT91F_DBGU_scanf
     87          // \brief Get a string to USART manage Blackspace and echo
     88          //----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     89          void AT91F_DBGU_scanf(char * val)
     90          {
   \                     AT91F_DBGU_scanf:
   \   00000000   3FB5               PUSH        {R0-R5,LR}
     91            unsigned int read = 0;
     92            unsigned int i;
     93            char buff[13];  // Size of char for a file name 8+3+1+'\0  // BFSA_MAX_FILENAME_LEN
     94            unsigned int nb_read =0;
   \   00000002   0021               MOV         R1,#+0
   \   00000004   0022               MOV         R2,#+0
   \   00000006   07E0               B           ??AT91F_DBGU_scanf_0
     95          
     96            while( (read != 0x0D) & (nb_read != sizeof(buff)) )
     97            {
     98              // wait the USART Ready for reception
     99              while( (AT91C_BASE_DBGU->DBGU_CSR  & AT91C_US_RXRDY) == 0 )
    100              {}
    101              // Get a char
    102              read = AT91C_BASE_DBGU->DBGU_RHR ;
    103              buff[nb_read]= (char)read;
    104              // Manage Blackspace
    105              while( (AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXRDY) ==0 )
    106              {}
    107              if ((char)read == 0x08)
    108              {
    109                if ( nb_read != 0 )
   \                     ??AT91F_DBGU_scanf_1:
   \   00000008   002A               CMP         R2,#+0
   \   0000000A   01D0               BEQ         ??AT91F_DBGU_scanf_2
    110                {
    111                  nb_read--;
   \   0000000C   521E               SUB         R2,R2,#+1
    112                  AT91C_BASE_DBGU->DBGU_THR = read;
   \   0000000E   1C60               STR         R4,[R3, #+0]
    113                }
    114              }
   \                     ??AT91F_DBGU_scanf_2:
   \   00000010   0D2C               CMP         R4,#+13
   \   00000012   15D0               BEQ         ??AT91F_DBGU_scanf_3
   \   00000014   0D2A               CMP         R2,#+13
   \   00000016   13D0               BEQ         ??AT91F_DBGU_scanf_3
   \                     ??AT91F_DBGU_scanf_0:
   \   00000018   ....               LDR         R3,??DataTable2    ;; 0xfffff214
   \   0000001A   1C68               LDR         R4,[R3, #+0]
   \   0000001C   E407               LSL         R4,R4,#+31
   \   0000001E   FBD5               BPL         ??AT91F_DBGU_scanf_0
   \   00000020   ....               LDR         R4,??DataTable3    ;; 0xfffff218
   \   00000022   2468               LDR         R4,[R4, #+0]
   \   00000024   6D46               MOV         R5,SP
   \   00000026   AC54               STRB        R4,[R5, R2]
   \                     ??AT91F_DBGU_scanf_4:
   \   00000028   1D68               LDR         R5,[R3, #+0]
   \   0000002A   AD07               LSL         R5,R5,#+30
   \   0000002C   FCD5               BPL         ??AT91F_DBGU_scanf_4
   \   0000002E   0B4B               LDR         R3,??AT91F_DBGU_scanf_5  ;; 0xfffff21c
   \   00000030   2506               LSL         R5,R4,#+24
   \   00000032   2D0E               LSR         R5,R5,#+24
   \   00000034   082D               CMP         R5,#+8
   \   00000036   E7D0               BEQ         ??AT91F_DBGU_scanf_1
    115              else
    116              {
    117                // echo
    118                AT91C_BASE_DBGU->DBGU_THR = read;
   \   00000038   1C60               STR         R4,[R3, #+0]
    119                nb_read++;
   \   0000003A   521C               ADD         R2,R2,#+1
   \   0000003C   E8E7               B           ??AT91F_DBGU_scanf_2
    120              }
    121            }
    122          
    123            // sscanf(buff,type,val);
    124            for( i=0; i < nb_read; i++ )
   \                     ??AT91F_DBGU_scanf_6:
   \   0000003E   491C               ADD         R1,R1,#+1
   \                     ??AT91F_DBGU_scanf_3:
   \   00000040   9142               CMP         R1,R2
   \   00000042   07D2               BCS         ??AT91F_DBGU_scanf_7
    125            {
    126              val[i] = buff[i];
   \   00000044   6B46               MOV         R3,SP
   \   00000046   5B5C               LDRB        R3,[R3, R1]
   \   00000048   4418               ADD         R4,R0,R1
   \   0000004A   2370               STRB        R3,[R4, #+0]
    127              if( buff[i] == 0x0D )
   \   0000004C   0D2B               CMP         R3,#+13
   \   0000004E   F6D1               BNE         ??AT91F_DBGU_scanf_6
    128              {
    129                val[i] = '\0';
   \   00000050   0020               MOV         R0,#+0
   \   00000052   2070               STRB        R0,[R4, #+0]
    130                break;
    131              }
    132            }
    133          }
   \                     ??AT91F_DBGU_scanf_7:
   \   00000054   3FBC               POP         {R0-R5}
   \   00000056   01BC               POP         {R0}
   \   00000058   0047               BX          R0                 ;; return
   \   0000005A   C046               NOP         
   \                     ??AT91F_DBGU_scanf_5:
   \   0000005C   1CF2FFFF           DC32        0xfffff21c

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable2:
   \   00000000   14F2FFFF           DC32        0xfffff214

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable3:
   \   00000000   18F2FFFF           DC32        0xfffff218
    134          

   Maximum stack usage in bytes:

     Function         CSTACK
     --------         ------
     AT91F_DBGU_scanf    32
     AT91F_LED_init      12
     AT91F_US_Get         4


   Segment part sizes:

     Function/Label   Bytes
     --------------   -----
     countLed            1
     AT91F_LED_init     80
     AT91F_US_Get       24
     AT91F_DBGU_scanf   96
     ??DataTable2        4
     ??DataTable3        4
      Others            36

 
 232 bytes in segment CODE
   1 byte  in segment DATA_Z
  12 bytes in segment INITTAB
 
 208 bytes of CODE memory (+ 36 bytes shared)
   1 byte  of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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