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

SRAM overflow in Connectivity Bridge for multiple simultanous Bluetooth connections

Hi,

I am developing an application based on Connectivity Bridge and I want to establish few simultaneous Bluetooth connections. I am working in Thingy:91, currently on SDK 1.3.0, but the same problem occurs on 1.3.1, and 1.4.0. I did experience a problem in building my application after I configured BT_MAX_CONN to more than 2 (e.g. 3 and 4), and the build failed with SRAM overflow. I tried the same thing with plain Connectivity Bridge app with no modifications with the same result. The last lines from log look like that:

1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `noinit' will not fit in region `SRAM'
1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: section .intList VMA [20040000,200400b7] overlaps section noinit VMA [20034bc0,2004143b]
1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: region `SRAM' overflowed by 5180 bytes
1> collect2.exe: error: ld returned 1 exit status
Build failed

The size of overflow is different depending on SDK, in 1.3.0 it's 4036 if I remember correctly. I noticed that playing with BLE_RX_BLOCK_SIZE and few other variables related to size of Bluetooth buffers affects the size of overflow, but I lack knowledge and experience to know how to solve this correctly.

Thanks!

Parents
  • Hi Oyvind,

    I am building it for thingy91_nrf52840. Here's the full log:

    Building ‘zephyr/include/generated/thingy91_cdc_acm.cat.inc’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/include/generated/thingy91_cdc_acm.cat.inc’
    Building ‘src/disk/CMakeFiles/gen_thingy91_cdc_acm_cat_inc_4224a5ea7c6e4d52d2d48cdd06062e7c’ from solution ‘build’ in configuration ‘Common’
    Building ‘src/disk/gen_thingy91_cdc_acm_cat_inc_4224a5ea7c6e4d52d2d48cdd06062e7c’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/thingy91_cdc_acm.inf.inc’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/include/generated/thingy91_cdc_acm.inf.inc’
    Building ‘src/disk/CMakeFiles/gen_thingy91_cdc_acm_inf_inc_70fb3977527dc5b1d8cd7df287c90542’ from solution ‘build’ in configuration ‘Common’
    Building ‘src/disk/gen_thingy91_cdc_acm_inf_inc_70fb3977527dc5b1d8cd7df287c90542’ from solution ‘build’ in configuration ‘Common’
    Building ‘C:/Nordic/v1.4.0/zephyr/include/dt-bindings/gpio/gpio.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘C:/Nordic/v1.4.0/zephyr/include/dt-bindings/i2c/i2c.h’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/misc/generated/struct_tags.json’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/misc/generated/struct_tags.json’
    Building ‘zephyr/misc/generated/syscalls.json’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/parse_syscalls_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/parse_syscalls_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/include/generated/driver-validation.h’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/include/generated/driver-validation.h’
    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’
    1> Combining ‘zephyr/include/generated/kobj-types-enum.h’
    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/include/generated/syscall_list.h’ from solution ‘build’ in configuration ‘Common’
    1> Combining ‘zephyr/include/generated/syscall_list.h’
    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 ‘cmake_object_order_depends_target_offsets’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘offsets.c’
    Building ‘zephyr/offsets’ from solution ‘build’ in configuration ‘Common’
    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 ‘zephyr/zephyr_generated_headers’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_app’ from solution ‘build’ in configuration ‘Common’
    Building ‘app/libapp.a’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘main.c’
    2> Compiling ‘readme.c’
    3> Compiling ‘config.c’
    4> Compiling ‘thingy91_cdc_acm.cat.c’
    2> Compiling ‘thingy91_cdc_acm.inf.c’
    1> Compiling ‘module_state_event.c’
    4> Compiling ‘peer_conn_event.c’
    3> Compiling ‘ble_ctrl_event.c’
    1> Compiling ‘ble_data_event.c’
    2> Compiling ‘cdc_data_event.c’
    4> Compiling ‘uart_data_event.c’
    3> Compiling ‘fs_event.c’
    2> Compiling ‘power_event.c’
    1> Compiling ‘power_handler.c’
    4> Compiling ‘uart_handler.c’
    3> Compiling ‘usb_cdc_handler.c’
    2> Compiling ‘ble_handler.c’
    1> Compiling ‘fs_handler.c’
    1> Archiving ‘libapp.a’
    Building ‘C:/Nordic/v1.4.0/zephyr/misc/empty_file.c’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__modules__fs__fatfs’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__modules__hal__nordic’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__drivers__hw_cc310’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__drivers__mpsl__clock_control’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__lib__fatal_error’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__lib__multithreading_lock’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__subsys__bluetooth__controller’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_..__nrf__subsys__mpsl’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core__aarch32’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core__aarch32__cortex_m’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__arm__core__aarch32__cortex_m__mpu’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_isr_tables’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_arch__common’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_drivers__entropy’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_drivers__flash’ 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__minimal’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_lib__posix’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_soc__arm__common__cortex_m’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_soc__arm__nordic_nrf__nrf52’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_subsys__bluetooth__common’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_subsys__bluetooth__host’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_subsys__fs’ 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_subsys__random’ 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_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/linker_script_target’ from solution ‘build’ in configuration ‘Common’
    Building ‘cmake_object_order_depends_target_zephyr_prebuilt’ from solution ‘build’ in configuration ‘Common’
    Building ‘zephyr/libzephyr.a’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘crc16_sw.c’
    2> Compiling ‘crc32_sw.c’
    3> Compiling ‘crc8_sw.c’
    4> Compiling ‘crc7_sw.c’
    2> Compiling ‘dec.c’
    4> Compiling ‘fdtable.c’
    3> Compiling ‘hex.c’
    1> Compiling ‘mempool.c’
    2> Compiling ‘notify.c’
    3> Compiling ‘printk.c’
    4> Compiling ‘onoff.c’
    2> Compiling ‘rb.c’
    1> Compiling ‘sem.c’
    3> Compiling ‘thread_entry.c’
    4> Compiling ‘timeutil.c’
    1> Compiling ‘work_q.c’
    2> Compiling ‘heap.c’
    4> Compiling ‘heap-validate.c’
    3> Compiling ‘prf.c’
    1> Compiling ‘ring_buffer.c’
    1> Compiling ‘configs.c’
    2> Compiling ‘validate_base_addresses.c’
    4> Compiling ‘validate_enabled_instances.c’
    3> Compiling ‘log_list.c’
    1> Compiling ‘log_core.c’
    2> Compiling ‘log_msg.c’
    4> Compiling ‘log_output.c’
    3> Compiling ‘log_backend_rtt.c’
    2> Compiling ‘disk_access.c’
    4> Compiling ‘disk_access_ram.c’
    1> Compiling ‘fcb_append.c’
    3> Compiling ‘fcb.c’
    2> Compiling ‘fcb_elem_info.c’
    4> Compiling ‘fcb_getnext.c’
    1> Compiling ‘fcb_rotate.c’
    3> Compiling ‘fcb_walk.c’
    4> Compiling ‘addr_utils.c’
    2> Compiling ‘usb_device.c’
    4> Compiling ‘usb_descriptor.c’
    1> Compiling ‘usb_transfer.c’
    3> Compiling ‘cdc_acm.c’
    1> Compiling ‘mass_storage.c’
    4> Compiling ‘usb_work_q.c’
    2> Compiling ‘flash_map.c’
    3> Compiling ‘flash_map_default.c’
    4> Compiling ‘settings_store.c’
    2> Compiling ‘settings.c’
    3> Compiling ‘settings_init.c’
    4> Compiling ‘settings_line.c’
    1> Compiling ‘settings_fcb.c’
    3> Compiling ‘power.c’
    2> Compiling ‘device.c’
    4> Compiling ‘reboot.c’
    3> Compiling ‘clock_control_nrf.c’
    1> Compiling ‘usb_dc_nrfx.c’
    2> Compiling ‘hwinfo_weak_impl.c’
    4> Compiling ‘hwinfo_nrf.c’
    2> Compiling ‘sys_clock_init.c’
    3> Compiling ‘nrf_rtc_timer.c’
    4> Compiling ‘nus.c’
    2> Compiling ‘event_manager.c’
    3> Compiling ‘nrf_cc3xx_platform_abort_zephyr.c’
    4> Compiling ‘nrf_cc3xx_platform_mutex_zephyr.c’
    2> Compiling ‘SEGGER_RTT.c’
    3> Compiling ‘SEGGER_RTT_zephyr.c’
    1> Compiling ‘utils.c’
    4> Compiling ‘ecc_dh.c’
    3> Compiling ‘ecc.c’
    1> Compiling ‘aes_decrypt.c’
    4> Compiling ‘aes_encrypt.c’
    2> Compiling ‘cmac_mode.c’
    Building ‘zephyr/arch/common/libisr_tables.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libzephyr.a’
    2> Compiling ‘isr_tables.c’
    1> Archiving ‘libisr_tables.a’
    Building ‘zephyr/arch/common/libarch__common.a’ from solution ‘build’ in configuration ‘Common’
    1> Compiling ‘sw_isr_common.c’
    Building ‘zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__common.a’
    2> Compiling ‘swap.c’
    3> Compiling ‘irq_manage.c’
    4> Compiling ‘thread.c’
    1> Compiling ‘fatal.c’
    2> Compiling ‘nmi.c’
    4> Compiling ‘prep_c.c’
    3> Assembling ‘swap_helper.S’
    1> Assembling ‘cpu_idle.S’
    3> Assembling ‘nmi_on_reset.S’
    2> Assembling ‘isr_wrapper.S’
    Building ‘zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core__aarch32.a’
    2> Assembling ‘vector_table.S’
    3> Assembling ‘reset.S’
    4> Assembling ‘fault_s.S’
    1> Assembling ‘exc_exit.S’
    4> Compiling ‘fault.c’
    2> Compiling ‘scb.c’
    3> Compiling ‘irq_init.c’
    1> Compiling ‘thread_abort.c’
    Building ‘zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/libarch__arm__core__aarch32__cortex_m__mpu.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core__aarch32__cortex_m.a’
    2> Compiling ‘arm_core_mpu.c’
    3> Compiling ‘arm_mpu.c’
    Building ‘zephyr/lib/libc/minimal/liblib__libc__minimal.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libarch__arm__core__aarch32__cortex_m__mpu.a’
    2> Compiling ‘atoi.c’
    3> Compiling ‘strtol.c’
    4> Compiling ‘strtoul.c’
    1> Compiling ‘malloc.c’
    2> Compiling ‘bsearch.c’
    4> Compiling ‘exit.c’
    3> Compiling ‘strncasecmp.c’
    1> Compiling ‘strstr.c’
    2> Compiling ‘string.c’
    4> Compiling ‘strspn.c’
    3> Compiling ‘stdout_console.c’
    1> Compiling ‘sprintf.c’
    2> Compiling ‘fprintf.c’
    4> Compiling ‘gmtime.c’
    Building ‘zephyr/lib/posix/liblib__posix.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘liblib__libc__minimal.a’
    2> Compiling ‘pthread_common.c’
    3> Compiling ‘nanosleep.c’
    Building ‘zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘liblib__posix.a’
    2> Compiling ‘arm_mpu_regions.c’
    Building ‘zephyr/soc/arm/nordic_nrf/nrf52/libsoc__arm__nordic_nrf__nrf52.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsoc__arm__common__cortex_m.a’
    2> Compiling ‘soc.c’
    3> Compiling ‘power.c’
    Building ‘zephyr/subsys/bluetooth/common/libsubsys__bluetooth__common.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsoc__arm__nordic_nrf__nrf52.a’
    2> Compiling ‘dummy.c’
    3> Compiling ‘log.c’
    4> Compiling ‘rpa.c’
    Building ‘zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__bluetooth__common.a’
    2> Compiling ‘hci_ecc.c’
    3> Compiling ‘uuid.c’
    4> Compiling ‘hci_core.c’
    1> Compiling ‘hci_common.c’
    3> Compiling ‘conn.c’
    1> Compiling ‘l2cap.c’
    2> Compiling ‘att.c’
    1> Compiling ‘gatt.c’
    3> Compiling ‘smp.c’
    2> Compiling ‘keys.c’
    Building ‘zephyr/subsys/fs/libsubsys__fs.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__bluetooth__host.a’
    2> Compiling ‘fs.c’
    3> Compiling ‘fs_impl.c’
    4> Compiling ‘fat_fs.c’
    Building ‘zephyr/subsys/net/libsubsys__net.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__fs.a’
    2> Compiling ‘buf.c’
    Building ‘zephyr/subsys/random/libsubsys__random.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__net.a’
    2> Compiling ‘rand32_entropy_device.c’
    Building ‘zephyr/drivers/gpio/libdrivers__gpio.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libsubsys__random.a’
    2> Compiling ‘gpio_nrfx.c’
    Building ‘zephyr/drivers/flash/libdrivers__flash.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__gpio.a’
    2> Compiling ‘flash_page_layout.c’
    3> Compiling ‘flash_ll_softdevice.c’
    Building ‘zephyr/drivers/serial/libdrivers__serial.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__flash.a’
    2> Compiling ‘uart_nrfx_uarte.c’
    Building ‘zephyr/drivers/entropy/libdrivers__entropy.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__serial.a’
    2> Compiling ‘entropy_ll_softdevice.c’
    3> Compiling ‘entropy_cc310.c’
    Building ‘modules/nrf/lib/multithreading_lock/lib..__nrf__lib__multithreading_lock.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘libdrivers__entropy.a’
    2> Compiling ‘multithreading_lock.c’
    Building ‘modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__lib__multithreading_lock.a’
    2> Compiling ‘fatal_error.c’
    Building ‘modules/nrf/subsys/bluetooth/controller/lib..__nrf__subsys__bluetooth__controller.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__lib__fatal_error.a’
    2> Compiling ‘hci_driver.c’
    3> Compiling ‘hci_internal.c’
    4> Compiling ‘crypto.c’
    Building ‘modules/nrf/subsys/mpsl/lib..__nrf__subsys__mpsl.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__subsys__bluetooth__controller.a’
    2> Compiling ‘mpsl_init.c’
    Building ‘modules/nrf/drivers/mpsl/clock_control/lib..__nrf__drivers__mpsl__clock_control.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__subsys__mpsl.a’
    2> Compiling ‘nrfx_clock_mpsl.c’
    Building ‘modules/nrf/drivers/hw_cc310/lib..__nrf__drivers__hw_cc310.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__drivers__mpsl__clock_control.a’
    2> Compiling ‘hw_cc310.c’
    Building ‘modules/fatfs/lib..__modules__fs__fatfs.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__nrf__drivers__hw_cc310.a’
    2> Compiling ‘ff.c’
    3> Compiling ‘zfs_diskio.c’
    4> Compiling ‘unicode.c’
    1> Compiling ‘syscall.c’
    Building ‘modules/nordic/lib..__modules__hal__nordic.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__modules__fs__fatfs.a’
    2> Compiling ‘system_nrf52840.c’
    3> Compiling ‘nrfx_glue.c’
    4> Compiling ‘nrfx_nvmc.c’
    1> Compiling ‘nrfx_power.c’
    2> Compiling ‘nrfx_ppi.c’
    3> Compiling ‘nrfx_systick.c’
    4> Compiling ‘nrfx_timer.c’
    1> Compiling ‘nrfx_uarte.c’
    3> Compiling ‘nrfx_usbd.c’
    Building ‘zephyr/kernel/libkernel.a’ from solution ‘build’ in configuration ‘Common’
    1> Archiving ‘lib..__modules__hal__nordic.a’
    2> Compiling ‘device.c’
    3> Compiling ‘errno.c’
    4> Compiling ‘fatal.c’
    1> Compiling ‘idle.c’
    3> Compiling ‘init.c’
    2> Compiling ‘kheap.c’
    4> Compiling ‘mailbox.c’
    1> Compiling ‘mem_slab.c’
    3> Compiling ‘msg_q.c’
    2> Compiling ‘mutex.c’
    4> Compiling ‘pipes.c’
    1> Compiling ‘queue.c’
    3> Compiling ‘sched.c’
    2> Compiling ‘sem.c’
    1> Compiling ‘stack.c’
    4> Compiling ‘system_work_q.c’
    2> Compiling ‘thread.c’
    1> Compiling ‘thread_abort.c’
    4> Compiling ‘version.c’
    4> Compiling ‘work_q.c’
    3> Compiling ‘smp.c’
    2> Compiling ‘timeout.c’
    1> Compiling ‘timer.c’
    3> Compiling ‘poll.c’
    4> Compiling ‘mempool.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:      286800 B     482816 B     59.40%
    1>             SRAM:      270784 B       256 KB    103.30%
    1>         IDT_LIST:         184 B         2 KB      8.98%
    1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `noinit' will not fit in region `SRAM'
    1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: section .intList VMA [20040000,200400b7] overlaps section noinit VMA [200357e0,200421bf]
    1> c:/nordic/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: region `SRAM' overflowed by 8640 bytes
    1> collect2.exe: error: ld returned 1 exit status
    Build failed

  • I'm not able to reproduce your issue, neither with SES or with West. Have you configured anything in the project? Are you using the Toolchain Manager to work with NCS? Can you please provide some more information about your setup?

    Thanks

  • I did not change any configuration.

    I updated nRF Connect and Toolchain Manager, then I installed NCS 1.4.0. using Toolchain Manager. I'm opening SES (V5.10d) with Open IDE button, there I open project - choose Connectivity Bridge from the list (on NCS 1.3.0. I'm choosing the CMakeLists file), pick the thingy91_nrf52840 board, check the "clean build" box.

    Without changes in configuration I am able to build the solution. But once I go to Project/Configure nRF SDK Project and set BT_MAX_CONN to anything more than 2, I get the build error mentioned before. I tried to comment out the CONFIG_BT_MAX_CONN variable set in prj.conf of Connectivity Bridge, reload & configure the project again but it didn't help.

    Interestingly, when I do the same thing in central_hr application, it works. I can change the BT_MAX_CONN variable to something bigger than 2 and it builds without problem.

  • I was able to reproduce your issue, I'm not sure what I did first. 

    Anyway, I discussed the result with our developers and they provided me with the following work-around. 

    There are 2 CDC instances, each with a 32 KiB buffer allocation for RX and for TX. This is probably more than is ever needed. Reducing this parameter by 50% will give you 64 KiB more RAM. Edit the following configuration in prj.conf:
    CONFIG_USB_CDC_ACM_RINGBUF_SIZE=16384
    Note that the connectivity bridge's BLE configuration is quite simple, and expects only one peer to be connected at a time. If multiple BLE connections are established, it will only forward the data to the most recent connection.

    Kind regards,
    Øyvind
  • Sorry for no reply for some time,

    That solved my issue. Thank you!

Reply Children
Related