Files
EEPROM_programmer/build/sysmem.lst
2025-09-05 10:30:26 +02:00

233 lines
10 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/ccEFOvop.s page 1
1 .cpu cortex-m4
2 .eabi_attribute 27, 1
3 .eabi_attribute 28, 1
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 1
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .file "sysmem.c"
14 .text
15 .Ltext0:
16 .cfi_sections .debug_frame
17 .section .text._sbrk,"ax",%progbits
18 .align 1
19 .global _sbrk
20 .arch armv7e-m
21 .syntax unified
22 .thumb
23 .thumb_func
24 .fpu fpv4-sp-d16
26 _sbrk:
27 .LVL0:
28 .LFB0:
29 .file 1 "Core/Src/sysmem.c"
1:Core/Src/sysmem.c **** /**
2:Core/Src/sysmem.c **** ******************************************************************************
3:Core/Src/sysmem.c **** * @file sysmem.c
4:Core/Src/sysmem.c **** * @author Generated by STM32CubeMX
5:Core/Src/sysmem.c **** * @brief System Memory calls file
6:Core/Src/sysmem.c **** *
7:Core/Src/sysmem.c **** * For more information about which C functions
8:Core/Src/sysmem.c **** * need which of these lowlevel functions
9:Core/Src/sysmem.c **** * please consult the Newlib or Picolibc libc manual
10:Core/Src/sysmem.c **** ******************************************************************************
11:Core/Src/sysmem.c **** * @attention
12:Core/Src/sysmem.c **** *
13:Core/Src/sysmem.c **** * Copyright (c) 2025 STMicroelectronics.
14:Core/Src/sysmem.c **** * All rights reserved.
15:Core/Src/sysmem.c **** *
16:Core/Src/sysmem.c **** * This software is licensed under terms that can be found in the LICENSE file
17:Core/Src/sysmem.c **** * in the root directory of this software component.
18:Core/Src/sysmem.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
19:Core/Src/sysmem.c **** *
20:Core/Src/sysmem.c **** ******************************************************************************
21:Core/Src/sysmem.c **** */
22:Core/Src/sysmem.c ****
23:Core/Src/sysmem.c **** /* Includes */
24:Core/Src/sysmem.c **** #include <errno.h>
25:Core/Src/sysmem.c **** #include <stdint.h>
26:Core/Src/sysmem.c **** #include <stddef.h>
27:Core/Src/sysmem.c ****
28:Core/Src/sysmem.c **** /**
29:Core/Src/sysmem.c **** * Pointer to the current high watermark of the heap usage
ARM GAS /tmp/ccEFOvop.s page 2
30:Core/Src/sysmem.c **** */
31:Core/Src/sysmem.c **** static uint8_t *__sbrk_heap_end = NULL;
32:Core/Src/sysmem.c ****
33:Core/Src/sysmem.c **** /**
34:Core/Src/sysmem.c **** * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
35:Core/Src/sysmem.c **** * and others from the C library
36:Core/Src/sysmem.c **** *
37:Core/Src/sysmem.c **** * @verbatim
38:Core/Src/sysmem.c **** * ############################################################################
39:Core/Src/sysmem.c **** * # .data # .bss # newlib heap # MSP stack #
40:Core/Src/sysmem.c **** * # # # # Reserved by _Min_Stack_Size #
41:Core/Src/sysmem.c **** * ############################################################################
42:Core/Src/sysmem.c **** * ^-- RAM start ^-- _end _estack, RAM end --^
43:Core/Src/sysmem.c **** * @endverbatim
44:Core/Src/sysmem.c **** *
45:Core/Src/sysmem.c **** * This implementation starts allocating at the '_end' linker symbol
46:Core/Src/sysmem.c **** * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
47:Core/Src/sysmem.c **** * The implementation considers '_estack' linker symbol to be RAM end
48:Core/Src/sysmem.c **** * NOTE: If the MSP stack, at any point during execution, grows larger than the
49:Core/Src/sysmem.c **** * reserved size, please increase the '_Min_Stack_Size'.
50:Core/Src/sysmem.c **** *
51:Core/Src/sysmem.c **** * @param incr Memory size
52:Core/Src/sysmem.c **** * @return Pointer to allocated memory
53:Core/Src/sysmem.c **** */
54:Core/Src/sysmem.c **** void *_sbrk(ptrdiff_t incr)
55:Core/Src/sysmem.c **** {
30 .loc 1 55 1 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .loc 1 55 1 is_stmt 0 view .LVU1
35 0000 10B5 push {r4, lr}
36 .LCFI0:
37 .cfi_def_cfa_offset 8
38 .cfi_offset 4, -8
39 .cfi_offset 14, -4
40 0002 0346 mov r3, r0
56:Core/Src/sysmem.c **** extern uint8_t _end; /* Symbol defined in the linker script */
41 .loc 1 56 3 is_stmt 1 view .LVU2
57:Core/Src/sysmem.c **** extern uint8_t _estack; /* Symbol defined in the linker script */
42 .loc 1 57 3 view .LVU3
58:Core/Src/sysmem.c **** extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
43 .loc 1 58 3 view .LVU4
59:Core/Src/sysmem.c **** const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
44 .loc 1 59 3 view .LVU5
45 .loc 1 59 18 is_stmt 0 view .LVU6
46 0004 0C4A ldr r2, .L8
47 0006 0D49 ldr r1, .L8+4
60:Core/Src/sysmem.c **** const uint8_t *max_heap = (uint8_t *)stack_limit;
48 .loc 1 60 3 is_stmt 1 view .LVU7
49 .LVL1:
61:Core/Src/sysmem.c **** uint8_t *prev_heap_end;
50 .loc 1 61 3 view .LVU8
62:Core/Src/sysmem.c ****
63:Core/Src/sysmem.c **** /* Initialize heap end at first call */
64:Core/Src/sysmem.c **** if (NULL == __sbrk_heap_end)
51 .loc 1 64 3 view .LVU9
ARM GAS /tmp/ccEFOvop.s page 3
52 .loc 1 64 12 is_stmt 0 view .LVU10
53 0008 0D48 ldr r0, .L8+8
54 .LVL2:
55 .loc 1 64 12 view .LVU11
56 000a 0068 ldr r0, [r0]
57 .loc 1 64 6 view .LVU12
58 000c 40B1 cbz r0, .L6
59 .L2:
65:Core/Src/sysmem.c **** {
66:Core/Src/sysmem.c **** __sbrk_heap_end = &_end;
67:Core/Src/sysmem.c **** }
68:Core/Src/sysmem.c ****
69:Core/Src/sysmem.c **** /* Protect heap from growing into the reserved MSP stack */
70:Core/Src/sysmem.c **** if (__sbrk_heap_end + incr > max_heap)
60 .loc 1 70 3 is_stmt 1 view .LVU13
61 .loc 1 70 23 is_stmt 0 view .LVU14
62 000e 0C48 ldr r0, .L8+8
63 0010 0068 ldr r0, [r0]
64 0012 0344 add r3, r3, r0
65 .LVL3:
66 .loc 1 70 6 view .LVU15
67 0014 521A subs r2, r2, r1
68 0016 9342 cmp r3, r2
69 0018 06D8 bhi .L7
71:Core/Src/sysmem.c **** {
72:Core/Src/sysmem.c **** errno = ENOMEM;
73:Core/Src/sysmem.c **** return (void *)-1;
74:Core/Src/sysmem.c **** }
75:Core/Src/sysmem.c ****
76:Core/Src/sysmem.c **** prev_heap_end = __sbrk_heap_end;
70 .loc 1 76 3 is_stmt 1 view .LVU16
71 .LVL4:
77:Core/Src/sysmem.c **** __sbrk_heap_end += incr;
72 .loc 1 77 3 view .LVU17
73 .loc 1 77 19 is_stmt 0 view .LVU18
74 001a 094A ldr r2, .L8+8
75 001c 1360 str r3, [r2]
78:Core/Src/sysmem.c ****
79:Core/Src/sysmem.c **** return (void *)prev_heap_end;
76 .loc 1 79 3 is_stmt 1 view .LVU19
77 .LVL5:
78 .L1:
80:Core/Src/sysmem.c **** }
79 .loc 1 80 1 is_stmt 0 view .LVU20
80 001e 10BD pop {r4, pc}
81 .LVL6:
82 .L6:
66:Core/Src/sysmem.c **** }
83 .loc 1 66 5 is_stmt 1 view .LVU21
66:Core/Src/sysmem.c **** }
84 .loc 1 66 21 is_stmt 0 view .LVU22
85 0020 0748 ldr r0, .L8+8
86 0022 084C ldr r4, .L8+12
87 0024 0460 str r4, [r0]
88 0026 F2E7 b .L2
89 .LVL7:
90 .L7:
ARM GAS /tmp/ccEFOvop.s page 4
72:Core/Src/sysmem.c **** return (void *)-1;
91 .loc 1 72 5 is_stmt 1 view .LVU23
92 0028 FFF7FEFF bl __errno
93 .LVL8:
72:Core/Src/sysmem.c **** return (void *)-1;
94 .loc 1 72 11 is_stmt 0 view .LVU24
95 002c 0C23 movs r3, #12
96 002e 0360 str r3, [r0]
73:Core/Src/sysmem.c **** }
97 .loc 1 73 5 is_stmt 1 view .LVU25
73:Core/Src/sysmem.c **** }
98 .loc 1 73 12 is_stmt 0 view .LVU26
99 0030 4FF0FF30 mov r0, #-1
100 0034 F3E7 b .L1
101 .L9:
102 0036 00BF .align 2
103 .L8:
104 0038 00000000 .word _estack
105 003c 00000000 .word _Min_Stack_Size
106 0040 00000000 .word .LANCHOR0
107 0044 00000000 .word _end
108 .cfi_endproc
109 .LFE0:
111 .section .bss.__sbrk_heap_end,"aw",%nobits
112 .align 2
113 .set .LANCHOR0,. + 0
116 __sbrk_heap_end:
117 0000 00000000 .space 4
118 .text
119 .Letext0:
120 .file 2 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h"
121 .file 3 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h"
122 .file 4 "/usr/include/newlib/sys/errno.h"
ARM GAS /tmp/ccEFOvop.s page 5
DEFINED SYMBOLS
*ABS*:0000000000000000 sysmem.c
/tmp/ccEFOvop.s:18 .text._sbrk:0000000000000000 $t
/tmp/ccEFOvop.s:26 .text._sbrk:0000000000000000 _sbrk
/tmp/ccEFOvop.s:104 .text._sbrk:0000000000000038 $d
/tmp/ccEFOvop.s:112 .bss.__sbrk_heap_end:0000000000000000 $d
/tmp/ccEFOvop.s:116 .bss.__sbrk_heap_end:0000000000000000 __sbrk_heap_end
UNDEFINED SYMBOLS
__errno
_estack
_Min_Stack_Size
_end