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

📄 main.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    230                }
    231                break;
    232              }
    233          
    234              FAILURE:
    235                  if( BFSA_SUCCESS != status )
   \                     ??menu_11:
   \   00000224   002C               CMP         R4,#+0
   \   00000226   04D0               BEQ         ??menu_13
    236                    TRACE_INFO( "failed (0x%X)\n\r", (int)status);
   \   00000228   221C               MOV         R2,R4
   \   0000022A   1749               LDR         R1,??menu_1+0x50   ;; `?<Constant "wodemima">` + 244
   \   0000022C   281C               MOV         R0,R5
   \   0000022E   ........           _BLF        fprintf,??fprintf??rT
    237            }
    238          }
   \                     ??menu_13:
   \   00000232   49B0               ADD         SP,#+292
   \   00000234   ....               B           ?Subroutine2
   \   00000236   C046               NOP         
   \                     ??menu_1:
   \   00000238   ........           DC32        `?<Constant "wodemima">` + 32
   \   0000023C   ........           DC32        `?<Constant "wodemima">` + 44
   \   00000240   ........           DC32        `?<Constant "wodemima">` + 56
   \   00000244   ........           DC32        `?<Constant "wodemima">` + 68
   \   00000248   ........           DC32        `?<Constant "wodemima">` + 76
   \   0000024C   ........           DC32        `?<Constant "wodemima">` + 84
   \   00000250   ........           DC32        `?<Constant "wodemima">` + 96
   \   00000254   ........           DC32        `?<Constant "wodemima">` + 108
   \   00000258   0A0D0000           DC8         "\n\r",+0
   \   0000025C   ........           DC32        `?<Constant "wodemima">` + 136
   \   00000260   ........           DC32        `?<Constant "wodemima">` + 152
   \   00000264   ........           DC32        `?<Constant "wodemima">`
   \   00000268   ........           DC32        `?<Constant "wodemima">` + 120
   \   0000026C   ........           DC32        `?<Constant "wodemima">` + 12
   \   00000270   ........           DC32        `?<Constant "wodemima">` + 160
   \   00000274   ........           DC32        `?<Constant "wodemima">` + 180
   \   00000278   0A0D2E00           DC8         "\n\r."
   \   0000027C   ........           DC32        `?<Constant "wodemima">` + 192
   \   00000280   ........           DC32        `?<Constant "wodemima">` + 208
   \   00000284   ........           DC32        `?<Constant "wodemima">` + 228
   \   00000288   ........           DC32        `?<Constant "wodemima">` + 244

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine2:
   \   00000000   F0BC               POP         {R4-R7}
   \   00000002   01BC               POP         {R0}
   \   00000004   0047               BX          R0                 ;; return
   \   00000006   C046               NOP         
   \                     ??Subroutine2_0:
   \   00000008   08FDFFFF           DC32        0xfffffd08
   \   0000000C   010400A5           DC32        0xa5000401
   \   00000010   10FCFFFF           DC32        0xfffffc10
   \   00000014   30F4FFFF           DC32        0xfffff430
   \   00000018   00F4FFFF           DC32        0xfffff400
   \   0000001C   10F4FFFF           DC32        0xfffff410
   \   00000020   60F4FFFF           DC32        0xfffff460
   \   00000024   64F4FFFF           DC32        0xfffff464
   \   00000028   70F4FFFF           DC32        0xfffff470
   \   0000002C   74F4FFFF           DC32        0xfffff474
   \   00000030   04F4FFFF           DC32        0xfffff404
   \   00000034   0CF2FFFF           DC32        0xfffff20c
   \   00000038   00F2FFFF           DC32        0xfffff200
   \   0000003C   20F2FFFF           DC32        0xfffff220
   \   00000040   28F2FFFF           DC32        0xfffff228
   \   00000044   00F3FFFF           DC32        0xfffff300
   \   00000048   04F2FFFF           DC32        0xfffff204
   \   0000004C   ........           DC32        `?<Constant "Error END\\n\\r">`
   \   00000050   0040DB02           DC32        0x2db4000
   \   00000054   00C0FCFF           DC32        0xfffcc000
   \   00000058   ........           DC32        countLed
   \   0000005C   60FDFFFF           DC32        0xfffffd60
   \   00000060   10C2FCFF           DC32        0xfffcc210
   \   00000064   30C2FCFF           DC32        0xfffcc230
    239          
    240          
    241          
    242          /*****************************************************************
    243          *
    244          * ROUTINE : main function
    245          *
    246          *-----------------------------------------------------------------
    247          *
    248          * Purpose :
    249          *
    250          * Input parameters  : NONE
    251          *
    252          * Output parameters :
    253          *
    254          * Global data :
    255          *
    256          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    257          void main( void )
    258          {
   \                     main:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
    259            int status = INTERNAL_ERROR;
    260          #ifdef USE_LED
    261            unsigned char counter = 0;
   \   00000002   0024               MOV         R4,#+0
    262          #endif
    263          
    264            // Enable User Reset and set its minimal assertion to 960 us
    265            AT91F_RSTSetMode( AT91C_BASE_RSTC,AT91C_RSTC_URSTEN | (0x4<<8) );
   \   00000004   ....               LDR         R0,??Subroutine2_0  ;; 0xfffffd08
   \   00000006   ....               LDR         R1,??Subroutine2_0+0x4  ;; 0xa5000401
   \   00000008   0160               STR         R1,[R0, #+0]
    266          
    267            // Enable Peripheral clock in PMC for PIOA
    268            AT91F_PIOA_CfgPMC();
   \   0000000A   ....               LDR         R0,??Subroutine2_0+0x8  ;; 0xfffffc10
   \   0000000C   0421               MOV         R1,#+4
   \   0000000E   0160               STR         R1,[R0, #+0]
    269          
    270            // Set to 1 output PIO
    271            AT91F_PIO_SetOutput( AT91C_BASE_PIOA, 0xFFFFFFFF );
   \   00000010   ....               LDR         R1,??Subroutine2_0+0xC  ;; 0xfffff430
   \   00000012   0020               MOV         R0,#+0
   \   00000014   C043               MVN         R0,R0              ;; #-1
   \   00000016   0860               STR         R0,[R1, #+0]
    272          
    273            // Enable PIO in output mode
    274            AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, 0xFFFFFFFF );
   \   00000018   ....               LDR         R2,??Subroutine2_0+0x10  ;; 0xfffff400
   \   0000001A   1060               STR         R0,[R2, #+0]
   \   0000001C   ....               LDR         R2,??Subroutine2_0+0x14  ;; 0xfffff410
   \   0000001E   1060               STR         R0,[R2, #+0]
    275          
    276            // Disable pullup on PIO
    277            AT91F_PIO_CfgPullup( AT91C_BASE_PIOA, 0x00000000 );
   \   00000020   ....               LDR         R2,??Subroutine2_0+0x18  ;; 0xfffff460
   \   00000022   1060               STR         R0,[R2, #+0]
   \   00000024   0025               MOV         R5,#+0
   \   00000026   ....               LDR         R2,??Subroutine2_0+0x1C  ;; 0xfffff464
   \   00000028   1460               STR         R4,[R2, #+0]
    278          
    279          #ifdef PULL_UP_USB
    280            // Disable UDP Pull Up (USB_DP_PUP)
    281            #ifdef AT91SAM7A3
    282              #ifdef REV_A  // old board
    283                AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1);
    284                AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
    285              #else  // new board
    286                AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1);
    287                AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
    288              #endif
    289            #else
    290              AT91F_PIO_SetOutput( AT91C_BASE_PIOA, AT91C_PIO_PA16 );
   \   0000002A   8022               MOV         R2,#+128
   \   0000002C   5202               LSL         R2,R2,#+9          ;; #+65536
   \   0000002E   0A60               STR         R2,[R1, #+0]
    291            #endif
    292          #endif
    293          
    294          #if defined (TR_INFO) || defined (TR_WARNING) || defined (TR_ERROR) || defined (TR_FATAL) || defined (TR_DEBUG_H) || defined (TR_DEBUG_M)
    295          	// Open PIO for DBGU
    296          	AT91F_DBGU_CfgPIO();
   \   00000030   C021               MOV         R1,#+192
   \   00000032   4905               LSL         R1,R1,#+21         ;; #+402653184
   \   00000034   ....               LDR         R2,??Subroutine2_0+0x20  ;; 0xfffff470
   \   00000036   1160               STR         R1,[R2, #+0]
   \   00000038   ....               LDR         R2,??Subroutine2_0+0x24  ;; 0xfffff474
   \   0000003A   1460               STR         R4,[R2, #+0]
   \   0000003C   ....               LDR         R2,??Subroutine2_0+0x28  ;; 0xfffff404
   \   0000003E   1160               STR         R1,[R2, #+0]
    297          
    298          	// Configure DBGU
    299          	AT91F_US_Configure
    300                     (
    301          		(AT91PS_USART) AT91C_BASE_DBGU,
    302          		AT91C_MASTER_CLOCK,
    303          		AT91C_US_ASYNC_MODE,  	// mode Register to be programmed
    304          		AT91C_DBGU_BAUD,        // baudrate to be programmed
    305          		0);                   	// timeguard to be programmed
   \   00000040   ....               LDR         R1,??Subroutine2_0+0x2C  ;; 0xfffff20c
   \   00000042   0860               STR         R0,[R1, #+0]
   \   00000044   ....               LDR         R6,??Subroutine2_0+0x30  ;; 0xfffff200
   \   00000046   AC20               MOV         R0,#+172
   \   00000048   3060               STR         R0,[R6, #+0]
   \   0000004A   ....               LDR         R0,??Subroutine2_0+0x34  ;; 0xfffff220
   \   0000004C   1A21               MOV         R1,#+26
   \   0000004E   0160               STR         R1,[R0, #+0]
   \   00000050   ....               LDR         R0,??Subroutine2_0+0x38  ;; 0xfffff228
   \   00000052   0460               STR         R4,[R0, #+0]
   \   00000054   ....               LDR         R0,??Subroutine2_0+0x3C  ;; 0xfffff300
   \   00000056   ........           _BLF        AT91F_PDC_Open,??AT91F_PDC_Open??rT
   \   0000005A   ....               LDR         R0,??Subroutine2_0+0x40  ;; 0xfffff204
   \   0000005C   8C21               MOV         R1,#+140
   \   0000005E   0901               LSL         R1,R1,#+4          ;; #+2240
   \   00000060   0160               STR         R1,[R0, #+0]
    306          
    307          	// Enable Transmitter
    308            AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);
   \   00000062   4020               MOV         R0,#+64
   \   00000064   3060               STR         R0,[R6, #+0]
    309            AT91F_US_EnableRx((AT91PS_USART) AT91C_BASE_DBGU);
   \   00000066   1020               MOV         R0,#+16
   \   00000068   3060               STR         R0,[R6, #+0]
    310          
    311            // Disable peripheral clock in PMC for PIOA
    312            //AT91F_PMC_DisablePeriphClock( AT91C_BASE_PMC, (1 << AT91C_ID_PIOA) );
    313          #endif
    314          
    315            TRACE_INFO( "\n\r\n\rUSB-BFSA\n\r");
   \   0000006A   ....               LDR         R6,??DataTable2    ;; _Stdout
   \   0000006C   ....               LDR         R7,??Subroutine2_0+0x44  ;; `?<Constant "Error END\\n\\r">`
   \   0000006E   391C               MOV         R1,R7
   \   00000070   0C31               ADD         R1,#+12
   \   00000072   301C               MOV         R0,R6
   \   00000074   ........           _BLF        fprintf,??fprintf??rT
    316          
    317          #ifdef USE_LED
    318            AT91F_LED_init( AT91C_BASE_PWMC, AT91C_MASTER_CLOCK );
   \   00000078   ....               LDR         R1,??Subroutine2_0+0x48  ;; 0x2db4000
   \   0000007A   ....               LDR         R0,??Subroutine2_0+0x4C  ;; 0xfffcc000
   \   0000007C   ........           _BLF        AT91F_LED_init,??AT91F_LED_init??rT
    319          #endif
    320          
    321          
    322                 if(disk_initialize()==0x0)
   \   00000080   ........           _BLF        disk_initialize,??disk_initialize??rT
   \   00000084   0028               CMP         R0,#+0
   \   00000086   02D1               BNE         ??main_0
    323                  {
    324                    TRACE_INFO("MMC disk initialized .\r\n") ;
   \   00000088   391C               MOV         R1,R7
   \   0000008A   1C31               ADD         R1,#+28
   \   0000008C   01E0               B           ??main_1
    325                  }
    326                 else
    327                  {
    328                    TRACE_INFO("No mmc disk !! \r\n") ;
   \                     ??main_0:
   \   0000008E   391C               MOV         R1,R7
   \   00000090   3831               ADD         R1,#+56
   \                     ??main_1:
   \   00000092   301C               MOV         R0,R6
   \   00000094   ........           _BLF        fprintf,??fprintf??rT
    329                  }
    330            bGet = TRUE;
   \   00000098   ....               LDR         R0,??DataTable3    ;; bGet
   \   0000009A   0121               MOV         R1,#+1
   \   0000009C   0160               STR         R1,[R0, #+0]
    331            // Initialize BFS
    332            if( BFSA_SUCCESS != BFSA_init())
   \   0000009E   ........           _BLF        BFSA_init,??BFSA_init??rT
   \   000000A2   0028               CMP         R0,#+0
   \   000000A4   2BD0               BEQ         ??main_2
    333            {
    334              TRACE_INFO( "\n\r\n\rNot init filesys \n\r");
   \   000000A6   391C               MOV         R1,R7
   \   000000A8   4C31               ADD         R1,#+76
   \   000000AA   301C               MOV         R0,R6
   \   000000AC   ........           _BLF        fprintf,??fprintf??rT
    335          
    336             /* status = BFSA_format();
    337              if( BFSA_SUCCESS != status )
    338                {
    339                  TRACE_INFO( "FORMAT fault !\n\r");
    340                }
    341              else
    342                {
    343                  TRACE_INFO( "FORMAT OK\n\r");
    344                  status = 1; // We need a BFSA_init()
    345                }
    346             */
    347          
    348            }
    349            else
    350            {
    351              status = BFSA_SUCCESS;
    352              TRACE_INFO( "\n\r\n\r inited filesys \n\r");
    353            }
    354          
    355            if( BFSA_SUCCESS != status )
    356            {
    357              if( BFSA_SUCCESS == BFSA_init() )
   \   000000B0   ........           _BLF        BFSA_init,??BFSA_init??rT

⌨️ 快捷键说明

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