

Hi,
Which nRF5 device are you working with? FOTA uses dual-bank update, which means you need to have double the flash size of the application available. Try running
west build -t rom_report
to see how much flash the different libraries on the application are using.
Best regards,
Marjeris
HI,
I'm using nRF52dk_NRF52852,
in witch directory i use the command
west build -t rom_report
Tanks
Best regards
Fausto
No, I don't think so. If you have used the Toolchain Manager then it must be installed. Check if you have the directory in PATH variable.
In Windows you can open a terminal with cmd.exe and type 'echo %PATH%' to see which directories are included in PATH, if you cannot see the directory where 'west' is install then that's the problem.
You can be add the install directory for west in "Edit the system enviroment variables" in System Properties.

In the System Variables section (lower half) find the row with "Path" and add the installed directory for west.
Another thing you can do, is to open the command prompt from the toolchain manager:

Hi ,
now i get this error

what to do?
thanks
Best Regards
Fausto
Hi,
i need help to solve the error in previous post.
Thanks in avance
Fausto
HI
I execute the command : build -t rom_report, (in the build_crf52dk_nrf52832 directory and get this error:
:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832>west build -t rom_report
-- west build: running target rom_report
[0/17] Performing build step for 'mcuboot_subimage'
ninja: no work to do.
[2/15] Linking C executable zephyr\zephyr_prebuilt.elf
FAILED: zephyr/zephyr_prebuilt.elf zephyr/zephyr_prebuilt.map
cmd.exe /C "cd . && C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\arm-none-eabi-gcc.exe @CMakeFiles\zephyr_prebuilt.rsp -o zephyr\zephyr_prebuilt.elf && cmd.exe /C "cd /D C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832\zephyr && C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\cmake.exe -E echo ""
c:/users/pcf/ncs/v1.6.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `text' will not fit in region `FLASH'
c:/users/pcf/ncs/v1.6.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 46088 bytes
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\cmake.EXE' --build 'C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832' --target rom_report
C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832>
I need help to integrate the FOTA in my application.
Tanks in avance.
Fausto
HI
I execute the command : build -t rom_report, (in the build_crf52dk_nrf52832 directory and get this error:
:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832>west build -t rom_report
-- west build: running target rom_report
[0/17] Performing build step for 'mcuboot_subimage'
ninja: no work to do.
[2/15] Linking C executable zephyr\zephyr_prebuilt.elf
FAILED: zephyr/zephyr_prebuilt.elf zephyr/zephyr_prebuilt.map
cmd.exe /C "cd . && C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\arm-none-eabi-gcc.exe @CMakeFiles\zephyr_prebuilt.rsp -o zephyr\zephyr_prebuilt.elf && cmd.exe /C "cd /D C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832\zephyr && C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\cmake.exe -E echo ""
c:/users/pcf/ncs/v1.6.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: zephyr\zephyr_prebuilt.elf section `text' will not fit in region `FLASH'
c:/users/pcf/ncs/v1.6.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 46088 bytes
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'C:\Users\PCF\ncs\v1.6.0\toolchain\opt\bin\cmake.EXE' --build 'C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832' --target rom_report
C:\Users\PCF\ncs\v1.6.0\zephyr\samples\bluetooth\scan_adv\build_nrf52dk_nrf52832>
I need help to integrate the FOTA in my application.
Tanks in avance.
Fausto
Answered in this post: devzone.nordicsemi.com/.../fota-flash-overflowed-sdk-1-6-0
HI,
OK thank you.
I have the nRFDK_nRF52832, so to test the FOTA I modified the code of the blink example, adding the following activations in the prj.conf
CONFIG_GPIO=y
# Enable mcumgr.
CONFIG_MCUMGR=y
# Ensure an MCUboot-compatible binary is generated.
CONFIG_BOOTLOADER_MCUBOOT=y
# Enable flash operations.
CONFIG_FLASH=y
# Enable most core commands.
CONFIG_MCUMGR_CMD_IMG_MGMT=y
CONFIG_MCUMGR_CMD_OS_MGMT=y
CONFIG_MCUMGR_CMD_STAT_MGMT=y
CONFIG_MCUMGR_SMP_BT=y
I added the bluetooth.c file taken from the smp_svr example to the project, and I modified the main in this way .
/*
* Copyright (c) 2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <stats/stats.h>
#include <device.h>
#include <devicetree.h>
#include <drivers/gpio.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/gap.h>
#include "common.h"
/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS 100
/* The devicetree node identifier for the "led0" alias. */
#define LED0_NODE DT_ALIAS(led0)
#if DT_NODE_HAS_STATUS(LED0_NODE, okay)
#define LED0 DT_GPIO_LABEL(LED0_NODE, gpios)
#define PIN DT_GPIO_PIN(LED0_NODE, gpios)
#define FLAGS DT_GPIO_FLAGS(LED0_NODE, gpios)
#else
/* A build error here means your board isn't set up to blink an LED. */
#error "Unsupported board: led0 devicetree alias is not defined"
#define LED0 ""
#define PIN 0
#define FLAGS 0
#endif
#ifdef CONFIG_MCUMGR_CMD_FS_MGMT
#include <device.h>
#include <fs/fs.h>
#include "fs_mgmt/fs_mgmt.h"
#include <fs/littlefs.h>
#endif
#ifdef CONFIG_MCUMGR_CMD_OS_MGMT
#include "os_mgmt/os_mgmt.h"
#endif
#ifdef CONFIG_MCUMGR_CMD_IMG_MGMT
#include "img_mgmt/img_mgmt.h"
#endif
#ifdef CONFIG_MCUMGR_CMD_STAT_MGMT
#include "stat_mgmt/stat_mgmt.h"
#endif
#ifdef CONFIG_MCUMGR_SMP_BT
#include "mgmt\mcumgr\smp_bt.h"
#endif
#ifdef CONFIG_MCUMGR_CMD_SHELL_MGMT
#include "shell_mgmt/shell_mgmt.h"
#endif
#ifdef CONFIG_MCUMGR_CMD_FS_MGMT
#include "fs_mgmt/fs_mgmt.h"
#endif
void main(void)
{
const struct device *dev;
bool led_is_on = true;
int ret;
os_mgmt_register_group();
img_mgmt_register_group();
smp_bt_register();
#ifdef CONFIG_MCUMGR_SMP_BT
start_smp_bluetooth();
#endif
dev = device_get_binding(LED0);
if (dev == NULL) {
return;
}
ret = gpio_pin_configure(dev, PIN, GPIO_OUTPUT_ACTIVE | FLAGS);
if (ret < 0) {
return;
}
while (1) {
gpio_pin_set(dev, PIN, (int)led_is_on);
led_is_on = !led_is_on;
k_msleep(SLEEP_TIME_MS);
STATS_INC(smp_svr_stats, ticks);
}
}
The project is compiled without errors, and start.
Activated nRF Connect on my phone, I see the Zephyr connection, I can connect, I select the DFU button, I select the app_update.bin file generated, but the update procedure stops during validation.