<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/94271/custom-mcuboot-dfu-bootloader-nrf-connect</link><description>Hi, 
 We want to modify the bootloader process on MCUboot. To avoid someone having to press and hold a button the entire time on our custom boards we want as a minimum to set a pin high to ensure it doesn&amp;#39;t turn off. 
 I was successfully able to try this</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 06 Jan 2023 15:18:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/94271/custom-mcuboot-dfu-bootloader-nrf-connect" /><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/403637?ContentTypeID=1</link><pubDate>Fri, 06 Jan 2023 15:18:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:512bc0bf-e114-457b-99ca-f73a62bef280</guid><dc:creator>Sigurd</dc:creator><description>[quote userid="74363" url="~/f/nordic-q-a/94271/custom-mcuboot-dfu-bootloader-nrf-connect/403629"]I found it would not ever set the pin.[/quote]
&lt;p&gt;AFAIR, the Zephyr GPIO API is initialized at&amp;nbsp;&lt;span&gt;PRE_KERNEL_1 ,&amp;nbsp;priority 40 or 60 ... So if you want to set the pin before this, then you need to use the HAL&amp;nbsp;functions(hal/nrf_gpio.h , nrf_gpio_cfg_output , nrf_gpio_pin_set).&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/403629?ContentTypeID=1</link><pubDate>Fri, 06 Jan 2023 15:06:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32c34cd2-d77e-47f0-a803-c81e0247749e</guid><dc:creator>Liam</dc:creator><description>&lt;p&gt;I should have mentioned I could not get PRE_KERNEL_1 to work.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;_init_fn&lt;/span&gt;&lt;span&gt;( &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (!&lt;/span&gt;&lt;span&gt;device_is_ready&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;led&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;port&lt;/span&gt;&lt;span&gt;)) {&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;gpio_pin_configure_dt&lt;/span&gt;&lt;span&gt;(&amp;amp;&lt;/span&gt;&lt;span&gt;led&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;GPIO_OUTPUT_ACTIVE&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;gpio_pin_set_dt&lt;/span&gt;&lt;span&gt;(&amp;amp;&lt;/span&gt;&lt;span&gt;led&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;SYS_INIT&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;_init_fn&lt;/span&gt;&lt;span&gt;, PRE_KERNEL_1, &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;main&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="padding-left:30px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I found it would not ever set the pin.&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/403628?ContentTypeID=1</link><pubDate>Fri, 06 Jan 2023 15:02:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0f47aad-9526-48e9-bbb3-c85ab1da365e</guid><dc:creator>Sigurd</dc:creator><description>[quote user="hazeman"]&lt;div&gt;&lt;span&gt;SYS_INIT&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;_init_fn&lt;/span&gt;&lt;span&gt;, PRE_KERNEL_2, &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;to set it as early as possible.&lt;/span&gt;&lt;/div&gt;[/quote]
&lt;p&gt;You&amp;nbsp;are&amp;nbsp;here waiting until all&amp;nbsp;PRE_KERNEL_1 init is done. So use&amp;nbsp;PRE_KERNEL_1 instead here if you want it to happen earlier.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Snippet:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;hal/nrf_gpio.h&amp;gt;

#define MY_PIN 3

static int early_init(const struct device *dev)
{
nrf_gpio_cfg_output(MY_PIN);
nrf_gpio_pin_set(MY_PIN);
return 0;
}

SYS_INIT(early_init, PRE_KERNEL_1, 0);&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/403621?ContentTypeID=1</link><pubDate>Fri, 06 Jan 2023 14:46:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3912e717-cb16-4683-8210-d922d9e8182b</guid><dc:creator>Liam</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am also an engineer at the same company as Richard and am looking at this as well.&lt;/p&gt;
&lt;p&gt;Is the gap in asserting the pin due to the startup time of the nRFConnect SDK (or perhaps the RTOS part of it)?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In my tests the fastest I can get a pin set on the nrf52840 after a reset using nRFConnect is 250mS. Using SDK 3.2 for thread and zigbee it is instantaneous. I have tried using&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;SYS_INIT&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;_init_fn&lt;/span&gt;&lt;span&gt;, PRE_KERNEL_2, &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;to set it as early as possible. This test did not involve a bootloader.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;So if during a DFU the 52840 resets then the pin will not get asserted for the 250ms because nothing can run? Could this be what is happening?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;kind regards&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Liam&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/400230?ContentTypeID=1</link><pubDate>Mon, 12 Dec 2022 17:36:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:985729a1-b278-46f4-9734-c4cc7deb104a</guid><dc:creator>Sigurd</dc:creator><description>[quote user="RichardP"]Using the&amp;nbsp;&lt;span&gt;CONFIG_OS_MGMT_RESET_HOOK happens too late as well unfortunately. Seems to occur after the image has been sent, and when it&amp;#39;s verifying.&lt;/span&gt;[/quote]
&lt;p&gt;Ah, okay. If you want a callback when the image is being transferred OTA, then you can do it like this:&lt;/p&gt;
&lt;p&gt;Snippet 1:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;zephyr/mgmt/mcumgr/smp_bt.h&amp;gt;
#include &amp;quot;os_mgmt/os_mgmt.h&amp;quot;
#include &amp;quot;img_mgmt/img_mgmt.h&amp;quot;


void dfu_started_cb(void)
{

		printk(&amp;quot;Starting DFU image upload\n&amp;quot;);

}


const struct img_mgmt_dfu_callbacks_t dfu_callbacks = {
	.dfu_started_cb = dfu_started_cb,
	.dfu_stopped_cb = NULL,
	.dfu_pending_cb = NULL,
	.dfu_confirmed_cb = NULL
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Snippet 2:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;void main(void)
{
	int blink_status = 0;
	int err;

	printk(&amp;quot;Starting Bluetooth Peripheral LBS example\n&amp;quot;);

	err = dk_leds_init();
	if (err) {
		printk(&amp;quot;LEDs init failed (err %d)\n&amp;quot;, err);
		return;
	}

	err = init_button();
	if (err) {
		printk(&amp;quot;Button init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;build time: &amp;quot; __DATE__ &amp;quot; &amp;quot; __TIME__ &amp;quot;\n&amp;quot;);
	os_mgmt_register_group();
	
	img_mgmt_register_group();
	img_mgmt_register_callbacks(&amp;amp;dfu_callbacks);
	smp_bt_register();

	if (IS_ENABLED(CONFIG_BT_LBS_SECURITY_ENABLED)) {
		err = bt_conn_auth_cb_register(&amp;amp;conn_auth_callbacks);
		if (err) {
			printk(&amp;quot;Failed to register authorization callbacks.\n&amp;quot;);
			return;
		}

		err = bt_conn_auth_info_cb_register(&amp;amp;conn_auth_info_callbacks);
		if (err) {
			printk(&amp;quot;Failed to register authorization info callbacks.\n&amp;quot;);
			return;
		}
	}

	err = bt_enable(NULL);
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	if (IS_ENABLED(CONFIG_SETTINGS)) {
		settings_load();
	}

	err = bt_lbs_init(&amp;amp;lbs_callbacs);
	if (err) {
		printk(&amp;quot;Failed to init LBS (err:%d)\n&amp;quot;, err);
		return;
	}

	err = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad),
			      sd, ARRAY_SIZE(sd));
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Advertising successfully started\n&amp;quot;);

	for (;;) {
		dk_set_led(RUN_STATUS_LED, (++blink_status) % 2);
		k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL));
	}
}
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/399133?ContentTypeID=1</link><pubDate>Tue, 06 Dec 2022 09:53:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6f56cfd-3ac2-4c2e-a4b7-ed375684006e</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;Using the&amp;nbsp;&lt;span&gt;CONFIG_OS_MGMT_RESET_HOOK happens too late as well unfortunately. Seems to occur after the image has been sent, and when it&amp;#39;s verifying.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The comments in the boot perform update hook section looks like it&amp;#39;ll happen at the right time - but it&amp;#39;s not building successfully after I include &amp;quot;CONFIG_BOOT_IMAGE_ACCESS_HOOKS in my mcuboot.conf file. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Whole build log here:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;* Executing task: nRF Connect: Build [pristine]: peripheral_hr_dfu2/build_dfu2_52840 (active)&lt;/p&gt;
&lt;p&gt;Building peripheral_hr_dfu2&lt;br /&gt;west build --build-dir d:\WorkSpacNCS_DFU\peripheral_hr_dfu2\build_dfu2_52840 d:\WorkSpacNCS_DFU\peripheral_hr_dfu2 --pristine --board nrf52840dk_nrf52840 -- -DNCS_TOOLCHAIN_VERSION:STRING=&amp;quot;NONE&amp;quot; -DBOARD_ROOT:STRING=&amp;quot;d:/WorkSpacNCS_DFU/peripheral_uart;d:/WorkSpacNCS_DFU/peripheral_hr;d:/WorkSpacNCS_DFU/ble_dfu_peripheral_lbs;d:/WorkSpacNCS_DFU/peripheral_hr_dfu2&amp;quot; -DCONF_FILE:STRING=&amp;quot;d:/WorkSpacNCS_DFU/peripheral_hr_dfu2/prj.conf&amp;quot;&lt;/p&gt;
&lt;p&gt;-- west build: generating a build system&lt;br /&gt;Loading Zephyr default modules (Zephyr base).&lt;br /&gt;-- Application: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2&lt;br /&gt;-- Found Python3: C:/ncs/toolchains/v2.1.2/opt/bin/python.exe (found suitable exact version &amp;quot;3.8.2&amp;quot;) found components: Interpreter &lt;br /&gt;-- Cache files will be written to: C:/ncs/v2.1.2/zephyr/.cache&lt;br /&gt;-- Zephyr version: 3.1.99 (C:/ncs/v2.1.2/zephyr)&lt;br /&gt;-- Found west (found suitable version &amp;quot;0.14.0&amp;quot;, minimum required is &amp;quot;0.7.1&amp;quot;)&lt;br /&gt;-- Board: nrf52840dk_nrf52840&lt;br /&gt;-- Found host-tools: zephyr 0.14.1 (C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk)&lt;br /&gt;-- Found dtc: C:/ncs/toolchains/v2.1.2/opt/bin/dtc.exe (found suitable version &amp;quot;1.4.7&amp;quot;, minimum required is &amp;quot;1.4.6&amp;quot;)&lt;br /&gt;-- Found toolchain: zephyr 0.14.1 (C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk)&lt;br /&gt;-- Found BOARD.dts: C:/ncs/v2.1.2/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts&lt;br /&gt;-- Generated zephyr.dts: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/zephyr.dts&lt;br /&gt;-- Generated devicetree_unfixed.h: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/include/generated/devicetree_unfixed.h&lt;br /&gt;-- Generated device_extern.h: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/include/generated/device_extern.h&lt;br /&gt;-- Including generated dts.cmake file: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/dts.cmake&lt;br /&gt;Parsing C:/ncs/v2.1.2/zephyr/Kconfig&lt;br /&gt;Loaded configuration &amp;#39;C:/ncs/v2.1.2/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;d:/WorkSpacNCS_DFU/peripheral_hr_dfu2/prj.conf&amp;#39;&lt;br /&gt;Configuration saved to &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/.config&amp;#39;&lt;br /&gt;Kconfig header saved to &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/zephyr/include/generated/autoconf.h&amp;#39;&lt;br /&gt;-- The C compiler identification is GNU 10.3.0&lt;br /&gt;-- The CXX compiler identification is GNU 10.3.0&lt;br /&gt;-- The ASM compiler identification is GNU&lt;br /&gt;-- Found assembler: C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe&lt;br /&gt;-- Found Python3: C:/ncs/toolchains/v2.1.2/opt/bin/python.exe (found version &amp;quot;3.8.2&amp;quot;) found components: Interpreter&lt;/p&gt;
&lt;p&gt;=== child image mcuboot - begin ===&lt;br /&gt;loading initial cache file D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/child_image_preload.cmake&lt;br /&gt;Loading Zephyr default modules (Zephyr base).&lt;br /&gt;-- Application: C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr&lt;br /&gt;-- Found Python3: C:/ncs/toolchains/v2.1.2/opt/bin/python.exe (found suitable exact version &amp;quot;3.8.2&amp;quot;) found components: Interpreter &lt;br /&gt;-- Cache files will be written to: C:/ncs/v2.1.2/zephyr/.cache&lt;br /&gt;-- Zephyr version: 3.1.99 (C:/ncs/v2.1.2/zephyr)&lt;br /&gt;-- Found west (found suitable version &amp;quot;0.14.0&amp;quot;, minimum required is &amp;quot;0.7.1&amp;quot;)&lt;br /&gt;-- Board: nrf52840dk_nrf52840&lt;br /&gt;-- Found host-tools: zephyr 0.14.1 (C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk)&lt;br /&gt;-- Found dtc: C:/ncs/toolchains/v2.1.2/opt/bin/dtc.exe (found suitable version &amp;quot;1.4.7&amp;quot;, minimum required is &amp;quot;1.4.6&amp;quot;)&lt;br /&gt;-- Found toolchain: zephyr 0.14.1 (C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk)&lt;br /&gt;-- Found BOARD.dts: C:/ncs/v2.1.2/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts&lt;br /&gt;-- Found devicetree overlay: C:/ncs/v2.1.2/nrf/modules/mcuboot/usb.overlay&lt;br /&gt;-- Found devicetree overlay: C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr/dts.overlay&lt;br /&gt;-- Generated zephyr.dts: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/zephyr.dts&lt;br /&gt;-- Generated devicetree_unfixed.h: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/include/generated/devicetree_unfixed.h&lt;br /&gt;-- Generated device_extern.h: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/include/generated/device_extern.h&lt;br /&gt;-- Including generated dts.cmake file: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/dts.cmake&lt;br /&gt;Parsing C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr/Kconfig&lt;br /&gt;Loaded configuration &amp;#39;C:/ncs/v2.1.2/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr/prj.conf&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr/boards/nrf52840dk_nrf52840.conf&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;C:/ncs/v2.1.2/nrf/subsys/partition_manager/partition_manager_enabled.conf&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/child_image/mcuboot.conf&amp;#39;&lt;br /&gt;Merged configuration &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf&amp;#39;&lt;br /&gt;Configuration saved to &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/.config&amp;#39;&lt;br /&gt;Kconfig header saved to &amp;#39;D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/include/generated/autoconf.h&amp;#39;&lt;br /&gt;-- The C compiler identification is GNU 10.3.0&lt;br /&gt;-- The CXX compiler identification is GNU 10.3.0&lt;br /&gt;-- The ASM compiler identification is GNU&lt;br /&gt;-- Found assembler: C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe&lt;br /&gt;CMake Warning at C:/ncs/v2.1.2/nrf/lib/flash_patch/CMakeLists.txt:8 (message):&lt;/p&gt;
&lt;p&gt;----------------------------------------------------------&lt;br /&gt; --- WARNING: To maintain the integrity of secure boot, ---&lt;br /&gt; --- enable CONFIG_DISABLE_FLASH_PATCH in production. ---&lt;br /&gt; ----------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;MCUBoot bootloader key file: D:\\WorkSpacNCS_DFU\\peripheral_hr_dfu2\\child_image\\priv-ecdsa.pem&lt;br /&gt;-- Configuring done&lt;br /&gt;-- Generating done&lt;br /&gt;-- Build files have been written to: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot&lt;br /&gt;=== child image mcuboot - end ===&lt;/p&gt;
&lt;p&gt;-- Configuring done&lt;br /&gt;-- Generating done&lt;br /&gt;-- Build files have been written to: D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840&lt;br /&gt;-- west build: building application&lt;br /&gt;[1/306] Generating include/generated/version.h&lt;br /&gt;-- Zephyr version: 3.1.99 (C:/ncs/v2.1.2/zephyr), build: v3.1.99-ncs1-1&lt;br /&gt;[2/306] Creating directories for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[3/306] No download step for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[4/306] No update step for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[5/306] No patch step for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[6/306] No configure step for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[6/306] Performing build step for &amp;#39;mcuboot_subimage&amp;#39;&lt;br /&gt;[1/196] Generating include/generated/version.h&lt;br /&gt;-- Zephyr version: 3.1.99 (C:/ncs/v2.1.2/zephyr), build: v3.1.99-ncs1-1&lt;br /&gt;[2/196] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json&lt;br /&gt;[3/196] Generating include/generated/driver-validation.h&lt;br /&gt;[4/196] Generating include/generated/kobj-types-enum.h, include/generated/otype-to-str.h, include/generated/otype-to-size.h&lt;br /&gt;[5/196] Generating include/generated/syscall_dispatch.c, include/generated/syscall_list.h&lt;br /&gt;[6/196] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj&lt;br /&gt;[7/196] Generating include/generated/offsets.h&lt;br /&gt;[8/196] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_base_addresses.c.obj&lt;br /&gt;[9/196] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_enabled_instances.c.obj&lt;br /&gt;[10/196] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_minimal.c.obj&lt;br /&gt;[11/196] Building ASM object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/common/soc_nrf_common.S.obj&lt;br /&gt;[12/196] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map.c.obj&lt;br /&gt;[13/196] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map_layout.c.obj&lt;br /&gt;[14/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf.c.obj&lt;br /&gt;[15/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/assert.c.obj&lt;br /&gt;[16/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/reboot.c.obj&lt;br /&gt;[17/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/multi_heap.c.obj&lt;br /&gt;[18/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_nano.c.obj&lt;br /&gt;[19/196] Building C object zephyr/CMakeFiles/zephyr.dir/misc/generated/configs.c.obj&lt;br /&gt;[20/196] Building C object zephyr/CMakeFiles/zephyr.dir/C_/ncs/v2.1.2/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_abort_zephyr.c.obj&lt;br /&gt;[21/196] Building C object zephyr/CMakeFiles/zephyr.dir/C_/ncs/v2.1.2/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_no_mutex_zephyr.c.obj&lt;br /&gt;[22/196] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/tracing/tracing_none.c.obj&lt;br /&gt;[23/196] Building C object zephyr/CMakeFiles/zephyr.dir/C_/ncs/v2.1.2/nrf/subsys/partition_manager/flash_map_partition_manager.c.obj&lt;br /&gt;[24/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/cpu_idle.S.obj&lt;br /&gt;[25/196] Generating linker_zephyr_pre1.cmd&lt;br /&gt;[26/196] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj&lt;br /&gt;[27/196] Generating linker_zephyr_pre0.cmd&lt;br /&gt;[28/196] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj&lt;br /&gt;[29/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj&lt;br /&gt;[30/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj&lt;br /&gt;[31/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj&lt;br /&gt;[32/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi_on_reset.S.obj&lt;br /&gt;[33/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj&lt;br /&gt;[34/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj&lt;br /&gt;[35/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj&lt;br /&gt;[36/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj&lt;br /&gt;[37/196] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj&lt;br /&gt;[38/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault_s.S.obj&lt;br /&gt;[39/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj&lt;br /&gt;[40/196] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj&lt;br /&gt;[41/196] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj&lt;br /&gt;[42/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj&lt;br /&gt;[43/196] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fpu.c.obj&lt;br /&gt;[44/196] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj&lt;br /&gt;[45/196] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/vector_table.S.obj&lt;br /&gt;[46/196] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj&lt;br /&gt;[47/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_packaged.c.obj&lt;br /&gt;[48/196] Linking C static library zephyr\arch\common\libisr_tables.a&lt;br /&gt;[49/196] Generating zephyr/autogen-pubkey.c&lt;br /&gt;[50/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc16_sw.c.obj&lt;br /&gt;[51/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32_sw.c.obj&lt;br /&gt;[52/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc8_sw.c.obj&lt;br /&gt;[53/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc7_sw.c.obj&lt;br /&gt;[54/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32c_sw.c.obj&lt;br /&gt;[55/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/dec.c.obj&lt;br /&gt;[56/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap-validate.c.obj&lt;br /&gt;[57/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap.c.obj&lt;br /&gt;[58/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/timeutil.c.obj&lt;br /&gt;[59/196] Linking C static library zephyr\arch\arch\arm\core\aarch32\libarch__arm__core__aarch32.a&lt;br /&gt;[60/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/bitarray.c.obj&lt;br /&gt;[61/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/sem.c.obj&lt;br /&gt;[62/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/thread_entry.c.obj&lt;br /&gt;[63/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/notify.c.obj&lt;br /&gt;[64/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/hex.c.obj&lt;br /&gt;[65/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/onoff.c.obj&lt;br /&gt;[66/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/printk.c.obj&lt;br /&gt;[67/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/fdtable.c.obj&lt;br /&gt;[68/196] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/rb.c.obj&lt;br /&gt;[69/196] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_mpu.c.obj&lt;br /&gt;[70/196] Linking C static library zephyr\arch\common\libarch__common.a&lt;br /&gt;[71/196] Building C object CMakeFiles/app.dir/main.c.obj&lt;br /&gt;[72/196] Building C object CMakeFiles/app.dir/keys.c.obj&lt;br /&gt;[73/196] Building C object CMakeFiles/app.dir/flash_map_extended.c.obj&lt;br /&gt;[74/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/encrypted.c.obj&lt;br /&gt;[75/196] Building C object CMakeFiles/app.dir/os.c.obj&lt;br /&gt;[76/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/image_validate.c.obj&lt;br /&gt;[77/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/tlv.c.obj&lt;br /&gt;[78/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/image_rsa.c.obj&lt;br /&gt;[79/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/image_ec256.c.obj&lt;br /&gt;[80/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/bootutil_misc.c.obj&lt;br /&gt;[81/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/image_ed25519.c.obj&lt;br /&gt;[82/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/fault_injection_hardening.c.obj&lt;br /&gt;[83/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/swap_scratch.c.obj&lt;br /&gt;[84/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/swap_misc.c.obj&lt;br /&gt;[85/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/swap_move.c.obj&lt;br /&gt;[86/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/loader.c.obj&lt;br /&gt;[87/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/caps.c.obj&lt;br /&gt;[88/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/ext/mbedtls-asn1/src/platform_util.c.obj&lt;br /&gt;[89/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/ext/nrf/cc310_glue.c.obj&lt;br /&gt;[90/196] Linking C static library zephyr\libzephyr.a&lt;br /&gt;[91/196] Building C object CMakeFiles/app.dir/zephyr/autogen-pubkey.c.obj&lt;br /&gt;[92/196] Building C object CMakeFiles/app.dir/C_/ncs/v2.1.2/bootloader/mcuboot/ext/mbedtls-asn1/src/asn1parse.c.obj&lt;br /&gt;[93/196] Building C object CMakeFiles/app.dir/nrf_cleanup.c.obj&lt;br /&gt;[94/196] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj&lt;br /&gt;[95/196] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\libarch__arm__core__aarch32__cortex_m.a&lt;br /&gt;[96/196] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/perror.c.obj&lt;br /&gt;[97/196] Generating ../../../include/generated/libc/minimal/strerror_table.h&lt;br /&gt;[98/196] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/pthread_common.c.obj&lt;br /&gt;[99/196] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/nanosleep.c.obj&lt;br /&gt;[100/196] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj&lt;br /&gt;[101/196] Building C object zephyr/soc/arm/nordic_nrf/nrf52/CMakeFiles/soc__arm__nordic_nrf__nrf52.dir/soc.c.obj&lt;br /&gt;[102/196] Building C object modules/nrf/lib/fprotect/CMakeFiles/..__nrf__lib__fprotect.dir/fprotect_acl.c.obj&lt;br /&gt;[103/196] Building C object zephyr/drivers/console/CMakeFiles/drivers__console.dir/uart_console.c.obj&lt;br /&gt;[104/196] Building C object zephyr/drivers/clock_control/CMakeFiles/drivers__clock_control.dir/clock_control_nrf.c.obj&lt;br /&gt;[105/196] Building C object zephyr/drivers/gpio/CMakeFiles/drivers__gpio.dir/gpio_nrfx.c.obj&lt;br /&gt;[106/196] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj&lt;br /&gt;[107/196] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/soc_flash_nrf.c.obj&lt;br /&gt;[108/196] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/flash_page_layout.c.obj&lt;br /&gt;[109/196] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/sys_clock_init.c.obj&lt;br /&gt;[110/196] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/nrf_rtc_timer.c.obj&lt;br /&gt;[111/196] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/pinctrl_nrf.c.obj&lt;br /&gt;[112/196] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/common.c.obj&lt;br /&gt;[113/196] Building C object modules/nrf/lib/fatal_error/CMakeFiles/..__nrf__lib__fatal_error.dir/fatal_error.c.obj&lt;br /&gt;[114/196] Linking C static library app\libapp.a&lt;br /&gt;[115/196] Linking C static library zephyr\arch\arch\arm\core\aarch32\mpu\libarch__arm__core__aarch32__mpu.a&lt;br /&gt;[116/196] Building C object modules/nrf/drivers/hw_cc310/CMakeFiles/..__nrf__drivers__hw_cc310.dir/hw_cc310.c.obj&lt;br /&gt;[117/196] Building C object zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj&lt;br /&gt;[118/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoul.c.obj&lt;br /&gt;[119/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtol.c.obj&lt;br /&gt;[120/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/abort.c.obj&lt;br /&gt;[121/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/atoi.c.obj&lt;br /&gt;[122/196] Building C object zephyr/boards/boards/arm/nrf52840dk_nrf52840/CMakeFiles/boards__arm__nrf52840dk_nrf52840.dir/board.c.obj&lt;br /&gt;C:\ncs\v2.1.2\zephyr\boards\arm\nrf52840dk_nrf52840\board.c:29:12: warning: &amp;#39;board_init&amp;#39; defined but not used [-Wunused-function]&lt;br /&gt; 29 | static int board_init(void)&lt;br /&gt; | ^~~~~~~~~~&lt;br /&gt;[123/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/exit.c.obj&lt;br /&gt;[124/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/malloc.c.obj&lt;br /&gt;[125/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoll.c.obj&lt;br /&gt;[126/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoull.c.obj&lt;br /&gt;[127/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/bsearch.c.obj&lt;br /&gt;[128/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/qsort.c.obj&lt;br /&gt;[129/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strerror.c.obj&lt;br /&gt;[130/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strncasecmp.c.obj&lt;br /&gt;[131/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strstr.c.obj&lt;br /&gt;[132/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/string.c.obj&lt;br /&gt;[133/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/sprintf.c.obj&lt;br /&gt;[134/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strspn.c.obj&lt;br /&gt;[135/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/stdout_console.c.obj&lt;br /&gt;[136/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/fprintf.c.obj&lt;br /&gt;[137/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/math/sqrt.c.obj&lt;br /&gt;[138/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/math/sqrtf.c.obj&lt;br /&gt;[139/196] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/time/gmtime.c.obj&lt;br /&gt;[140/196] Linking C static library zephyr\lib\posix\liblib__posix.a&lt;br /&gt;[141/196] Linking C static library zephyr\soc\arm\common\cortex_m\libsoc__arm__common__cortex_m.a&lt;br /&gt;[142/196] Linking C static library zephyr\soc\arm\nordic_nrf\nrf52\libsoc__arm__nordic_nrf__nrf52.a&lt;br /&gt;[143/196] Linking C static library zephyr\boards\boards\arm\nrf52840dk_nrf52840\libboards__arm__nrf52840dk_nrf52840.a&lt;br /&gt;[144/196] Linking C static library modules\nrf\lib\fprotect\lib..__nrf__lib__fprotect.a&lt;br /&gt;[145/196] Linking C static library zephyr\drivers\clock_control\libdrivers__clock_control.a&lt;br /&gt;[146/196] Linking C static library zephyr\drivers\gpio\libdrivers__gpio.a&lt;br /&gt;[147/196] Linking C static library zephyr\drivers\console\libdrivers__console.a&lt;br /&gt;[148/196] Linking C static library zephyr\drivers\flash\libdrivers__flash.a&lt;br /&gt;[149/196] Linking C static library zephyr\drivers\timer\libdrivers__timer.a&lt;br /&gt;[150/196] Linking C static library zephyr\drivers\serial\libdrivers__serial.a&lt;br /&gt;[151/196] Linking C static library zephyr\drivers\pinctrl\libdrivers__pinctrl.a&lt;br /&gt;[152/196] Linking C static library modules\nrf\lib\fatal_error\lib..__nrf__lib__fatal_error.a&lt;br /&gt;[153/196] Linking C static library modules\nrf\drivers\hw_cc310\lib..__nrf__drivers__hw_cc310.a&lt;br /&gt;[154/196] Building C object modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/C_/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj&lt;br /&gt;[155/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/mdk/system_nrf52840.c.obj&lt;br /&gt;[156/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/src/nrfx_gpiote.c.obj&lt;br /&gt;[157/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/helpers/nrfx_flag32_allocator.c.obj&lt;br /&gt;[158/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/nrfx_glue.c.obj&lt;br /&gt;[159/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/src/nrfx_clock.c.obj&lt;br /&gt;[160/196] Linking C static library zephyr\lib\libc\minimal\liblib__libc__minimal.a&lt;br /&gt;[161/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/src/nrfx_ppi.c.obj&lt;br /&gt;[162/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/src/nrfx_wdt.c.obj&lt;br /&gt;[163/196] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/src/nrfx_nvmc.c.obj&lt;br /&gt;[164/196] Building C object modules/segger/CMakeFiles/modules__segger.dir/SEGGER_RTT_zephyr.c.obj&lt;br /&gt;[165/196] Building C object modules/segger/CMakeFiles/modules__segger.dir/C_/ncs/v2.1.2/modules/debug/segger/SEGGER/SEGGER_RTT.c.obj&lt;br /&gt;[166/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/errno.c.obj&lt;br /&gt;[167/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/banner.c.obj&lt;br /&gt;[168/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/fatal.c.obj&lt;br /&gt;[169/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/main_weak.c.obj&lt;br /&gt;[170/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/device.c.obj&lt;br /&gt;[171/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/kheap.c.obj&lt;br /&gt;[172/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/init.c.obj&lt;br /&gt;[173/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/version.c.obj&lt;br /&gt;[174/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mem_slab.c.obj&lt;br /&gt;[175/196] Linking C static library modules\mcuboot\boot\bootutil\zephyr\libmcuboot_util.a&lt;br /&gt;[176/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/xip.c.obj&lt;br /&gt;[177/196] Building C object modules/nrf/modules/mcuboot/hooks/CMakeFiles/..__nrf__modules__mcuboot__hooks.dir/nrf53_hooks.c.obj&lt;br /&gt;FAILED: modules/nrf/modules/mcuboot/hooks/CMakeFiles/..__nrf__modules__mcuboot__hooks.dir/nrf53_hooks.c.obj &lt;br /&gt;C:\ncs\toolchains\v2.1.2\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe -DKERNEL -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=1 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v2.1.2/zephyr/include/zephyr -IC:/ncs/v2.1.2/zephyr/include -Izephyr/include/generated -IC:/ncs/v2.1.2/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v2.1.2/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v2.1.2/nrf/include -IC:/ncs/v2.1.2/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v2.1.2/modules/hal/nordic/nrfx -IC:/ncs/v2.1.2/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v2.1.2/modules/hal/nordic/nrfx/mdk -IC:/ncs/v2.1.2/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v2.1.2/modules/debug/segger/SEGGER -IC:/ncs/v2.1.2/modules/debug/segger/Config -IC:/ncs/v2.1.2/zephyr/modules/segger/. -IC:/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/zephyr/.. -IC:/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/zephyr/../include -IC:/ncs/v2.1.2/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include -IC:/ncs/v2.1.2/nrfxlib/crypto/nrf_cc310_bl/include -isystem C:/ncs/v2.1.2/zephyr/lib/libc/minimal/include -isystem c:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/include -isystem c:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/include-fixed -isystem C:/ncs/v2.1.2/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros D:/WorkSpacNCS_DFU/peripheral_hr_dfu2/build_dfu2_52840/mcuboot/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfp16-format=ieee --sysroot=C:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros C:/ncs/v2.1.2/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/ncs/v2.1.2/bootloader/mcuboot/boot/zephyr=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v2.1.2/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v2.1.2=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT modules/nrf/modules/mcuboot/hooks/CMakeFiles/..__nrf__modules__mcuboot__hooks.dir/nrf53_hooks.c.obj -MF modules\nrf\modules\mcuboot\hooks\CMakeFiles\..__nrf__modules__mcuboot__hooks.dir\nrf53_hooks.c.obj.d -o modules/nrf/modules/mcuboot/hooks/CMakeFiles/..__nrf__modules__mcuboot__hooks.dir/nrf53_hooks.c.obj -c C:/ncs/v2.1.2/nrf/modules/mcuboot/hooks/nrf53_hooks.c&lt;br /&gt;C:/ncs/v2.1.2/nrf/modules/mcuboot/hooks/nrf53_hooks.c: In function &amp;#39;boot_read_image_header_hook&amp;#39;:&lt;br /&gt;C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:28:28: error: &amp;#39;PM_MCUBOOT_PRIMARY_1_ADDRESS&amp;#39; undeclared (first use in this function); did you mean &amp;#39;PM_MCUBOOT_PRIMARY_ADDRESS&amp;#39;?&lt;br /&gt; 28 | img_head-&amp;gt;ih_load_addr = PM_MCUBOOT_PRIMARY_1_ADDRESS;&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt; | PM_MCUBOOT_PRIMARY_ADDRESS&lt;br /&gt;C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:28:28: note: each undeclared identifier is reported only once for each function it appears in&lt;br /&gt;C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:29:27: error: &amp;#39;PM_CPUNET_APP_SIZE&amp;#39; undeclared (first use in this function)&lt;br /&gt; 29 | img_head-&amp;gt;ih_img_size = PM_CPUNET_APP_SIZE;&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~&lt;br /&gt;In file included from C:\ncs\v2.1.2\zephyr\include\zephyr\toolchain\gcc.h:88,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\include\zephyr\toolchain.h:50,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\include\zephyr\sys\__assert.h:11,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\lib\libc\minimal\include\assert.h:11,&lt;br /&gt; from C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:7:&lt;br /&gt;C:/ncs/v2.1.2/nrf/modules/mcuboot/hooks/nrf53_hooks.c: In function &amp;#39;network_core_update&amp;#39;:&lt;br /&gt;C:\ncs\v2.1.2\zephyr\include\zephyr\device.h:96:39: error: &amp;#39;__device_dts_ord_DT_N_NODELABEL_PM_MCUBOOT_PRIMARY_1_DEV_ORD&amp;#39; undeclared (first use in this function)&lt;br /&gt; 96 | #define DEVICE_NAME_GET(name) _CONCAT(__device_, name)&lt;br /&gt; | ^~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\zephyr\include\zephyr\device.h:276:37: note: in expansion of macro &amp;#39;DEVICE_NAME_GET&amp;#39;&lt;br /&gt; 276 | #define DEVICE_DT_NAME_GET(node_id) DEVICE_NAME_GET(Z_DEVICE_DT_DEV_NAME(node_id))&lt;br /&gt; | ^~~~~~~~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\zephyr\include\zephyr\device.h:296:34: note: in expansion of macro &amp;#39;DEVICE_DT_NAME_GET&amp;#39;&lt;br /&gt; 296 | #define DEVICE_DT_GET(node_id) (&amp;amp;DEVICE_DT_NAME_GET(node_id))&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:85:19: note: in expansion of macro &amp;#39;DEVICE_DT_GET&amp;#39;&lt;br /&gt; 85 | mock_flash_dev = DEVICE_DT_GET(DT_NODELABEL(PM_MCUBOOT_PRIMARY_1_DEV));&lt;br /&gt; | ^~~~~~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\nrf\modules\mcuboot\hooks\nrf53_hooks.c:98:20: error: &amp;#39;PM_CPUNET_B0N_ADDRESS&amp;#39; undeclared (first use in this function)&lt;br /&gt; 98 | if (reset_addr &amp;gt; PM_CPUNET_B0N_ADDRESS) {&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;[178/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread.c.obj&lt;br /&gt;[179/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timeout.c.obj&lt;br /&gt;[180/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mempool.c.obj&lt;br /&gt;[181/196] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timer.c.obj&lt;br /&gt;[182/196] Linking C static library modules\segger\libmodules__segger.a&lt;br /&gt;[183/196] Linking C static library modules\hal_nordic\nrfx\libmodules__hal_nordic__nrfx.a&lt;br /&gt;ninja: build stopped: subcommand failed.&lt;br /&gt;[172/306] Building C object CMakeFiles/app.dir/src/main.c.obj&lt;br /&gt;In file included from C:\ncs\v2.1.2\zephyr\include\zephyr\kernel\sched_priq.h:9,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\include\zephyr\kernel_includes.h:23,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\include\zephyr\kernel.h:17,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\include\zephyr\zephyr.h:18,&lt;br /&gt; from d:\WorkSpacNCS_DFU\peripheral_hr_dfu2\src\main.c:18:&lt;br /&gt;C:\ncs\v2.1.2\zephyr\include\zephyr\sys\util.h:108: warning: &amp;quot;ARRAY_SIZE&amp;quot; redefined&lt;br /&gt; 108 | #define ARRAY_SIZE(array) \&lt;br /&gt; | &lt;br /&gt;In file included from C:\ncs\v2.1.2\zephyr\include\zephyr\mgmt\mcumgr\buf.h:11,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\subsys\mgmt\mcumgr\lib\mgmt\include\mgmt\mgmt.h:11,&lt;br /&gt; from C:\ncs\v2.1.2\zephyr\subsys\mgmt\mcumgr\lib\cmd\img_mgmt\include\img_mgmt\img_mgmt.h:13,&lt;br /&gt; from d:\WorkSpacNCS_DFU\peripheral_hr_dfu2\src\main.c:10:&lt;br /&gt;C:\ncs\v2.1.2\modules\lib\zcbor\include\zcbor_common.h:74: note: this is the location of the previous definition&lt;br /&gt; 74 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))&lt;br /&gt; | &lt;br /&gt;../src/main.c: In function &amp;#39;main&amp;#39;:&lt;br /&gt;d:\WorkSpacNCS_DFU\peripheral_hr_dfu2\src\main.c:131:2: warning: implicit declaration of function &amp;#39;stat_mgmt_register_group&amp;#39;; did you mean &amp;#39;img_mgmt_register_group&amp;#39;? [-Wimplicit-function-declaration]&lt;br /&gt; 131 | stat_mgmt_register_group();&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt; | img_mgmt_register_group&lt;br /&gt;[214/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/conn.c.obj&lt;br /&gt;FAILED: modules/mcuboot/mcuboot_subimage-prefix/src/mcuboot_subimage-stamp/mcuboot_subimage-build mcuboot/zephyr/zephyr.hex mcuboot/zephyr/zephyr.elf &lt;br /&gt;cmd.exe /C &amp;quot;cd /D D:\WorkSpacNCS_DFU\peripheral_hr_dfu2\build_dfu2_52840\mcuboot &amp;amp;&amp;amp; C:\ncs\toolchains\v2.1.2\opt\bin\cmake.exe --build . --&amp;quot;&lt;br /&gt;[216/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/stat_mgmt/src/stat_mgmt.c.obj&lt;br /&gt;[217/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/img_mgmt/src/zephyr_img_mgmt_log.c.obj&lt;br /&gt;[218/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/smp_bt.c.obj&lt;br /&gt;[219/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/img_mgmt/src/img_mgmt_util.c.obj&lt;br /&gt;[220/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/buf.c.obj&lt;br /&gt;[221/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/smp.c.obj&lt;br /&gt;[222/306] Linking C static library zephyr\lib\libc\minimal\liblib__libc__minimal.a&lt;br /&gt;[223/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/mgmt/src/mgmt.c.obj&lt;br /&gt;[224/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/img_mgmt/src/img_mgmt_state.c.obj&lt;br /&gt;[225/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/img_mgmt/src/img_mgmt.c.obj&lt;br /&gt;[226/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/smp_shell.c.obj&lt;br /&gt;[227/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/os_mgmt/src/zephyr_os_mgmt.c.obj&lt;br /&gt;[228/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/keys.c.obj&lt;br /&gt;[229/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/os_mgmt/src/os_mgmt.c.obj&lt;br /&gt;[230/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/smp/src/smp.c.obj&lt;br /&gt;[231/306] Building C object zephyr/subsys/mgmt/mcumgr/CMakeFiles/subsys__mgmt__mcumgr.dir/lib/cmd/img_mgmt/src/zephyr_img_mgmt.c.obj&lt;br /&gt;[232/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/l2cap.c.obj&lt;br /&gt;[233/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/hci_core.c.obj&lt;br /&gt;[234/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/gatt.c.obj&lt;br /&gt;[235/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/att.c.obj&lt;br /&gt;[236/306] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/smp.c.obj&lt;br /&gt;ninja: build stopped: subcommand failed.&lt;br /&gt;FATAL ERROR: command exited with status 1: &amp;#39;c:\ncs\toolchains\v2.1.2\opt\bin\cmake.EXE&amp;#39; --build &amp;#39;d:\WorkSpacNCS_DFU\peripheral_hr_dfu2\build_dfu2_52840&amp;#39;&lt;/p&gt;
&lt;p&gt;* The terminal process terminated with exit code: 1. &lt;br /&gt; * Terminal will be reused by tasks, press any key to close it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/399027?ContentTypeID=1</link><pubDate>Mon, 05 Dec 2022 15:55:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0fe1493-5fa8-46ce-9873-2eb78f249f31</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;1)&lt;/p&gt;
&lt;p&gt;You might need to add this to include&lt;/p&gt;
&lt;p&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;bootutil/bootutil.h&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;and maybe this to&amp;nbsp;CMakeLists.txt&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;add_subdirectory(${ZEPHYR_MCUBOOT_MODULE_DIR}/boot/bootutil/zephyr
                 ${CMAKE_CURRENT_BINARY_DIR}/boot/bootutil/zephyr
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;2)&lt;/p&gt;
&lt;p&gt;Another alternative, that might be suitable, is to use&amp;nbsp;CONFIG_OS_MGMT_RESET_HOOK&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/commit/d67a364ace006f16019dc4fe0bc689df2dea55f8"&gt;https://github.com/nrfconnect/sdk-zephyr/commit/d67a364ace006f16019dc4fe0bc689df2dea55f8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Register the callback with&amp;nbsp;os_mgmt_register_reset_evt_cb(). Do this in the main application&lt;/p&gt;
&lt;p&gt;When mcumgr requests the application to reboot(typically after a new image has been sent), you can set a GPIO high in the reset callback.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398547?ContentTypeID=1</link><pubDate>Thu, 01 Dec 2022 13:12:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a867ccd-f3ba-4272-967c-66d789c5d2f4</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;Our preference is to avoid editing the files in the SDK, I&amp;#39;ve done it to test it out and it has worked in the sense that the state of the pin no longer persists into the main app, however the LED i&amp;#39;m using to test the pin change only comes on right at the end of the DFU process during validation and not during the actual update process, this is too late.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;boot_perform_update_hook doesn&amp;#39;t seem to work in the same way as the status change?&lt;/p&gt;
&lt;p&gt;Lots of warnings when the boot_hooks.h is included:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:71:40: warning: &amp;#39;struct image_header&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 71 | struct image_header *img_head);&lt;br /&gt; | ^~~~~~~~~~~~&lt;br /&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:101:43: warning: &amp;#39;struct flash_area&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 101 | const struct flash_area *area);&lt;br /&gt; | ^~~~~~~~~~&lt;br /&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:100:52: warning: &amp;#39;struct image_header&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 100 | int boot_perform_update_hook(int img_index, struct image_header *img_head,&lt;br /&gt; | ^~~~~~~~~~~~&lt;br /&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:119:60: warning: &amp;#39;struct flash_area&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 119 | int boot_copy_region_post_hook(int img_index, const struct flash_area *area,&lt;br /&gt; | ^~~~~~~~~~&lt;br /&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:137:59: warning: &amp;#39;struct flash_area&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 137 | int boot_serial_uploaded_hook(int img_index, const struct flash_area *area,&lt;br /&gt; | ^~~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\zephyr\boards\arm\nrf52840dk_nrf52840\board.c:61:52: warning: &amp;#39;struct image_header&amp;#39; declared inside parameter list will not be visible outside of this definition or declaration&lt;br /&gt; 61 | int boot_perform_update_hook(int img_index, struct image_header *img_head,&lt;br /&gt; | ^~~~~~~~~~~~&lt;br /&gt;C:\ncs\v2.1.2\zephyr\boards\arm\nrf52840dk_nrf52840\board.c:61:5: error: conflicting types for &amp;#39;boot_perform_update_hook&amp;#39;&lt;br /&gt; 61 | int boot_perform_update_hook(int img_index, struct image_header *img_head,&lt;br /&gt; | ^~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;In file included from C:\ncs\v2.1.2\zephyr\boards\arm\nrf52840dk_nrf52840\board.c:12:&lt;br /&gt;c:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\include\bootutil\boot_hooks.h:100:5: note: previous declaration of &amp;#39;boot_perform_update_hook&amp;#39; was here&lt;br /&gt; 100 | int boot_perform_update_hook(int img_index, struct image_header *img_head,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398522?ContentTypeID=1</link><pubDate>Thu, 01 Dec 2022 12:11:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36b5b837-8a11-4cb7-b4bf-d7b7573f1259</guid><dc:creator>Sigurd</dc:creator><description>[quote user="RichardP"]Excuse my ignorance, but which part exactly would be placed in an if, and what&amp;#39;s being checked?[/quote]
&lt;p&gt;Something like this at&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/mcuboot/blob/main/boot/bootutil/src/loader.c#L2059"&gt;https://github.com/zephyrproject-rtos/mcuboot/blob/main/boot/bootutil/src/loader.c#L2059&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;if(has_upgrade) {
    mcuboot_status_change(MCUBOOT_STATUS_UPGRADING);

}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Some other alternatives that might work is to use&amp;nbsp;boot_perform_update_hook() instead&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-mcuboot/blob/main/boot/zephyr/hooks_sample.c"&gt;https://github.com/nrfconnect/sdk-mcuboot/blob/main/boot/zephyr/hooks_sample.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398398?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 16:57:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8c039e00-8e2e-41c3-831d-917d72e96be5</guid><dc:creator>Richard</dc:creator><description>[quote userid="15146" url="~/f/nordic-q-a/94271/custom-mcuboot-dfu-bootloader-nrf-connect/398394"]to make it only run if an upgrade is present, it could be placed in an if()[/quote]
&lt;p&gt;Excuse my ignorance, but which part exactly would be placed in an if, and what&amp;#39;s being checked?&lt;/p&gt;
&lt;p&gt;I&amp;#39;m already doing this:&lt;/p&gt;
[quote userid="15146" url="~/f/nordic-q-a/94271/custom-mcuboot-dfu-bootloader-nrf-connect/398301"]if(CONFIG_MCUBOOT)&lt;br /&gt; zephyr_library()&lt;br /&gt; zephyr_library_sources(my_mcuboot_hook.c)&lt;br /&gt;endif()[/quote]
&lt;p&gt;BR,&lt;br /&gt;Richard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398394?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 16:30:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7383322b-b02b-4c26-bfa4-0b332e6dec60</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I checked&amp;nbsp;this with the developer, MCUBOOT_STATUS_UPGRADING&amp;nbsp;does not necessarily mean that it is upgrading the image, just that it is at the point of mcuboot where upgrades take place...&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/mcuboot/blob/main/boot/bootutil/src/loader.c#L2059"&gt;https://github.com/zephyrproject-rtos/mcuboot/blob/main/boot/bootutil/src/loader.c#L2059&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;to make it only run if an upgrade is present, it could be placed in an if()&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;PS:&amp;nbsp;&lt;/span&gt;It might be getting cut off due to booting the application but the status does change prior to the application booting: &lt;span&gt;mcuboot_status_change(MCUBOOT_STATUS_BOOTABLE_IMAGE_FOUND);&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398330?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 12:39:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77ad2580-81b4-4d46-938a-76d66ae590d9</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;Thank you, I&amp;#39;ve got that running. Unfortunately, not exactly how I was expecting.&lt;/p&gt;
&lt;p&gt;I realise I didn&amp;#39;t mention we&amp;#39;re doing the upgrade via bluetooth and nrf Connect google play store app. The lack of MCUBOOT_STATUS references to BLE types seem to indicate those status updates aren&amp;#39;t supported?&lt;/p&gt;
&lt;p&gt;In which case, it&amp;#39;s basically back to the initial query on the best process for this?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve added this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void mcuboot_status_change(mcuboot_status_type_t status)
{
	printk(&amp;quot;mcuboot status: %d \n&amp;quot;, status);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;and my terminal output is below (emphasis mine). Perhaps my misunderstanding, but I wouldn&amp;#39;t expect the &amp;#39;normal&amp;#39; startup process to hit the status of 1 (MCUBOOT_STATUS_UPGRADING)?&lt;/p&gt;
&lt;p&gt;*** Booting Zephyr OS build v3.1.99-ncs1-1 ***&lt;br /&gt;I: Starting bootloader&lt;br /&gt;&lt;span style="background-color:#ffff00;"&gt;mcuboot status: 0&lt;/span&gt;&lt;br /&gt;I: Primary image: magic=good, swap_type=0x2, copy_done=0x1, image_ok=0x1&lt;br /&gt;I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3&lt;br /&gt;I: Boot source: none&lt;br /&gt;I: Swap type: none&lt;br /&gt;&lt;span style="background-color:#ffff00;"&gt;mcuboot status: 1&lt;/span&gt;&lt;br /&gt;I: Bootloader chainload address offset: 0xc000&lt;br /&gt;I: Jumping to the first image slot&lt;br /&gt;*** Booting Zephyr OS build v3.1.99-ncs1-1 ***&lt;br /&gt;Bluetooth initialized&lt;br /&gt;Advertising successfully started&lt;br /&gt;build time: Nov 30 2022 12:23:46&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;uart:~$ Connected&lt;br /&gt;[00:00:26.260,498] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;[00:00:26.260,772] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;[00:00:26.412,780] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;[00:00:26.412,872] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;[00:00:34.729,522] &amp;lt;inf&amp;gt; mcumgr_img_mgmt: Erased 0x39000 bytes of image slot&lt;br /&gt;[00:00:34.875,823] &amp;lt;inf&amp;gt; mcumgr_img_mgmt: Erased 0x1000 bytes of image slot trailer&lt;br /&gt;uart:~$ *** Booting Zephyr OS build v3.1.99-ncs1-1 ***&lt;br /&gt;I: Starting bootloader&lt;br /&gt;&lt;span style="background-color:#ffff00;"&gt;mcuboot status: 0&lt;/span&gt;&lt;br /&gt;I: Primary image: magic=good, swap_type=0x2, copy_done=0x1, image_ok=0x1&lt;br /&gt;I: Secondary image: magic=good, swap_type=0x2, copy_done=0x3, image_ok=0x3&lt;br /&gt;I: Boot source: none&lt;br /&gt;I: Swap type: test&lt;br /&gt;&lt;span style="background-color:#ffff00;"&gt;mcuboot status: 1&lt;/span&gt;&lt;br /&gt;I: Starting swap using move algorithm.&lt;br /&gt;I: Bootloader chainload address offset: 0xc000&lt;br /&gt;I: Jumping to the first image slot&lt;br /&gt;*** Booting Zephyr OS build v3.1.99-ncs1-1 ***&lt;br /&gt;Bluetooth initialized&lt;br /&gt;Advertising successfully started&lt;br /&gt;build time: Nov 30 2022 12:01:21&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;uart:~$ Connected&lt;br /&gt;[00:00:01.227,844] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: revert&lt;br /&gt;[00:00:01.227,905] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: revert&lt;br /&gt;[00:00:01.228,546] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;[00:00:01.228,820] &amp;lt;inf&amp;gt; mcuboot_util: Swap type: none&lt;br /&gt;uart:~$&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398301?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 11:24:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:13865fcc-a59a-40a3-a59c-6ff8e924e3fc</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t tested it, but I&amp;#39;m thinking that you in&amp;nbsp;CMakeLists.txt in boards/arm/your_board , can add something like this:&lt;/p&gt;
&lt;p&gt;if(CONFIG_MCUBOOT)&lt;br /&gt; zephyr_library()&lt;br /&gt; zephyr_library_sources(my_mcuboot_hook.c)&lt;br /&gt;endif()&lt;/p&gt;
&lt;p&gt;Then place a my_mcuboot_hook.c in boards/arm/your_board&lt;/p&gt;
&lt;p&gt;Might need to include these:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;quot;bootutil/boot_hooks.h&amp;quot;
#include &amp;quot;bootutil/mcuboot_status.h&amp;quot;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398295?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 11:04:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3919ad1d-473f-4039-bb1e-c70b9076952e</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;That looks promising. Where does the handler for mcuboot_status_change need to be placed?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve added it in the main project directory at the moment (which I suspected would be wrong), I&amp;#39;m getting this in the build log:&lt;/p&gt;
&lt;p&gt;c:/ncs/toolchains/v2.1.2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.exe: app/libapp.a(loader.c.obj): in function `context_boot_go&amp;#39;:&lt;br /&gt;C:\ncs\v2.1.2\bootloader\mcuboot\boot\bootutil\src\loader.c:2112: undefined reference to `mcuboot_status_change&amp;#39;&lt;br /&gt;collect2.exe: error: ld returned 1 exit status&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I added&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_MCUBOOT_ACTION_HOOKS&lt;/span&gt;&lt;span&gt;=y into my mcuboot.conf file which is within a child_image folder.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/398280?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 10:07:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c05347ae-00b1-4b63-a507-0c28c54d6b1b</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Maybe this mcuboot action hook&amp;nbsp;could be used for your use-case:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-mcuboot/blob/v1.9.99-ncs2/boot/zephyr/Kconfig#L578"&gt;https://github.com/nrfconnect/sdk-mcuboot/blob/v1.9.99-ncs2/boot/zephyr/Kconfig#L578&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-mcuboot/blob/main/boot/bootutil/include/bootutil/mcuboot_status.h"&gt;https://github.com/nrfconnect/sdk-mcuboot/blob/main/boot/bootutil/include/bootutil/mcuboot_status.h&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/397668?ContentTypeID=1</link><pubDate>Fri, 25 Nov 2022 13:42:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00a64e7a-b485-46b1-8e4a-048f8e27d03a</guid><dc:creator>Richard</dc:creator><description>&lt;p&gt;Hi Sigurd,&lt;/p&gt;
&lt;p&gt;On most of our boards we have a soft power on that maintains the power after being physically switched on via a button. The board is therefore either on by pressing and holding the button, or on if a pin is held high.&lt;/p&gt;
&lt;p&gt;BR,&lt;br /&gt;Richard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Custom MCUboot DFU bootloader nrf Connect</title><link>https://devzone.nordicsemi.com/thread/397664?ContentTypeID=1</link><pubDate>Fri, 25 Nov 2022 13:34:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cf251070-e3b8-470d-82f5-b1f473a5707e</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]To avoid someone having to press and hold a button the entire time on our custom boards[/quote]
&lt;p&gt;Could you explain this some more? Why does a use need to press and hold a button?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>