Error RLP power function will not fit in RAM

No, not using any math function. Using << for power of 2 function. Not loading any unnecessary libraries. I’ve trimmed out all the unnecessary code and it’s still too big. Check out the attached elf file below and let me know if there’s any unnecessary stuff that’s getting loaded to eat up RAM.

c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_addsubdf3.o)
obj\cerberus_43\demo.o (__aeabi_dsub)
c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_muldivdf3.o)
obj\cerberus_43\demo.o (__aeabi_dmul)
c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_cmpdf2.o)
obj\cerberus_43\demo.o (__aeabi_dcmpeq)
c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_fixdfsi.o)
obj\cerberus_43\demo.o (__aeabi_d2iz)

Memory Configuration

Name Origin Length Attributes
RAM 0x2001c000 0x00000ffc xrw
default 0x00000000 0xffffffff

Linker script and memory map

LOAD obj\cerberus_43\demo.o
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/…/…/…/…/arm-none-eabi/lib/armv7e-m/fpu\libc.a
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a
START GROUP
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/…/…/…/…/arm-none-eabi/lib/armv7e-m/fpu\libc.a
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/…/…/…/…/arm-none-eabi/lib/armv7e-m/fpu\libg.a
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/…/…/…/…/arm-none-eabi/lib/armv7e-m/fpu\libm.a
LOAD c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/…/…/…/…/arm-none-eabi/lib/armv7e-m/fpu\libnosys.a
END GROUP
0x00000000 . = ALIGN (0x4)

.text 0x2001c000 0x1034
*(.text)
.text 0x2001c000 0x740 obj\cerberus_43\demo.o
0x2001c000 FUNCTION_3
0x2001c0dc FUNCTION_2
0x2001c430 RLP_FUNCTION_1
.text 0x2001c740 0x370 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_addsubdf3.o)
0x2001c740 __aeabi_drsub
0x2001c748 __aeabi_dsub
0x2001c748 __subdf3
0x2001c74c __aeabi_dadd
0x2001c74c __adddf3
0x2001c9c4 __floatunsidf
0x2001c9c4 __aeabi_ui2d
0x2001c9e4 __floatsidf
0x2001c9e4 __aeabi_i2d
0x2001ca08 __aeabi_f2d
0x2001ca08 __extendsfdf2
0x2001ca44 __floatundidf
0x2001ca44 __aeabi_ul2d
0x2001ca54 __floatdidf
0x2001ca54 __aeabi_l2d
.text 0x2001cab0 0x424 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_muldivdf3.o)
0x2001cab0 __aeabi_dmul
0x2001cab0 __muldf3
0x2001cd04 __divdf3
0x2001cd04 __aeabi_ddiv
.text 0x2001ced4 0x110 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_cmpdf2.o)
0x2001ced4 __gtdf2
0x2001ced4 __gedf2
0x2001cedc __ltdf2
0x2001cedc __ledf2
0x2001cee4 __nedf2
0x2001cee4 __eqdf2
0x2001cee4 __cmpdf2
0x2001cf60 __aeabi_cdrcmple
0x2001cf70 __aeabi_cdcmpeq
0x2001cf70 __aeabi_cdcmple
0x2001cf80 __aeabi_dcmpeq
0x2001cf94 __aeabi_dcmplt
0x2001cfa8 __aeabi_dcmple
0x2001cfbc __aeabi_dcmpge
0x2001cfd0 __aeabi_dcmpgt
.text 0x2001cfe4 0x50 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_fixdfsi.o)
0x2001cfe4 __aeabi_d2iz
0x2001cfe4 __fixdfsi

.glue_7 0x2001d034 0x0
.glue_7 0x00000000 0x0 linker stubs

.glue_7t 0x2001d034 0x0
.glue_7t 0x00000000 0x0 linker stubs

.vfp11_veneer 0x2001d034 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs

.v4_bx 0x2001d034 0x0
.v4_bx 0x00000000 0x0 linker stubs

.iplt 0x2001d034 0x0
.iplt 0x00000000 0x0 obj\cerberus_43\demo.o

.rel.dyn 0x2001d034 0x0
.rel.iplt 0x00000000 0x0 obj\cerberus_43\demo.o
0x2001d034 . = ALIGN (0x4)

.rodata
*(.rodata)
0x2001d034 . = ALIGN (0x4)

.data 0x2001d034 0x0
*(.data)
.data 0x2001d034 0x0 obj\cerberus_43\demo.o
.data 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_addsubdf3.o)
.data 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_muldivdf3.o)
.data 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_cmpdf2.o)
.data 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_fixdfsi.o)

.igot.plt 0x2001d034 0x0
.igot.plt 0x00000000 0x0 obj\cerberus_43\demo.o
0x2001d034 . = ALIGN (0x4)

.bss 0x2001d034 0x0
0x2001d034 bss_start = .
*(.bss)
.bss 0x2001d034 0x0 obj\cerberus_43\demo.o
.bss 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_addsubdf3.o)
.bss 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_muldivdf3.o)
.bss 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_cmpdf2.o)
.bss 0x2001d034 0x0 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_fixdfsi.o)
0x2001d034 bss_end = .
0x2001d034 end = .
OUTPUT(bin\Cerberus_43\TemplateCerberus_43.elf elf32-littlearm)

.debug_info 0x00000000 0x59b
.debug_info 0x00000000 0x59b obj\cerberus_43\demo.o

.debug_abbrev 0x00000000 0x133
.debug_abbrev 0x00000000 0x133 obj\cerberus_43\demo.o

.debug_loc 0x00000000 0x7a
.debug_loc 0x00000000 0x7a obj\cerberus_43\demo.o

.debug_aranges 0x00000000 0x20
.debug_aranges
0x00000000 0x20 obj\cerberus_43\demo.o

.debug_line 0x00000000 0x29f
.debug_line 0x00000000 0x29f obj\cerberus_43\demo.o

.debug_str 0x00000000 0x32f
.debug_str 0x00000000 0x32f obj\cerberus_43\demo.o
0x389 (size before relaxing)

.comment 0x00000000 0x38
.comment 0x00000000 0x38 obj\cerberus_43\demo.o
0x39 (size before relaxing)

.ARM.attributes
0x00000000 0x39
.ARM.attributes
0x00000000 0x39 obj\cerberus_43\demo.o
.ARM.attributes
0x00000039 0x22 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_addsubdf3.o)
.ARM.attributes
0x0000005b 0x22 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_muldivdf3.o)
.ARM.attributes
0x0000007d 0x22 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_cmpdf2.o)
.ARM.attributes
0x0000009f 0x22 c:/program files (x86)/emblocks/2.30/share/em_armgcc/bin/…/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/fpu\libgcc.a(_arm_fixdfsi.o)

.debug_frame 0x00000000 0x58
.debug_frame 0x00000000 0x58 obj\cerberus_43\demo.o

Approach GHI directly for their consulting services.