📄 start.lst
字号:
74
75 /* Copy initialized data from ROM to RAM */
76 n = data_rom_end - data_rom;
\ 0000002E 801A SUBS R0,R0,R2
\ 00000030 03E0 B.N ??common_startup_3
77 while (n--)
78 *data_ram++ = *data_rom++;
\ ??common_startup_4:
\ 00000032 1378 LDRB R3,[R2, #+0]
\ 00000034 0B70 STRB R3,[R1, #+0]
\ 00000036 521C ADDS R2,R2,#+1
\ 00000038 491C ADDS R1,R1,#+1
\ ??common_startup_3:
\ 0000003A 0300 MOVS R3,R0
\ 0000003C 581E SUBS R0,R3,#+1
\ 0000003E 002B CMP R3,#+0
\ 00000040 F7D1 BNE.N ??common_startup_4
79
80
81 /* Get the addresses for the .bss section (zero-initialized data) */
82 uint8* bss_start = __section_begin(".bss");
\ 00000042 .... LDR.N R1,??DataTable0_5
83 uint8* bss_end = __section_end(".bss");
\ 00000044 .... LDR.N R0,??DataTable0_6
84
85 /* Clear the zero-initialized data section */
86 n = bss_end - bss_start;
\ 00000046 401A SUBS R0,R0,R1
\ 00000048 02E0 B.N ??common_startup_5
87 while(n--)
88 *bss_start++ = 0;
\ ??common_startup_6:
\ 0000004A 0022 MOVS R2,#+0
\ 0000004C 0A70 STRB R2,[R1, #+0]
\ 0000004E 491C ADDS R1,R1,#+1
\ ??common_startup_5:
\ 00000050 0200 MOVS R2,R0
\ 00000052 501E SUBS R0,R2,#+1
\ 00000054 002A CMP R2,#+0
\ 00000056 F8D1 BNE.N ??common_startup_6
89
90 /* Get addresses for any code sections that need to be copied from ROM to RAM.
91 * The IAR tools have a predefined keyword that can be used to mark individual
92 * functions for execution from RAM. Add "__ramfunc" before the return type in
93 * the function prototype for any routines you need to execute from RAM instead
94 * of ROM. ex: __ramfunc void foo(void);
95 */
96 uint8* code_relocate_ram = __section_begin("CodeRelocateRam");
\ 00000058 .... LDR.N R1,??DataTable0_7
97 uint8* code_relocate = __section_begin("CodeRelocate");
\ 0000005A .... LDR.N R2,??DataTable0_8
98 uint8* code_relocate_end = __section_end("CodeRelocate");
\ 0000005C .... LDR.N R0,??DataTable0_9
99
100 /* Copy functions from ROM to RAM */
101 n = code_relocate_end - code_relocate;
\ 0000005E 801A SUBS R0,R0,R2
\ 00000060 03E0 B.N ??common_startup_7
102 while (n--)
103 *code_relocate_ram++ = *code_relocate++;
\ ??common_startup_8:
\ 00000062 1378 LDRB R3,[R2, #+0]
\ 00000064 0B70 STRB R3,[R1, #+0]
\ 00000066 521C ADDS R2,R2,#+1
\ 00000068 491C ADDS R1,R1,#+1
\ ??common_startup_7:
\ 0000006A 0300 MOVS R3,R0
\ 0000006C 581E SUBS R0,R3,#+1
\ 0000006E 002B CMP R3,#+0
\ 00000070 F7D1 BNE.N ??common_startup_8
104 }
\ 00000072 01BD POP {R0,PC} ;; return
\ In section .text, align 4, keep-with-next
\ ??DataTable0:
\ 00000000 ........ DC32 __VECTOR_RAM
\ In section .text, align 4, keep-with-next
\ ??DataTable0_1:
\ 00000000 ........ DC32 __VECTOR_TABLE
\ In section .text, align 4, keep-with-next
\ ??DataTable0_2:
\ 00000000 ........ DC32 SFB(`.data`)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_3:
\ 00000000 ........ DC32 SFB(`.data_init`)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_4:
\ 00000000 ........ DC32 SFE(`.data_init`)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_5:
\ 00000000 ........ DC32 SFB(`.bss`)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_6:
\ 00000000 ........ DC32 SFE(`.bss`)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_7:
\ 00000000 ........ DC32 SFB(CodeRelocateRam)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_8:
\ 00000000 ........ DC32 SFB(CodeRelocate)
\ In section .text, align 4, keep-with-next
\ ??DataTable0_9:
\ 00000000 ........ DC32 SFE(CodeRelocate)
Maximum stack usage in bytes:
Function .cstack
-------- -------
common_startup 8
start 8
Section sizes:
Function/Label Bytes
-------------- -----
start 20
common_startup 116
??DataTable0 4
??DataTable0_1 4
??DataTable0_2 4
??DataTable0_3 4
??DataTable0_4 4
??DataTable0_5 4
??DataTable0_6 4
??DataTable0_7 4
??DataTable0_8 4
??DataTable0_9 4
176 bytes in section .text
176 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -