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

📄 main.lst

📁 本代bootloader通过usb下载代码首先存放在sdram中
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000000   F1402DE9           PUSH     {R0,R4-R7,LR}
    455              unsigned int  page,i;
    456              unsigned char *tmp;
    457              unsigned int time;
    458              tmp = SdCodeAddr;
   \   00000004   ........           LDR      R0,??DataTable39  ;; SdCodeAddr
   \   00000008   004090E5           LDR      R4,[R0, #+0]
    459              time = timestamp;
   \   0000000C   08019FE5           LDR      R0,??LeadAPP_0   ;; timestamp
   \   00000010   005090E5           LDR      R5,[R0, #+0]
    460             unsigned long CRC;
    461                for(page=0;page< AT45_PageNumber(&at45);)
   \   00000014   0060A0E3           MOV      R6,#+0
   \   00000018   0F0000EA           B        ??LeadAPP_1
    462                {
    463                  // Verify that page has been erased correctly
    464                  memset(pBuffer, 0, AT45_PageSize(&at45));
    465                  AT45_Read(&at45, pBuffer, AT45_PageSize(&at45), page * AT45_PageSize(&at45));
    466                  for (i=0; i < AT45_PageSize(&at45); i++) {
    467                    *tmp = pBuffer[i];
   \                     ??LeadAPP_2:
   \   0000001C   ........           LDR      R0,??DataTable37  ;; pBuffer
   \   00000020   0000D7E7           LDRB     R0,[R7, +R0]
   \   00000024   0100C4E4           STRB     R0,[R4], #+1
    468                     tmp++;
    469                  }
   \   00000028   017087E2           ADD      R7,R7,#+1
   \                     ??LeadAPP_3:
   \   0000002C   ........           LDR      R0,??DataTable47  ;; at45
   \   00000030   ........           BL       AT45_PageSize
   \   00000034   000057E1           CMP      R7,R0
   \   00000038   F7FFFF3A           BCC      ??LeadAPP_2
    470                    tmp--;
    471                  TRACE_INFO("tmp:%x,buffer[0]:%x,buffer[527]:%x\n\r",*tmp,pBuffer[0],pBuffer[527]);
   \   0000003C   DC009FE5           LDR      R0,??LeadAPP_0+0x4  ;; pBuffer + 527
   \   00000040   0030D0E5           LDRB     R3,[R0, #+0]
   \   00000044   ........           LDR      R0,??DataTable37  ;; pBuffer
   \   00000048   0020D0E5           LDRB     R2,[R0, #+0]
   \   0000004C   011074E5           LDRB     R1,[R4, #-1]!
   \   00000050   CC009FE5           LDR      R0,??LeadAPP_0+0x8  ;; `?<Constant "-I- tmp:%x,buffer[0]:...">`
   \   00000054   ........           BL       printf
    472                  page++;
   \   00000058   016086E2           ADD      R6,R6,#+1
   \                     ??LeadAPP_1:
   \   0000005C   ........           LDR      R0,??DataTable46  ;; at45 + 28
   \   00000060   000090E5           LDR      R0,[R0, #+0]
   \   00000064   000090E5           LDR      R0,[R0, #+0]
   \   00000068   000056E1           CMP      R6,R0
   \   0000006C   1100002A           BCS      ??LeadAPP_4
   \   00000070   ........           LDR      R0,??DataTable47  ;; at45
   \   00000074   ........           BL       AT45_PageSize
   \   00000078   0020A0E1           MOV      R2,R0
   \   0000007C   0010A0E3           MOV      R1,#+0
   \   00000080   ........           LDR      R0,??DataTable37  ;; pBuffer
   \   00000084   ........           BL       memset
   \   00000088   ........           LDR      R0,??DataTable47  ;; at45
   \   0000008C   ........           BL       AT45_PageSize
   \   00000090   0070A0E1           MOV      R7,R0
   \   00000094   ........           LDR      R0,??DataTable47  ;; at45
   \   00000098   ........           BL       AT45_PageSize
   \   0000009C   0020A0E1           MOV      R2,R0
   \   000000A0   970603E0           MUL      R3,R7,R6
   \   000000A4   ........           LDR      R1,??DataTable37  ;; pBuffer
   \   000000A8   ........           LDR      R0,??DataTable47  ;; at45
   \   000000AC   ........           BL       AT45_Read
   \   000000B0   0070A0E3           MOV      R7,#+0
   \   000000B4   DCFFFFEA           B        ??LeadAPP_3
    473              }
    474             
    475              if(WhetherEmpty() == 1)
   \                     ??LeadAPP_4:
   \   000000B8   ........           BL       WhetherEmpty
   \   000000BC   010050E3           CMP      R0,#+1
   \   000000C0   1300000A           BEQ      ??LeadAPP_5
    476                {
    477                  return 1;
    478                }
    479              else
    480                {     
    481                  TRACE_INFO("The code has transmit to sdram\n\r");
   \   000000C4   5C009FE5           LDR      R0,??LeadAPP_0+0xC  ;; `?<Constant "-I- The code has tran...">`
   \   000000C8   ........           BL       printf
    482                  CRC = FullCRC(tmp,sizeof(tmp));
   \   000000CC   0410A0E3           MOV      R1,#+4
   \   000000D0   0400A0E1           MOV      R0,R4
   \   000000D4   ........           BL       FullCRC
   \   000000D8   0040A0E1           MOV      R4,R0
    483                  time = timestamp-time;
   \   000000DC   38009FE5           LDR      R0,??LeadAPP_0   ;; timestamp
   \   000000E0   000090E5           LDR      R0,[R0, #+0]
   \   000000E4   051040E0           SUB      R1,R0,R5
    484                  TRACE_INFO("CRC end time:%d\n\r",time);
                         ^
Remark[Pe181]: argument is incompatible with corresponding format string
          conversion
   \   000000E8   3C009FE5           LDR      R0,??LeadAPP_0+0x10  ;; `?<Constant "-I- CRC end time:%d\\n\\r">`
   \   000000EC   ........           BL       printf
    485                  TRACE_INFO("CRC over:%d\n\r",CRC);
                         ^
Remark[Pe181]: argument is incompatible with corresponding format string
          conversion

  static void AT45_Erase(At45 *pAt45, unsigned int address) 
              ^
"D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-ek\basic-dataflash-project\main.c",332  Warning[Pe177]: 
          function "AT45_Erase" was declared but never referenced
   \   000000F0   0410A0E1           MOV      R1,R4
   \   000000F4   34009FE5           LDR      R0,??LeadAPP_0+0x14  ;; `?<Constant "-I- CRC over:%d\\n\\r">`
   \   000000F8   ........           BL       printf
    486                  if(CRC == interface->CRC)
   \   000000FC   ........           LDR      R0,??DataTable51  ;; interface
   \   00000100   000090E5           LDR      R0,[R0, #+0]
   \   00000104   0C0090E5           LDR      R0,[R0, #+12]
   \   00000108   000054E1           CMP      R4,R0
    487                    {
    488                      return 0;
   \   0000010C   0000A003           MOVEQ    R0,#+0
    489                    }
    490                  else
    491                    {
    492                      return 1;
   \   00000110   0100A013           MOVNE    R0,#+1
   \                     ??LeadAPP_5:
   \   00000114   F840BDE8           POP      {R3-R7,LR}
   \   00000118   1EFF2FE1           BX       LR               ;; return
   \                     ??LeadAPP_0:
   \   0000011C   ........           DC32     timestamp
   \   00000120   ........           DC32     pBuffer + 527
   \   00000124   ........           DC32     `?<Constant "-I- tmp:%x,buffer[0]:...">`
   \   00000128   ........           DC32     `?<Constant "-I- The code has tran...">`
   \   0000012C   ........           DC32     `?<Constant "-I- CRC end time:%d\\n\\r">`
   \   00000130   ........           DC32     `?<Constant "-I- CRC over:%d\\n\\r">`
    493                    }   
    494                }
    495          }
    496          
    497          //------------------------------------------------------------------------------
    498          ///LoadApp() function was used to promote the application. So when the apllication
    499          // load the application code to the sdram we should save code in dataflash
    500          //\param information was used to store the code information
    501          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    502          static void LoadApp(INTERFACE * addr)
    503          {
   \                     LoadApp:
   \   00000000   F1402DE9           PUSH     {R0,R4-R7,LR}
    504            unsigned int j,PageNum;
    505            unsigned long PageUse;
    506            unsigned char *tmp;
    507            unsigned long CRC;
    508            interface = (struct Inter *)addr;
   \   00000004   ........           LDR      R1,??DataTable51  ;; interface
   \   00000008   000081E5           STR      R0,[R1, #+0]
    509            tmp = (unsigned char *)interface->address;
   \   0000000C   ........           LDR      R0,??DataTable51  ;; interface
   \   00000010   000090E5           LDR      R0,[R0, #+0]
   \   00000014   004090E5           LDR      R4,[R0, #+0]
    510            
    511            CRC = FullCRC(tmp, sizeof(tmp));
    512            if(CRC ==0 )
   \   00000018   0410A0E3           MOV      R1,#+4
   \   0000001C   0400A0E1           MOV      R0,R4
   \   00000020   ........           BL       FullCRC
   \   00000024   000050E3           CMP      R0,#+0
   \   00000028   2300001A           BNE      ??LoadApp_0
    513            {
    514              PageUse = interface->CSize/AT45_PageSize(&at45)+1;
   \   0000002C   ........           LDR      R0,??DataTable47  ;; at45
   \   00000030   ........           BL       AT45_PageSize
   \   00000034   0010A0E1           MOV      R1,R0
   \   00000038   ........           LDR      R0,??DataTable51  ;; interface
   \   0000003C   000090E5           LDR      R0,[R0, #+0]
   \   00000040   080090E5           LDR      R0,[R0, #+8]
   \   00000044   ........           BL       __aeabi_uidivmod
   \   00000048   015090E2           ADDS     R5,R0,#+1
    515              
    516              for(PageNum=0; PageNum<PageUse; PageNum++)
   \   0000004C   0060A0E3           MOV      R6,#+0
   \   00000050   1900000A           BEQ      ??LoadApp_0
    517              {
    518                for(j=0; j<AT45_PageSize(&at45); j++)
   \                     ??LoadApp_1:
   \   00000054   0070A0E3           MOV      R7,#+0
   \   00000058   030000EA           B        ??LoadApp_2
    519                {
    520                  pBuffer[j] = *tmp;
   \                     ??LoadApp_3:
   \   0000005C   ........           LDR      R0,??DataTable37  ;; pBuffer
   \   00000060   0110D4E4           LDRB     R1,[R4], #+1
   \   00000064   0010C7E7           STRB     R1,[R7, +R0]
    521                  tmp++;
    522                }
   \   00000068   017087E2           ADD      R7,R7,#+1
   \                     ??LoadApp_2:
   \   0000006C   ........           LDR      R0,??DataTable47  ;; at45
   \   00000070   ........           BL       AT45_PageSize
   \   00000074   000057E1           CMP      R7,R0
   \   00000078   F7FFFF3A           BCC      ??LoadApp_3
    523                AT45_Write(&at45,pBuffer,AT45_PageSize(&at45), (interface->DFAddr +PageNum * AT45_PageSize(&at45)));
   \   0000007C   ........           LDR      R0,??DataTable47  ;; at45
   \   00000080   ........           BL       AT45_PageSize
   \   00000084   0070A0E1           MOV      R7,R0
   \   00000088   ........           LDR      R0,??DataTable47  ;; at45
   \   0000008C   ........           BL       AT45_PageSize
   \   00000090   ........           LDR      R1,??DataTable51  ;; interface
   \   00000094   001091E5           LDR      R1,[R1, #+0]
   \   00000098   041091E5           LDR      R1,[R1, #+4]
   \   0000009C   971623E0           MLA      R3,R7,R6,R1
   \   000000A0   0020A0E1           MOV      R2,R0
   \   000000A4   ........           LDR      R1,??DataTable37  ;; pBuffer
   \   000000A8   ........           LDR      R0,??DataTable47  ;; at45
   \   000000AC   ........           BL       AT45_Write
    524              } 
   \   000000B0   016086E2           ADD      R6,R6,#+1
   \   000000B4   050056E1           CMP      R6,R5
   \   000000B8   E5FFFF3A           BCC      ??LoadApp_1
    525            }
    526          }
   \                     ??LoadApp_0:
   \   000000BC   F840BDE8           POP      {R3-R7,LR}
   \   000000C0   1EFF2FE1           BX       LR               ;; return
    527          //My function ending************************************************************
    528          //------------------------------------------------------------------------------
    529          /// Tests the At45 connected to the board by performing several command
    530          /// on each of its pages.
    531          //----------------------

⌨️ 快捷键说明

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