ARM GAS /tmp/ccstDBwl.s page 1 1 .syntax unified 2 .cpu cortex-m0 3 .fpu softvfp 4 .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal 5 .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions 6 .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model 7 .eabi_attribute 24, 1 @ Tag_ABI_align8_needed 8 .eabi_attribute 25, 1 @ Tag_ABI_align8_preserved 9 .eabi_attribute 26, 1 @ Tag_ABI_enum_size 10 .eabi_attribute 30, 6 @ Tag_ABI_optimization_goals 11 .eabi_attribute 34, 0 @ Tag_CPU_unaligned_access 12 .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t 13 .file "crt.c" 14 @ GNU C11 (GNU Tools for ARM Embedded Processors) version 5.4.1 20160609 (release) [ARM/embedded-5- 15 @ compiled by GNU C version 4.7.4, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 16 @ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 17 @ options passed: -I . -I ./inc -imultilib armv6-m 18 @ -iprefix /opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/ 19 @ -isysroot /opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/bin/../arm-none-eabi 20 @ -MD src/crt.d -MF .dep/crt.o.d -MP -MQ src/crt.o -D__USES_INITFINI__ 21 @ -D RUN_FROM_FLASH=1 src/crt.c -mcpu=cortex-m0 -mthumb 22 @ -auxbase-strip src/crt.o -gdwarf-2 -O0 -Wall -Wstrict-prototypes 23 @ -fomit-frame-pointer -fverbose-asm 24 @ options enabled: -faggressive-loop-optimizations -fauto-inc-dec 25 @ -fchkp-check-incomplete-type -fchkp-check-read -fchkp-check-write 26 @ -fchkp-instrument-calls -fchkp-narrow-bounds -fchkp-optimize 27 @ -fchkp-store-bounds -fchkp-use-static-bounds 28 @ -fchkp-use-static-const-bounds -fchkp-use-wrappers -fcommon 29 @ -fdelete-null-pointer-checks -fdwarf2-cfi-asm -fearly-inlining 30 @ -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fgnu-runtime 31 @ -fgnu-unique -fident -finline-atomics -fira-hoist-pressure 32 @ -fira-share-save-slots -fira-share-spill-slots -fivopts 33 @ -fkeep-static-consts -fleading-underscore -flifetime-dse 34 @ -flto-odr-type-merging -fmath-errno -fmerge-debug-strings 35 @ -fomit-frame-pointer -fpeephole -fprefetch-loop-arrays 36 @ -freg-struct-return -fsched-critical-path-heuristic 37 @ -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock 38 @ -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec 39 @ -fsched-spec-insn-heuristic -fsched-stalled-insns-dep 40 @ -fsemantic-interposition -fshow-column -fsigned-zeros 41 @ -fsplit-ivs-in-unroller -fstdarg-opt -fstrict-volatile-bitfields 42 @ -fsync-libcalls -ftrapping-math -ftree-coalesce-vars -ftree-cselim 43 @ -ftree-forwprop -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon 44 @ -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop 45 @ -ftree-reassoc -ftree-scev-cprop -funit-at-a-time -fverbose-asm 46 @ -fzero-initialized-in-bss -mlittle-endian -mpic-data-is-text-relative 47 @ -msched-prolog -mthumb -mvectorize-with-neon-quad 48 49 .text 50 .Ltext0: 51 .cfi_sections .debug_frame 52 .align 2 53 .global ResetHandler 54 .code 16 55 .thumb_func 56 .type ResetHandler, %function 57 ResetHandler: ARM GAS /tmp/ccstDBwl.s page 2 58 .LFB0: 59 .file 1 "src/crt.c" 1:src/crt.c **** /*=========================================================================*/ 2:src/crt.c **** /* C Run-Time for bare metal DesignStart M0 */ 3:src/crt.c **** /* - assumes all memory is equal so we can run code from the text segment */ 4:src/crt.c **** /*=========================================================================*/ 5:src/crt.c **** 6:src/crt.c **** #include 7:src/crt.c **** 8:src/crt.c **** /*=========================================================================*/ 9:src/crt.c **** /* DEFINE: All extern Data */ 10:src/crt.c **** /*=========================================================================*/ 11:src/crt.c **** /* these are defined by the linker script */ 12:src/crt.c **** extern unsigned long _sbss; 13:src/crt.c **** extern unsigned long _ebss; 14:src/crt.c **** 15:src/crt.c **** /* This is the main */ 16:src/crt.c **** extern int main (void); 17:src/crt.c **** 18:src/crt.c **** /***************************************************************************/ 19:src/crt.c **** /* ResetHandler */ 20:src/crt.c **** /* */ 21:src/crt.c **** /* This is called before main and never returns */ 22:src/crt.c **** /***************************************************************************/ 23:src/crt.c **** void ResetHandler (void) 24:src/crt.c **** { 60 .loc 1 24 0 61 .cfi_startproc 62 @ args = 0, pretend = 0, frame = 8 63 @ frame_needed = 0, uses_anonymous_args = 0 64 0000 00B5 push {lr} @ 65 .LCFI0: 66 .cfi_def_cfa_offset 4 67 .cfi_offset 14, -4 68 0002 83B0 sub sp, sp, #12 @,, 69 .LCFI1: 70 .cfi_def_cfa_offset 16 25:src/crt.c **** uint32_t *pDest; 26:src/crt.c **** 27:src/crt.c **** /* BSS segment (if it exists) must be cleared before calling main */ 28:src/crt.c **** pDest = &_sbss; 71 .loc 1 28 0 72 0004 074B ldr r3, .L5 @ tmp111, 73 0006 0193 str r3, [sp, #4] @ tmp111, pDest 29:src/crt.c **** while(pDest < &_ebss) 74 .loc 1 29 0 75 0008 04E0 b .L2 @ 76 .L3: 30:src/crt.c **** { 31:src/crt.c **** *pDest++ = 0; 77 .loc 1 31 0 78 000a 019B ldr r3, [sp, #4] @ D.4226, pDest 79 000c 1A1D adds r2, r3, #4 @ tmp112, D.4226, 80 000e 0192 str r2, [sp, #4] @ tmp112, pDest 81 0010 0022 movs r2, #0 @ tmp113, 82 0012 1A60 str r2, [r3] @ tmp113, *_5 83 .L2: ARM GAS /tmp/ccstDBwl.s page 3 29:src/crt.c **** while(pDest < &_ebss) 84 .loc 1 29 0 85 0014 019A ldr r2, [sp, #4] @ tmp114, pDest 86 0016 044B ldr r3, .L5+4 @ tmp115, 87 0018 9A42 cmp r2, r3 @ tmp114, tmp115 88 001a F6D3 bcc .L3 @, 32:src/crt.c **** } 33:src/crt.c **** 34:src/crt.c **** /* call main */ 35:src/crt.c **** main(); 89 .loc 1 35 0 90 001c FFF7FEFF bl main @ 91 .L4: 36:src/crt.c **** 37:src/crt.c **** /* This is an embedded program so won't terminate even if main returns */ 38:src/crt.c **** while(1) {}; 92 .loc 1 38 0 discriminator 1 93 0020 FEE7 b .L4 @ 94 .L6: 95 0022 C046 .align 2 96 .L5: 97 0024 00000000 .word _sbss 98 0028 00000000 .word _ebss 99 .cfi_endproc 100 .LFE0: 101 .size ResetHandler, .-ResetHandler 102 .Letext0: 103 .file 2 "/opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/machine/_default_typ 104 .file 3 "/opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/sys/_stdint.h" 105 .section .debug_info,"",%progbits 106 .Ldebug_info0: 107 0000 C7000000 .4byte 0xc7 108 0004 0200 .2byte 0x2 109 0006 00000000 .4byte .Ldebug_abbrev0 110 000a 04 .byte 0x4 111 000b 01 .uleb128 0x1 112 000c 5C000000 .4byte .LASF13 113 0010 0C .byte 0xc 114 0011 06000000 .4byte .LASF14 115 0015 0F010000 .4byte .LASF15 116 0019 00000000 .4byte .Ltext0 117 001d 2C000000 .4byte .Letext0 118 0021 00000000 .4byte .Ldebug_line0 119 0025 02 .uleb128 0x2 120 0026 01 .byte 0x1 121 0027 06 .byte 0x6 122 0028 64010000 .4byte .LASF0 123 002c 02 .uleb128 0x2 124 002d 01 .byte 0x1 125 002e 08 .byte 0x8 126 002f 1C000000 .4byte .LASF1 127 0033 02 .uleb128 0x2 128 0034 02 .byte 0x2 129 0035 05 .byte 0x5 130 0036 48010000 .4byte .LASF2 131 003a 02 .uleb128 0x2 132 003b 02 .byte 0x2 ARM GAS /tmp/ccstDBwl.s page 4 133 003c 07 .byte 0x7 134 003d 49000000 .4byte .LASF3 135 0041 02 .uleb128 0x2 136 0042 04 .byte 0x4 137 0043 05 .byte 0x5 138 0044 5B010000 .4byte .LASF4 139 0048 03 .uleb128 0x3 140 0049 E0000000 .4byte .LASF9 141 004d 02 .byte 0x2 142 004e 41 .byte 0x41 143 004f 53000000 .4byte 0x53 144 0053 02 .uleb128 0x2 145 0054 04 .byte 0x4 146 0055 07 .byte 0x7 147 0056 2A000000 .4byte .LASF5 148 005a 02 .uleb128 0x2 149 005b 08 .byte 0x8 150 005c 05 .byte 0x5 151 005d 3A010000 .4byte .LASF6 152 0061 02 .uleb128 0x2 153 0062 08 .byte 0x8 154 0063 07 .byte 0x7 155 0064 F8000000 .4byte .LASF7 156 0068 04 .uleb128 0x4 157 0069 04 .byte 0x4 158 006a 05 .byte 0x5 159 006b 696E7400 .ascii "int\000" 160 006f 02 .uleb128 0x2 161 0070 04 .byte 0x4 162 0071 07 .byte 0x7 163 0072 EB000000 .4byte .LASF8 164 0076 03 .uleb128 0x3 165 0077 52010000 .4byte .LASF10 166 007b 03 .byte 0x3 167 007c 30 .byte 0x30 168 007d 48000000 .4byte 0x48 169 0081 05 .uleb128 0x5 170 0082 01 .byte 0x1 171 0083 3C000000 .4byte .LASF16 172 0087 01 .byte 0x1 173 0088 17 .byte 0x17 174 0089 01 .byte 0x1 175 008a 00000000 .4byte .LFB0 176 008e 2C000000 .4byte .LFE0 177 0092 00000000 .4byte .LLST0 178 0096 01 .byte 0x1 179 0097 AA000000 .4byte 0xaa 180 009b 06 .uleb128 0x6 181 009c 16000000 .4byte .LASF17 182 00a0 01 .byte 0x1 183 00a1 19 .byte 0x19 184 00a2 AA000000 .4byte 0xaa 185 00a6 02 .byte 0x2 186 00a7 91 .byte 0x91 187 00a8 74 .sleb128 -12 188 00a9 00 .byte 0 189 00aa 07 .uleb128 0x7 ARM GAS /tmp/ccstDBwl.s page 5 190 00ab 04 .byte 0x4 191 00ac 76000000 .4byte 0x76 192 00b0 08 .uleb128 0x8 193 00b1 00000000 .4byte .LASF11 194 00b5 01 .byte 0x1 195 00b6 0C .byte 0xc 196 00b7 53000000 .4byte 0x53 197 00bb 01 .byte 0x1 198 00bc 01 .byte 0x1 199 00bd 08 .uleb128 0x8 200 00be 10000000 .4byte .LASF12 201 00c2 01 .byte 0x1 202 00c3 0D .byte 0xd 203 00c4 53000000 .4byte 0x53 204 00c8 01 .byte 0x1 205 00c9 01 .byte 0x1 206 00ca 00 .byte 0 207 .section .debug_abbrev,"",%progbits 208 .Ldebug_abbrev0: 209 0000 01 .uleb128 0x1 210 0001 11 .uleb128 0x11 211 0002 01 .byte 0x1 212 0003 25 .uleb128 0x25 213 0004 0E .uleb128 0xe 214 0005 13 .uleb128 0x13 215 0006 0B .uleb128 0xb 216 0007 03 .uleb128 0x3 217 0008 0E .uleb128 0xe 218 0009 1B .uleb128 0x1b 219 000a 0E .uleb128 0xe 220 000b 11 .uleb128 0x11 221 000c 01 .uleb128 0x1 222 000d 12 .uleb128 0x12 223 000e 01 .uleb128 0x1 224 000f 10 .uleb128 0x10 225 0010 06 .uleb128 0x6 226 0011 00 .byte 0 227 0012 00 .byte 0 228 0013 02 .uleb128 0x2 229 0014 24 .uleb128 0x24 230 0015 00 .byte 0 231 0016 0B .uleb128 0xb 232 0017 0B .uleb128 0xb 233 0018 3E .uleb128 0x3e 234 0019 0B .uleb128 0xb 235 001a 03 .uleb128 0x3 236 001b 0E .uleb128 0xe 237 001c 00 .byte 0 238 001d 00 .byte 0 239 001e 03 .uleb128 0x3 240 001f 16 .uleb128 0x16 241 0020 00 .byte 0 242 0021 03 .uleb128 0x3 243 0022 0E .uleb128 0xe 244 0023 3A .uleb128 0x3a 245 0024 0B .uleb128 0xb 246 0025 3B .uleb128 0x3b ARM GAS /tmp/ccstDBwl.s page 6 247 0026 0B .uleb128 0xb 248 0027 49 .uleb128 0x49 249 0028 13 .uleb128 0x13 250 0029 00 .byte 0 251 002a 00 .byte 0 252 002b 04 .uleb128 0x4 253 002c 24 .uleb128 0x24 254 002d 00 .byte 0 255 002e 0B .uleb128 0xb 256 002f 0B .uleb128 0xb 257 0030 3E .uleb128 0x3e 258 0031 0B .uleb128 0xb 259 0032 03 .uleb128 0x3 260 0033 08 .uleb128 0x8 261 0034 00 .byte 0 262 0035 00 .byte 0 263 0036 05 .uleb128 0x5 264 0037 2E .uleb128 0x2e 265 0038 01 .byte 0x1 266 0039 3F .uleb128 0x3f 267 003a 0C .uleb128 0xc 268 003b 03 .uleb128 0x3 269 003c 0E .uleb128 0xe 270 003d 3A .uleb128 0x3a 271 003e 0B .uleb128 0xb 272 003f 3B .uleb128 0x3b 273 0040 0B .uleb128 0xb 274 0041 27 .uleb128 0x27 275 0042 0C .uleb128 0xc 276 0043 11 .uleb128 0x11 277 0044 01 .uleb128 0x1 278 0045 12 .uleb128 0x12 279 0046 01 .uleb128 0x1 280 0047 40 .uleb128 0x40 281 0048 06 .uleb128 0x6 282 0049 9642 .uleb128 0x2116 283 004b 0C .uleb128 0xc 284 004c 01 .uleb128 0x1 285 004d 13 .uleb128 0x13 286 004e 00 .byte 0 287 004f 00 .byte 0 288 0050 06 .uleb128 0x6 289 0051 34 .uleb128 0x34 290 0052 00 .byte 0 291 0053 03 .uleb128 0x3 292 0054 0E .uleb128 0xe 293 0055 3A .uleb128 0x3a 294 0056 0B .uleb128 0xb 295 0057 3B .uleb128 0x3b 296 0058 0B .uleb128 0xb 297 0059 49 .uleb128 0x49 298 005a 13 .uleb128 0x13 299 005b 02 .uleb128 0x2 300 005c 0A .uleb128 0xa 301 005d 00 .byte 0 302 005e 00 .byte 0 303 005f 07 .uleb128 0x7 ARM GAS /tmp/ccstDBwl.s page 7 304 0060 0F .uleb128 0xf 305 0061 00 .byte 0 306 0062 0B .uleb128 0xb 307 0063 0B .uleb128 0xb 308 0064 49 .uleb128 0x49 309 0065 13 .uleb128 0x13 310 0066 00 .byte 0 311 0067 00 .byte 0 312 0068 08 .uleb128 0x8 313 0069 34 .uleb128 0x34 314 006a 00 .byte 0 315 006b 03 .uleb128 0x3 316 006c 0E .uleb128 0xe 317 006d 3A .uleb128 0x3a 318 006e 0B .uleb128 0xb 319 006f 3B .uleb128 0x3b 320 0070 0B .uleb128 0xb 321 0071 49 .uleb128 0x49 322 0072 13 .uleb128 0x13 323 0073 3F .uleb128 0x3f 324 0074 0C .uleb128 0xc 325 0075 3C .uleb128 0x3c 326 0076 0C .uleb128 0xc 327 0077 00 .byte 0 328 0078 00 .byte 0 329 0079 00 .byte 0 330 .section .debug_loc,"",%progbits 331 .Ldebug_loc0: 332 .LLST0: 333 0000 00000000 .4byte .LFB0-.Ltext0 334 0004 02000000 .4byte .LCFI0-.Ltext0 335 0008 0200 .2byte 0x2 336 000a 7D .byte 0x7d 337 000b 00 .sleb128 0 338 000c 02000000 .4byte .LCFI0-.Ltext0 339 0010 04000000 .4byte .LCFI1-.Ltext0 340 0014 0200 .2byte 0x2 341 0016 7D .byte 0x7d 342 0017 04 .sleb128 4 343 0018 04000000 .4byte .LCFI1-.Ltext0 344 001c 2C000000 .4byte .LFE0-.Ltext0 345 0020 0200 .2byte 0x2 346 0022 7D .byte 0x7d 347 0023 10 .sleb128 16 348 0024 00000000 .4byte 0 349 0028 00000000 .4byte 0 350 .section .debug_aranges,"",%progbits 351 0000 1C000000 .4byte 0x1c 352 0004 0200 .2byte 0x2 353 0006 00000000 .4byte .Ldebug_info0 354 000a 04 .byte 0x4 355 000b 00 .byte 0 356 000c 0000 .2byte 0 357 000e 0000 .2byte 0 358 0010 00000000 .4byte .Ltext0 359 0014 2C000000 .4byte .Letext0-.Ltext0 360 0018 00000000 .4byte 0 ARM GAS /tmp/ccstDBwl.s page 8 361 001c 00000000 .4byte 0 362 .section .debug_line,"",%progbits 363 .Ldebug_line0: 364 0000 F6000000 .section .debug_str,"MS",%progbits,1 364 0200D700 364 00000201 364 FB0E0D00 364 01010101 365 .LASF11: 366 0000 5F736273 .ascii "_sbss\000" 366 7300 367 .LASF14: 368 0006 7372632F .ascii "src/crt.c\000" 368 6372742E 368 6300 369 .LASF12: 370 0010 5F656273 .ascii "_ebss\000" 370 7300 371 .LASF17: 372 0016 70446573 .ascii "pDest\000" 372 7400 373 .LASF1: 374 001c 756E7369 .ascii "unsigned char\000" 374 676E6564 374 20636861 374 7200 375 .LASF5: 376 002a 6C6F6E67 .ascii "long unsigned int\000" 376 20756E73 376 69676E65 376 6420696E 376 7400 377 .LASF16: 378 003c 52657365 .ascii "ResetHandler\000" 378 7448616E 378 646C6572 378 00 379 .LASF3: 380 0049 73686F72 .ascii "short unsigned int\000" 380 7420756E 380 7369676E 380 65642069 380 6E7400 381 .LASF13: 382 005c 474E5520 .ascii "GNU C11 5.4.1 20160609 (release) [ARM/embedded-5-br" 382 43313120 382 352E342E 382 31203230 382 31363036 383 008f 616E6368 .ascii "anch revision 237715] -mcpu=cortex-m0 -mthumb -gdwa" 383 20726576 383 6973696F 383 6E203233 383 37373135 384 00c2 72662D32 .ascii "rf-2 -O0 -fomit-frame-pointer\000" 384 202D4F30 384 202D666F ARM GAS /tmp/ccstDBwl.s page 9 384 6D69742D 384 6672616D 385 .LASF9: 386 00e0 5F5F7569 .ascii "__uint32_t\000" 386 6E743332 386 5F7400 387 .LASF8: 388 00eb 756E7369 .ascii "unsigned int\000" 388 676E6564 388 20696E74 388 00 389 .LASF7: 390 00f8 6C6F6E67 .ascii "long long unsigned int\000" 390 206C6F6E 390 6720756E 390 7369676E 390 65642069 391 .LASF15: 392 010f 2F6C6F63 .ascii "/localusers/bim/design/ams/M0chip/Software\000" 392 616C7573 392 6572732F 392 62696D2F 392 64657369 393 .LASF6: 394 013a 6C6F6E67 .ascii "long long int\000" 394 206C6F6E 394 6720696E 394 7400 395 .LASF2: 396 0148 73686F72 .ascii "short int\000" 396 7420696E 396 7400 397 .LASF10: 398 0152 75696E74 .ascii "uint32_t\000" 398 33325F74 398 00 399 .LASF4: 400 015b 6C6F6E67 .ascii "long int\000" 400 20696E74 400 00 401 .LASF0: 402 0164 7369676E .ascii "signed char\000" 402 65642063 402 68617200 403 .ident "GCC: (GNU Tools for ARM Embedded Processors) 5.4.1 20160609 (release) [ARM/embedded-5-bran ARM GAS /tmp/ccstDBwl.s page 10 DEFINED SYMBOLS *ABS*:00000000 crt.c /tmp/ccstDBwl.s:52 .text:00000000 $t /tmp/ccstDBwl.s:57 .text:00000000 ResetHandler /tmp/ccstDBwl.s:97 .text:00000024 $d .debug_frame:00000010 $d UNDEFINED SYMBOLS main _sbss _ebss