This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Region `FLASH' overflowed by X bytes

Hello everybody!

I'm developing an application using CMSIS DSP library, so i included about 20 math files and using finctions from these files.

After compiling i get a linker errror:

1>            FLASH:      417260 B       256 KB    159.17%
1>             SRAM:       43728 B       128 KB     33.36%
1> c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `rodata' will not fit in region `FLASH'
1> c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 155116 bytes
1> collect2.exe: error: ld returned 1 exit status
 

As i know, NRF9160 has 1 Mb of FLASH, but linker tells that i have overflow of 256 Kb.

How can i fix this problem with linker or smth else in this situation?

Thank you!

Parents
  • Hello, Hakon

    Here it is:


    Building ‘zephyr/include/generated/driver-validation.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/driver_validation_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/driver_validation_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/kobj-types-enum.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/otype-to-str.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/kobj_types_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/kobj_types_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/misc/generated/syscalls.json’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/syscall_list.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/syscall_list_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/syscall_dispatch.c’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/syscall_list_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/syscall_macros.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/syscall_macros_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/syscall_macros_h_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_offsets’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/liboffsets.a’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘offsets.c’
    1> Archiving ‘liboffsets.a’
    Building ‘zephyr/include/generated/offsets.h’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/include/generated/offsets.h’
    Building ‘zephyr/CMakeFiles/offsets_h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/offsets_h’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__lib__bsdlib’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_app’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core__cortex_m’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core__cortex_m__mpu’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_drivers__adc’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_drivers__gpio’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_drivers__serial’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_kernel’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_lib__libc__newlib’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_subsys__app_memory’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_subsys__net’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_zephyr’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/linker.cmd’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/linker.cmd’
    Building ‘zephyr/CMakeFiles/linker_script’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/linker_script’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_zephyr_prebuilt’ from solution ‘build’ in configuration ‘Common’
    Building ‘libapp.a’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘FFT.c’
    2> Compiling ‘main.c’
    3> Compiling ‘CompressionNordic.c’
    4> Compiling ‘arm_rfft_f32.c’
    3> ../src/Periph/CompressionNordic.c:55:38: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
    3> ../src/Periph/CompressionNordic.c:105:9: warning: implicit declaration of function 'free'; did you mean 'frexp'? [-Wimplicit-function-declaration]
    3> ../src/Periph/CompressionNordic.c:59:19: warning: unused variable 'size_sign1' [-Wunused-variable]
    3> ../src/Periph/CompressionNordic.c:47:9: warning: unused variable 'k' [-Wunused-variable]
    3> ../src/Periph/CompressionNordic.c:108:1: warning: control reaches end of non-void function [-Wreturn-type]
    3> ../src/Periph/CompressionNordic.c:168:1: warning: control reaches end of non-void function [-Wreturn-type]
    3> ../src/Periph/CompressionNordic.c:227:1: warning: control reaches end of non-void function [-Wreturn-type]
    1> ../src/Periph/FFT.c:136:1: warning: control reaches end of non-void function [-Wreturn-type]
    1> ../src/Periph/FFT.c:301:1: warning: control reaches end of non-void function [-Wreturn-type]
    4> Compiling ‘arm_cfft_f32.c’
    2> ../src/main.c:212:6: warning: unused variable 'i' [-Wunused-variable]
    2> At top level:
    2> ../src/main.c:91:37: warning: 'm_2nd_channel_cfg' defined but not used [-Wunused-const-variable=]
    3> Compiling ‘arm_cfft_radix8_f32.c’
    1> Compiling ‘arm_common_tables.c’
    2> Compiling ‘arm_bitreversal2.c’
    4> Compiling ‘arm_const_structs.c’
    3> Compiling ‘arm_cmplx_mag_f32.c’
    2> Compiling ‘arm_max_f32.c’
    4> Compiling ‘arm_rfft_fast_f32.c’
    3> Compiling ‘arm_rfft_fast_init_f32.c’
    2> Compiling ‘arm_mult_f32.c’
    3> Compiling ‘arm_cmplx_mult_real_f32.c’
    4> Compiling ‘arm_cos_f32.c’
    2> Compiling ‘arm_fill_f32.c’
    3> Compiling ‘arm_copy_f32.c’
    4> Compiling ‘arm_add_f32.c’
    3> Compiling ‘arm_min_f32.c’
    2> Compiling ‘arm_mean_f32.c’
    2> Compiling ‘arm_offset_f32.c’
    4> Compiling ‘arm_std_f32.c’
    3> Compiling ‘arm_rfft_init_f32.c’
    2> Compiling ‘arm_dct4_init_f32.c’
    4> Compiling ‘arm_dct4_f32.c’
    3> Compiling ‘arm_cfft_radix4_init_f32.c’
    2> Compiling ‘arm_scale_f32.c’
    4> Compiling ‘arm_cmplx_mult_cmplx_f32.c’
    3> Compiling ‘arm_cfft_radix4_f32.c’
    4> Compiling ‘arm_bitreversal.c’
    Building ‘zephyr/libzephyr.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libapp.a’
    2> Compiling ‘isr_tables.c’
    3> Compiling ‘sw_isr_common.c’
    4> Compiling ‘arm_core_cmse.c’
    2> Compiling ‘work_q.c’
    3> Compiling ‘thread_entry.c’
    1> Compiling ‘fdtable.c’
    4> Compiling ‘crc32_sw.c’
    3> Compiling ‘crc16_sw.c’
    1> Compiling ‘mempool.c’
    2> Compiling ‘crc8_sw.c’
    4> Compiling ‘rb.c’
    3> Compiling ‘printk.c’
    2> Compiling ‘configs.c’
    1> Compiling ‘mpu_regions.c’
    2> Compiling ‘system_nrf9160.c’
    4> Compiling ‘soc.c’
    3> Compiling ‘nrfx_glue.c’
    1> Compiling ‘nrfx_uarte.c’
    2> Compiling ‘socket_offload.c’
    3> Compiling ‘rand32_timer.c’
    4> Compiling ‘uart_console.c’
    2> Compiling ‘nrf5_power_clock.c’
    3> Compiling ‘sys_clock_init.c’
    4> Compiling ‘nrf_rtc_timer.c’
    Building ‘zephyr/arch/arm/core/libarch__arm__core.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libzephyr.a’
    2> Assembling ‘exc_exit.S’
    3> Assembling ‘swap_helper.S’
    4> Assembling ‘cpu_idle.S’
    2> Assembling ‘fault_s.S’
    1> Assembling ‘isr_wrapper.S’
    3> Compiling ‘irq_init.c’
    2> Compiling ‘swap.c’
    4> Compiling ‘fault.c’
    1> Compiling ‘irq_manage.c’
    3> Compiling ‘thread.c’
    4> Compiling ‘fatal.c’
    2> Compiling ‘sys_fatal_error_handler.c’
    1> Compiling ‘thread_abort.c’
    Building ‘zephyr/arch/arm/core/cortex_m/libarch__arm__core__cortex_m.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core.a’
    2> Assembling ‘vector_table.S’
    3> Assembling ‘reset.S’
    4> Assembling ‘nmi_on_reset.S’
    1> Compiling ‘prep_c.c’
    2> Compiling ‘scb.c’
    3> Compiling ‘nmi.c’
    4> Compiling ‘exc_manage.c’
    Building ‘zephyr/arch/arm/core/cortex_m/mpu/libarch__arm__core__cortex_m__mpu.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core__cortex_m.a’
    2> Compiling ‘arm_core_mpu.c’
    3> Compiling ‘arm_mpu.c’
    Building ‘zephyr/lib/libc/newlib/liblib__libc__newlib.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core__cortex_m__mpu.a’
    2> Compiling ‘libc-hooks.c’
    Building ‘zephyr/subsys/app_memory/libsubsys__app_memory.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘liblib__libc__newlib.a’
    2> Compiling ‘app_memdomain.c’
    Building ‘zephyr/subsys/net/libsubsys__net.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__app_memory.a’
    2> Compiling ‘buf.c’
    3> Compiling ‘net_pkt.c’
    Building ‘zephyr/nrf/lib/bsdlib/lib..__nrf__lib__bsdlib.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__net.a’
    2> Compiling ‘bsd_os.c’
    3> Compiling ‘nrf91_sockets.c’
    Building ‘zephyr/drivers/adc/libdrivers__adc.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__lib__bsdlib.a’
    2> Compiling ‘adc_nrfx_saadc.c’
    Building ‘zephyr/drivers/gpio/libdrivers__gpio.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__adc.a’
    2> Compiling ‘gpio_nrfx.c’
    Building ‘zephyr/drivers/serial/libdrivers__serial.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__gpio.a’
    2> Compiling ‘uart_nrfx_uarte.c’
    Building ‘zephyr/kernel/libkernel.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__serial.a’
    2> Compiling ‘alert.c’
    1> Compiling ‘errno.c’
    3> Compiling ‘device.c’
    4> Compiling ‘idle.c’
    2> Compiling ‘init.c’
    3> Compiling ‘mailbox.c’
    1> Compiling ‘mem_slab.c’
    4> Compiling ‘mempool.c’
    1> Compiling ‘msg_q.c’
    2> Compiling ‘mutex.c’
    3> Compiling ‘pipes.c’
    4> Compiling ‘queue.c’
    2> Compiling ‘sched.c’
    1> Compiling ‘sem.c’
    3> Compiling ‘stack.c’
    4> Compiling ‘system_work_q.c’
    1> Compiling ‘thread.c’
    3> Compiling ‘thread_abort.c’
    4> Compiling ‘version.c’
    2> Compiling ‘work_q.c’
    4> Compiling ‘smp.c’
    3> Compiling ‘timeout.c’
    1> Compiling ‘timer.c’
    2> Compiling ‘poll.c’
    1> Archiving ‘libkernel.a’
    Building ‘zephyr/zephyr_prebuilt.elf’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘empty_file.c’
    1> Linking ‘zephyr_prebuilt.elf’
    1> Memory region         Used Size  Region Size  %age Used
    1>            FLASH:      417260 B       256 KB    159.17%
    1>             SRAM:       43728 B       128 KB     33.36%
    1> c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `rodata' will not fit in region `FLASH'
    1> c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 155116 bytes
    1> collect2.exe: error: ld returned 1 exit status
    1>         IDT_LIST:         152 B         2 KB      7.42%
    Build failed

  • If you try building some other project, do you get the same linker error or does it tell you have 256 KB available there as well?

  • Yes, every example project from NRF9160 compiles and works well.

    So, as I understand CMSIS DSP libvs have a lot of flash memory, and the message

    " FLASH:      417260 B       256 KB    159.17%"

    doesn't mean, that i use only PART of my flash memory?

  • mappy89 said:
    doesn't mean, that i use only PART of my flash memory?

     I'm not sure why it shows that you have just 256 KB available. Is there someway I can get access to these libraries that you are using, or could you provide them?

  • You can find CMSIS DSP libraries here: 
    https://github.com/ARM-software/CMSIS/tree/master/CMSIS/DSP_Lib

    Also i attached my CMakeLists.txt from this project. If you need any other sources/files, please tell me.



    #
    # Copyright (c) 2018 Nordic Semiconductor
    #
    # SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic
    #
    
    cmake_minimum_required(VERSION 3.8.2)
    
    include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
    project(NONE)
    
    target_sources(app PRIVATE src/main.c)
    
    include_directories(src/Include)
    include_directories(src/Periph)
    target_sources(app PRIVATE src/Periph/FFT.c)
    target_sources(app PRIVATE src/Periph/CompressionNordic.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_rfft_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_cfft_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_cfft_radix8_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_bitreversal2.c)
    target_sources(app PRIVATE src/Source/CommonTables/arm_common_tables.c)
    target_sources(app PRIVATE src/Source/CommonTables/arm_const_structs.c)
    target_sources(app PRIVATE src/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c)
    target_sources(app PRIVATE src/Source/StatisticsFunctions/arm_max_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_rfft_fast_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_rfft_fast_init_f32.c)
    target_sources(app PRIVATE src/Source/BasicMathFunctions/arm_mult_f32.c)
    target_sources(app PRIVATE src/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c)
    target_sources(app PRIVATE src/Source/FastMathFunctions/arm_cos_f32.c)
    target_sources(app PRIVATE src/Source/SupportFunctions/arm_fill_f32.c)
    target_sources(app PRIVATE src/Source/SupportFunctions/arm_copy_f32.c)
    target_sources(app PRIVATE src/Source/BasicMathFunctions/arm_add_f32.c)
    target_sources(app PRIVATE src/Source/StatisticsFunctions/arm_min_f32.c)
    target_sources(app PRIVATE src/Source/StatisticsFunctions/arm_mean_f32.c)
    target_sources(app PRIVATE src/Source/BasicMathFunctions/arm_offset_f32.c)
    target_sources(app PRIVATE src/Source/StatisticsFunctions/arm_std_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_rfft_init_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_dct4_init_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_dct4_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_cfft_radix4_init_f32.c)
    target_sources(app PRIVATE src/Source/BasicMathFunctions/arm_scale_f32.c)
    target_sources(app PRIVATE src/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_cfft_radix4_f32.c)
    target_sources(app PRIVATE src/Source/TransformFunctions/arm_bitreversal.c)
    #target_sources(app PRIVATE src/arm_fft_bin_data.c)
    
    target_compile_definitions(app PRIVATE CONFIG_ADC_ASYNC=1)

  • mappy89 said:
    Yes, every example project from NRF9160 compiles and works well.

     It supposed to say that you have 1MB flash available when you build. Does it say 1MB when you compile other examples?

Reply Children
No Data
Related