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

📄 main.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    226                  if( BFSA_SUCCESS != status )
   \   00000236   04D1               BNE         ??menu_11
    227                  {
    228                    goto FAILURE;
    229                  }
    230                  TRACE_INFO( "OK\n\r");
   \   00000238   0099               LDR         R1,[SP, #+0]
   \   0000023A   201C               MOV         R0,R4
   \   0000023C   ........           _BLF        fprintf,??fprintf??rT
   \   00000240   06E0               B           ??menu_14
    231                }
    232                break;
    233              }
    234          
    235              FAILURE:
    236                  if( BFSA_SUCCESS != status )
   \                     ??menu_11:
   \   00000242   002E               CMP         R6,#+0
   \   00000244   04D0               BEQ         ??menu_14
    237                    TRACE_INFO( "failed (0x%X)\n\r", (int)status);
   \   00000246   321C               MOV         R2,R6
   \   00000248   1649               LDR         R1,??menu_1+0x50   ;; `?<Constant "">` + 244
   \   0000024A   201C               MOV         R0,R4
   \   0000024C   ........           _BLF        fprintf,??fprintf??rT
    238            }
    239          }
   \                     ??menu_14:
   \   00000250   49B0               ADD         SP,#+292
   \   00000252   ....               B           ?Subroutine2
   \                     ??menu_1:
   \   00000254   ........           DC32        `?<Constant "">` + 12
   \   00000258   ........           DC32        `?<Constant "">` + 24
   \   0000025C   ........           DC32        `?<Constant "">` + 36
   \   00000260   ........           DC32        `?<Constant "">` + 48
   \   00000264   ........           DC32        `?<Constant "">` + 56
   \   00000268   ........           DC32        `?<Constant "">` + 64
   \   0000026C   ........           DC32        `?<Constant "">` + 76
   \   00000270   ........           DC32        `?<Constant "">` + 88
   \   00000274   0A0D0000           DC8         "\n\r",+0
   \   00000278   ........           DC32        `?<Constant "">` + 132
   \   0000027C   ........           DC32        `?<Constant "">` + 100
   \   00000280   ........           DC32        `?<Constant "">` + 116
   \   00000284   ........           DC32        `?<Constant "12345">`
   \   00000288   ........           DC32        `?<Constant "512">`
   \   0000028C   ........           DC32        `?<Constant "">` + 140
   \   00000290   ........           DC32        `?<Constant "">` + 160
   \   00000294   ........           DC32        `?<Constant "">` + 180
   \   00000298   ........           DC32        `?<Constant "">` + 192
   \   0000029C   ........           DC32        `?<Constant "">` + 208
   \   000002A0   ........           DC32        `?<Constant "">` + 228
   \   000002A4   ........           DC32        `?<Constant "">` + 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 "\\n\\r\\n\\rUSB-BFSA\\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
    240          
    241          
    242          
    243          /*****************************************************************
    244          *
    245          * ROUTINE : main function
    246          *
    247          *-----------------------------------------------------------------
    248          *
    249          * Purpose :
    250          *
    251          * Input parameters  : NONE
    252          *
    253          * Output parameters :
    254          *
    255          * Global data :
    256          *
    257          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    258          void main( void )
    259          {
   \                     main:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
    260            int status = INTERNAL_ERROR;
    261          #ifdef USE_LED
    262            unsigned char counter = 0;
   \   00000002   0024               MOV         R4,#+0
    263          #endif
    264          
    265            // Enable User Reset and set its minimal assertion to 960 us
    266            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]
    267          
    268            // Enable Peripheral clock in PMC for PIOA
    269            AT91F_PIOA_CfgPMC();
   \   0000000A   ....               LDR         R0,??Subroutine2_0+0x8  ;; 0xfffffc10
   \   0000000C   0421               MOV         R1,#+4
   \   0000000E   0160               STR         R1,[R0, #+0]
    270          
    271            // Set to 1 output PIO
    272            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]
    273          
    274            // Enable PIO in output mode
    275            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]
    276          
    277            // Disable pullup on PIO
    278            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]
    279          
    280          #ifdef PULL_UP_USB
    281            // Disable UDP Pull Up (USB_DP_PUP)
    282            #ifdef AT91SAM7A3
    283              #ifdef REV_A  // old board
    284                AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1);
    285                AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
    286              #else  // new board
    287                AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1);
    288                AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
    289              #endif
    290            #else
    291              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]
    292            #endif
    293          #endif
    294          
    295          #if defined (TR_INFO) || defined (TR_WARNING) || defined (TR_ERROR) || defined (TR_FATAL) || defined (TR_DEBUG_H) || defined (TR_DEBUG_M)
    296          	// Open PIO for DBGU
    297          	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]
    298          
    299          	// Configure DBGU
    300          	AT91F_US_Configure
    301                     (
    302          		(AT91PS_USART) AT91C_BASE_DBGU,
    303          		AT91C_MASTER_CLOCK,
    304          		AT91C_US_ASYNC_MODE,  	// mode Register to be programmed
    305          		AT91C_DBGU_BAUD,        // baudrate to be programmed
    306          		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]
    307          
    308          	// Enable Transmitter
    309            AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);
   \   00000062   4020               MOV         R0,#+64
   \   00000064   3060               STR         R0,[R6, #+0]
    310            AT91F_US_EnableRx((AT91PS_USART) AT91C_BASE_DBGU);
   \   00000066   1020               MOV         R0,#+16
   \   00000068   3060               STR         R0,[R6, #+0]
    311          
    312            // Disable peripheral clock in PMC for PIOA
    313            //AT91F_PMC_DisablePeriphClock( AT91C_BASE_PMC, (1 << AT91C_ID_PIOA) );
    314          #endif
    315          
    316            TRACE_INFO( "\n\r\n\rUSB-BFSA\n\r");
   \   0000006A   ....               LDR         R6,??DataTable2    ;; _Stdout
   \   0000006C   ....               LDR         R7,??Subroutine2_0+0x44  ;; `?<Constant "\\n\\r\\n\\rUSB-BFSA\\n\\r">`
   \   0000006E   391C               MOV         R1,R7
   \   00000070   301C               MOV         R0,R6
   \   00000072   ........           _BLF        fprintf,??fprintf??rT
    317          
    318          #ifdef USE_LED
    319            AT91F_LED_init( AT91C_BASE_PWMC, AT91C_MASTER_CLOCK );
   \   00000076   ....               LDR         R1,??Subroutine2_0+0x48  ;; 0x2db4000
   \   00000078   ....               LDR         R0,??Subroutine2_0+0x4C  ;; 0xfffcc000
   \   0000007A   ........           _BLF        AT91F_LED_init,??AT91F_LED_init??rT
    320          #endif
    321          
    322          
    323                 if(disk_initialize()==0x0)
   \   0000007E   ........           _BLF        disk_initialize,??disk_initialize??rT
   \   00000082   0028               CMP         R0,#+0
   \   00000084   02D1               BNE         ??main_0
    324                  {
    325                    TRACE_INFO("MMC disk initialized .\r\n") ;
   \   00000086   391C               MOV         R1,R7
   \   00000088   1031               ADD         R1,#+16
   \   0000008A   01E0               B           ??main_1
    326                  }
    327                 else
    328                  {
    329                    TRACE_INFO("No mmc disk !! \r\n") ;
   \                     ??main_0:
   \   0000008C   391C               MOV         R1,R7
   \   0000008E   2C31               ADD         R1,#+44
   \                     ??main_1:
   \   00000090   301C               MOV         R0,R6
   \   00000092   ........           _BLF        fprintf,??fprintf??rT
    330                  }
    331            bGet = TRUE;
   \   00000096   ....               LDR         R0,??DataTable3    ;; bGet
   \   00000098   0121               MOV         R1,#+1
   \   0000009A   0160               STR         R1,[R0, #+0]
    332            // Initialize BFS
    333            if( BFSA_SUCCESS != BFSA_init())
   \   0000009C   ........           _BLF        BFSA_init,??BFSA_init??rT
   \   000000A0   0028               CMP         R0,#+0
   \   000000A2   2BD0               BEQ         ??main_2
    334            {
    335              TRACE_INFO( "\n\r\n\rNot init filesys \n\r");
   \   000000A4   391C               MOV         R1,R7
   \   000000A6   4031               ADD         R1,#+64
   \   000000A8   301C               MOV         R0,R6
   \   000000AA   ........           _BLF        fprintf,??fprintf??rT
    336          
    337             /* status = BFSA_format();
    338              if( BFSA_SUCCESS != status )
    339                {
    340                  TRACE_INFO( "FORMAT fault !\n\r");
    341                }
    342              else
    343                {
    344                  TRACE_INFO( "FORMAT OK\n\r");
    345                  status = 1; // We need a BFSA_init()
    346                }
    347             */
    348          
    349            }
    350            else
    351            {
    352              status = BFSA_SUCCESS;
    353              TRACE_INFO( "\n\r\n\r inited filesys \n\r");
    354            }
    355          

⌨️ 快捷键说明

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