• iar ewarm checksum crc32


     1 /*###ICF### Section handled by ICF editor, don't touch! ****/
     2 /*-Editor annotation file-*/
     3 /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
     4 /*-Memory Regions-*/
     5 define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
     6 define symbol __ICFEDIT_region_ROM_end__   = 0x0000FFFF;
     7 define symbol __ICFEDIT_region_RAM_start__ = 0x00010000;
     8 define symbol __ICFEDIT_region_RAM_end__   = 0x0001FFFF;
     9 /*-Sizes-*/
    10 define symbol __ICFEDIT_size_cstack__   = 0x2000;
    11 define symbol __ICFEDIT_size_heap__     = 0x8000;
    12 /**** End of ICF editor section. ###ICF###*/
    13 
    14 
    15 define memory mem with size = 4G;
    16 define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
    17 define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];
    18 
    19 define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
    20 define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };
    21 
    22 initialize by copy { readwrite };
    23 do not initialize  { section .noinit };
    24 
    25 // Project > Options > Build Actions > Post-build command line
    26 //
    27 // ielftool --checksum __checksum:4,crc32,0x0;__checksum_first_dword-__checksum_last_dword+3 --verbose "$TARGET_PATH$" "$TARGET_PATH$"
    28 
    29 define block RAM_CONTENT with fixed order
    30 {
    31   readwrite,
    32   block HEAP,
    33   block CSTACK
    34 };
    35 
    36 //define block ROM_CONTENT with fixed order
    37 //{
    38 //  readonly section read_only_start,
    39 //  readonly,
    40 //  readonly section read_only_end
    41 //};
    42 //place in ROM_region { block ROM_CONTENT };
    43 
    44 place at address mem:__ICFEDIT_region_ROM_start__ { readonly section read_only_start };
    45 
    46 //define block read_only_start { readonly section read_only_start };
    47 //place in ROM_region { first block read_only_start };
    48 
    49 place in ROM_region { readonly };
    50 
    51 define block read_only_end { readonly section read_only_end };
    52 place in ROM_region { last block read_only_end };
    53 
    54 place in RAM_region { block RAM_CONTENT };
     1         MODULE  startup
     2 
     3         EXTERN  main
     4 
     5         PUBLIC  __read_only_size
     6         PUBLIC  __iar_program_start
     7         PUBLIC  __checksum_first_dword
     8         PUBLIC  __checksum_last_dword
     9         PUBLIC  __checksum
    10 
    11         SECTION read_only_end:CODE:ROOT(2)
    12         CODE32
    13 __checksum_last_dword
    14         DCD     0x55AA55AA                        ; magic dword
    15 __checksum
    16         DCD     0x00000000                        ; will be filled ielftool
    17 __read_only_end
    18 
    19         ; Forward declaration of sections.
    20         SECTION CSTACK:DATA:NOROOT(3)
    21         SECTION read_only_start:CODE:ROOT(2)
    22         CODE32
    23 
    24 __read_only_start
    25 __checksum_first_dword
    26 RST     B       __iar_program_start               ; 0x00000000
    27 UND     B       __iar_program_start               ; 0x00000004
    28 SWI     B       __iar_program_start               ; 0x00000008
    29 IABT    B       __iar_program_start               ; 0x0000000C
    30 DABT    B       __iar_program_start               ; 0x00000010
    31 __read_only_size
    32 SIZ     DCD     __read_only_end-__read_only_start ; 0x00000014
    33 IRQ     B       __iar_program_start               ; 0x00000018
    34 FIQ     B       __iar_program_start               ; 0x0000001C
    35 
    36 ;-------------------------------------------------------------------------------
    37 __iar_program_start
    38 ;-------------------------------------------------------------------------------
    39         MSR       CPSR_c, #0x1F           ; Change to User mode, Enable IRQ/FIQ
    40         ldr       sp,=SFE(CSTACK)         ; End of CSTACK(user)
    41         B         main                    ; Note : use B not BL, because an
    42                                           ; application will never return
    43 
    44         END
    1 int main(void)
    2 {
    3   for (;;);
    4 }

  • 相关阅读:
    Android 操作系统的内存回收机制(转载)
    如何减少代码中的分支语句
    Android中动画学习
    Android中 AsyncTask
    Linux安装后更新系统
    看百度宣传片
    可爱的linux mint 11
    ubuntu 修改root密码
    SHA256加密算法封装[我的代码库]
    使用maven,svn和CruiseControl做持续集成
  • 原文地址:https://www.cnblogs.com/shangdawei/p/2841469.html
Copyright © 2020-2023  润新知