main.lst

来自「本程序是以前程序的升级」· LST 代码 · 共 1,161 行 · 第 1/5 页

LST
1,161
字号
   \   00000010   004090E5           LDR      R4,[R0, #+0]
    469              unsigned long crc,ConfigureCRC;
    470              
    471              TRACE_INFO("In LeadApp\n\r");
   \   00000014   E4009FE5           LDR      R0,??LeadAPP_0   ;; `?<Constant "-I- In LeadApp\\n\\r">`
   \   00000018   ........           BL       printf
    472              TRACE_INFO("LEADTIME:%d\n\r",time);
                     ^
Remark[Pe181]: argument is incompatible with corresponding format string
          conversion
   \   0000001C   0410A0E1           MOV      R1,R4
   \   00000020   DC009FE5           LDR      R0,??LeadAPP_0+0x4  ;; `?<Constant "-I- LEADTIME:%d\\n\\r">`
   \   00000024   ........           BL       printf
    473                for(page=1;page< AT45_PageNumber(&at45);page++)
   \   00000028   0160A0E3           MOV      R6,#+1
   \   0000002C   080000EA           B        ??LeadAPP_1
    474                {
    475                  // Verify that page has been erased correctly
    476                  AT45_Read(&at45, pBuffer, AT45_PageSize(&at45), page * AT45_PageSize(&at45));
    477                  for (i=0; i < AT45_PageSize(&at45); i++) 
    478                  {
    479                    *tmp = pBuffer[i];
   \                     ??LeadAPP_2:
   \   00000030   ........           LDR      R0,??DataTable61  ;; pBuffer
   \   00000034   0000D7E7           LDRB     R0,[R7, +R0]
   \   00000038   0100C5E4           STRB     R0,[R5], #+1
    480                     tmp++;
    481                  }     
   \   0000003C   017087E2           ADD      R7,R7,#+1
   \                     ??LeadAPP_3:
   \   00000040   ........           LDR      R0,??DataTable73  ;; at45
   \   00000044   ........           BL       AT45_PageSize
   \   00000048   000057E1           CMP      R7,R0
   \   0000004C   F7FFFF3A           BCC      ??LeadAPP_2
   \   00000050   016086E2           ADD      R6,R6,#+1
   \                     ??LeadAPP_1:
   \   00000054   ........           LDR      R0,??DataTable72  ;; at45 + 28
   \   00000058   000090E5           LDR      R0,[R0, #+0]
   \   0000005C   000090E5           LDR      R0,[R0, #+0]
   \   00000060   000056E1           CMP      R6,R0
   \   00000064   0B00002A           BCS      ??LeadAPP_4
   \   00000068   ........           LDR      R0,??DataTable73  ;; at45
   \   0000006C   ........           BL       AT45_PageSize
   \   00000070   0070A0E1           MOV      R7,R0
   \   00000074   ........           LDR      R0,??DataTable73  ;; at45
   \   00000078   ........           BL       AT45_PageSize
   \   0000007C   970603E0           MUL      R3,R7,R6
   \   00000080   0020A0E1           MOV      R2,R0
   \   00000084   ........           LDR      R1,??DataTable61  ;; pBuffer
   \   00000088   ........           LDR      R0,??DataTable73  ;; at45
   \   0000008C   ........           BL       AT45_Read
   \   00000090   0070A0E3           MOV      R7,#+0
   \   00000094   E9FFFFEA           B        ??LeadAPP_3
    482                }    
    483              if(WhetherEmpty() == 1)
   \                     ??LeadAPP_4:
   \   00000098   ........           BL       WhetherEmpty
   \   0000009C   010050E3           CMP      R0,#+1
   \   000000A0   1400000A           BEQ      ??LeadAPP_5
    484                {
    485                  return 1;
    486                }
    487              else
    488                {        
    489                  crc = FullCRC(SdCodeAddr,4095*AT45_PageSize(&at45));
   \   000000A4   ........           LDR      R0,??DataTable73  ;; at45
   \   000000A8   ........           BL       AT45_PageSize
   \   000000AC   001660E0           RSB      R1,R0,R0, LSL #+12
   \   000000B0   ........           LDR      R0,??DataTable65  ;; SdCodeAddr
   \   000000B4   000090E5           LDR      R0,[R0, #+0]
   \   000000B8   ........           BL       FullCRC
   \   000000BC   0050A0E1           MOV      R5,R0
    490                  time = timestamp-time;
   \   000000C0   ........           LDR      R0,??DataTable64  ;; timestamp
   \   000000C4   000090E5           LDR      R0,[R0, #+0]
   \   000000C8   041040E0           SUB      R1,R0,R4
    491                  
    492                  TRACE_INFO("CRC end time:%x\n\r",time);        
   \   000000CC   34009FE5           LDR      R0,??LeadAPP_0+0x8  ;; `?<Constant "-I- CRC end time:%x\\n\\r">`
   \   000000D0   ........           BL       printf
    493                  AT45_Read(&at45,(unsigned char *)&ConfigureCRC,4,524);
   \   000000D4   833FA0E3           MOV      R3,#+524
   \   000000D8   0420A0E3           MOV      R2,#+4
   \   000000DC   0D10A0E1           MOV      R1,SP
   \   000000E0   ........           LDR      R0,??DataTable73  ;; at45
   \   000000E4   ........           BL       AT45_Read
    494                  if(crc == ConfigureCRC)
   \   000000E8   00009DE5           LDR      R0,[SP, #+0]
   \   000000EC   000055E1           CMP      R5,R0
    495                    {
    496                      return 0;
   \   000000F0   0000A003           MOVEQ    R0,#+0
    497                    }
    498                  else
    499                    {
    500                      return 1;
   \   000000F4   0100A013           MOVNE    R0,#+1
   \                     ??LeadAPP_5:
   \   000000F8   F840BDE8           POP      {R3-R7,LR}
   \   000000FC   1EFF2FE1           BX       LR               ;; return
   \                     ??LeadAPP_0:
   \   00000100   ........           DC32     `?<Constant "-I- In LeadApp\\n\\r">`
   \   00000104   ........           DC32     `?<Constant "-I- LEADTIME:%d\\n\\r">`
   \   00000108   ........           DC32     `?<Constant "-I- CRC end time:%x\\n\\r">`
    501                    }   
    502                }
    503          }
    504          
    505          //------------------------------------------------------------------------------
    506          ///LoadApp() function was used to promote the application. So when the apllication
    507          // load the application code to the sdram we should save code in dataflash
    508          //\param information was used to store the code information
    509          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    510          static unsigned char LoadApp()
    511          {
   \                     LoadApp:
   \   00000000   F1402DE9           PUSH     {R0,R4-R7,LR}
    512            unsigned int j,PageNum;
    513            unsigned char *tmp;
    514            unsigned char * codeaddr;
    515            unsigned long crc;
    516            unsigned char *temp;
    517            int time;
    518            tmp = (unsigned char *)interface->address;
    519              
    520            crc = FullCRC(tmp, interface->CSize);
   \   00000004   ........           LDR      R0,??DataTable76  ;; interface
   \   00000008   000090E5           LDR      R0,[R0, #+0]
   \   0000000C   081090E5           LDR      R1,[R0, #+8]
   \   00000010   ........           LDR      R0,??DataTable76  ;; interface
   \   00000014   000090E5           LDR      R0,[R0, #+0]
   \   00000018   000090E5           LDR      R0,[R0, #+0]
   \   0000001C   ........           BL       FullCRC
   \   00000020   00008DE5           STR      R0,[SP, #+0]
    521            
    522            codeaddr = SdCodeAddr;
   \   00000024   ........           LDR      R0,??DataTable65  ;; SdCodeAddr
   \   00000028   005090E5           LDR      R5,[R0, #+0]
    523            time = timestamp;
   \   0000002C   ........           LDR      R0,??DataTable64  ;; timestamp
   \   00000030   004090E5           LDR      R4,[R0, #+0]
    524            TRACE_INFO("STARTTIME:%d\n\r",time);
   \   00000034   0410A0E1           MOV      R1,R4
   \   00000038   58029FE5           LDR      R0,??LoadApp_0   ;; `?<Constant "-I- STARTTIME:%d\\n\\r">`
   \   0000003C   ........           BL       printf
    525            TRACE_INFO("IN LOADAPP\n\r");
   \   00000040   54029FE5           LDR      R0,??LoadApp_0+0x4  ;; `?<Constant "-I- IN LOADAPP\\n\\r">`
   \   00000044   ........           BL       printf
    526            if(crc ==interface->CRC )
   \   00000048   00009DE5           LDR      R0,[SP, #+0]
   \   0000004C   ........           LDR      R1,??DataTable76  ;; interface
   \   00000050   001091E5           LDR      R1,[R1, #+0]
   \   00000054   0C1091E5           LDR      R1,[R1, #+12]
   \   00000058   010050E1           CMP      R0,R1
   \   0000005C   8A00001A           BNE      ??LoadApp_1
    527            {    
    528            
    529              for(PageNum=1; PageNum<AT45_PageNumber(&at45); PageNum++)
   \   00000060   0160A0E3           MOV      R6,#+1
   \   00000064   080000EA           B        ??LoadApp_2
    530              {
    531                //将dataflash的数据写入sdram以便于数据的包装
    532                memset(pBuffer, 0, AT45_PageSize(&at45));
    533                  AT45_Read(&at45, pBuffer, AT45_PageSize(&at45), PageNum * AT45_PageSize(&at45));
    534                  for (j=0; j < AT45_PageSize(&at45); j++)
    535                  {
    536                    *codeaddr = pBuffer[j];
   \                     ??LoadApp_3:
   \   00000068   ........           LDR      R0,??DataTable61  ;; pBuffer
   \   0000006C   0000D7E7           LDRB     R0,[R7, +R0]
   \   00000070   0100C5E4           STRB     R0,[R5], #+1
    537                    codeaddr++;     
    538                  } 
   \   00000074   017087E2           ADD      R7,R7,#+1
   \                     ??LoadApp_4:
   \   00000078   ........           LDR      R0,??DataTable73  ;; at45
   \   0000007C   ........           BL       AT45_PageSize
   \   00000080   000057E1           CMP      R7,R0
   \   00000084   F7FFFF3A           BCC      ??LoadApp_3
   \   00000088   016086E2           ADD      R6,R6,#+1
   \                     ??LoadApp_2:
   \   0000008C   ........           LDR      R0,??DataTable72  ;; at45 + 28
   \   00000090   000090E5           LDR      R0,[R0, #+0]
   \   00000094   000090E5           LDR      R0,[R0, #+0]
   \   00000098   000056E1           CMP      R6,R0
   \   0000009C   1100002A           BCS      ??LoadApp_5
   \   000000A0   ........           LDR      R0,??DataTable73  ;; at45
   \   000000A4   ........           BL       AT45_PageSize
   \   000000A8   0020A0E1           MOV      R2,R0
   \   000000AC   0010A0E3           MOV      R1,#+0
   \   000000B0   ........           LDR      R0,??DataTable61  ;; pBuffer
   \   000000B4   ........           BL       memset
   \   000000B8   ........           LDR      R0,??DataTable73  ;; at45
   \   000000BC   ........           BL       AT45_PageSize
   \   000000C0   0070A0E1           MOV      R7,R0
   \   000000C4   ........           LDR      R0,??DataTable73  ;; at45
   \   000000C8   ........           BL       AT45_PageSize
   \   000000CC   970603E0           MUL      R3,R7,R6
   \   000000D0   0020A0E1           MOV      R2,R0
   \   000000D4   ........           LDR      R1,??DataTable61  ;; pBuffer
   \   000000D8   ........           LDR      R0,??DataTable73  ;; at45
   \   000000DC   ........           BL       AT45_Read
   \   000000E0   0070A0E3           MOV      R7,#+0
   \   000000E4   E3FFFFEA           B        ??LoadApp_4
    539              }
    540              
    541              //将数据进行包装,为下一步写入做准备
    542              tmp = (unsigned char *)(SdCodeAddr + interface->DFAddr - 528);
   \                     ??LoadApp_5:
   \   000000E8   0F00E0E3           MVN      R0,#+15
   \   000000EC   800FC0E3           BIC      R0,R0,#0x200
   \   000000F0   ........           LDR      R1,??DataTable76  ;; interface
   \   000000F4   001091E5           LDR      R1,[R1, #+0]
   \   000000F8   041091E5           LDR      R1,[R1, #+4]
   \   000000FC   ........           LDR      R2,??DataTable65  ;; SdCodeAddr
   \   00000100   002092E5           LDR      R2,[R2, #+0]
   \   00000104   021081E0           ADD      R1,R1,R2
   \   00000108   015080E0           ADD      R5,R0,R1
    543              TRACE_INFO("tmp address:%x\n\r",tmp);
   \   0000010C   0510A0E1           MOV      R1,R5
   \   00000110   88019FE5           LDR      R0,??LoadApp_0+0x8  ;; `?<Constant "-I- tmp address:%x\\n\\r">`
   \   00000114   ........           BL       printf
    544              TRACE_INFO("CSIZE:%x\n\r",interface->CSize);
   \   00000118   ........           LDR      R0,??DataTable76  ;; interface
   \   0000011C   000090E5           LDR      R0,[R0, #+0]
   \   00000120   081090E5           LDR      R1,[R0, #+8]
   \   00000124   78019FE5           LDR      R0,??LoadApp_0+0xC  ;

⌨️ 快捷键说明

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