nrfutil dfu serial 명령시 다음과 같은 에러가 발생하네요.
"The array of supported SoftDevices for the update does not contain the FWID of
the current SoftDevice."
▶ nrfutil dfu serial 명령
$>nrfutil dfu serial -pkg dfu_app_A77.zip -p COM4
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 1537, in <module>
File "site-packages\click\core.py", line 764, in __call__
File "site-packages\click\core.py", line 717, in main
File "site-packages\click\core.py", line 1137, in invoke
File "site-packages\click\core.py", line 1137, in invoke
File "site-packages\click\core.py", line 956, in invoke
File "site-packages\click\core.py", line 555, in invoke
File "nordicsemi\__main__.py", line 1056, in serial
File "nordicsemi\__main__.py", line 970, in do_serial
File "nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 95, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 256, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 421, in __execute
File "nordicsemi\dfu\dfu_transport_serial.py", line 502, in __get_response
pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x07: The array of supported SoftDevices for the update does not contain the FWID of t
he current SoftDevice.
[13828] Failed to execute script __main__
▶ RTT 로그 (secure_bootloader/pca10040_uart_debug 프로젝트 사용)
<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> nrf_dfu_settings: Using settings page.
<debug> nrf_dfu_settings: Copying forbidden parts from backup page.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<info> nrf_dfu_settings: Backing up settings page to address 0x7E000.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<debug> app: Enter nrf_bootloader_fw_activate
<info> app: No firmware to activate.
<info> app: Boot validation failed. No valid app to boot.
<debug> app: DFU mode because app is not valid.
<info> nrf_bootloader_wdt: WDT is not enabled
<debug> app: in weak nrf_dfu_init_user
<debug> app: timer_stop (0x20000024)
<debug> app: timer_activate (0x20000024)
<info> app: Entering DFU mode.
<debug> app: Initializing transports (found: 1)
<debug> nrf_dfu_serial_uart: serial_dfu_transport_init()
<debug> nrf_dfu_serial_uart: serial_dfu_transport_init() completed
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> app: Enter main loop
<debug> nrf_dfu_serial: Received ping 1
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_PING
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x9, 0x1]
<debug> nrf_dfu_serial: Set receipt notif target: 0
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x2, 0x1]
<debug> nrf_dfu_serial: Received serial mtu
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_MTU_GET
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x7, 0x1]
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x6, 0x1]
<debug> app: Shutting down transports (found: 1)
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
<debug> app: timer_stop (0x20000024)
<debug> app: timer_activate (0x20000024)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x1, 0x1]
<info> nrf_dfu_serial_uart: Allocated buffer 20001774
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<info> nrf_dfu_serial_uart: Allocated buffer 200016F0
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<info> nrf_dfu_serial_uart: Allocated buffer 20001774
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<info> nrf_dfu_serial_uart: Allocated buffer 20001774
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_serial: Sending Response: [0x3, 0x1]
<info> nrf_dfu_serial_uart: Allocated buffer 20001774
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (command)
<debug> nrf_dfu_validation: PB: Init packet data len: 64
<info> nrf_dfu_validation: Signature required. Checking signature.
<info> nrf_dfu_validation: Calculating hash (len: 64)
<info> nrf_dfu_validation: Verify signature
<info> nrf_dfu_validation: Image verified
<warning> nrf_dfu_ver_validation: SD req not met.
<warning> nrf_dfu_validation: Prevalidation failed.
<debug> nrf_dfu_validation: Init command:
<debug> nrf_dfu_validation: 08 4D 10 34 1A 02 81 02|.M.4....
<debug> nrf_dfu_validation: 20 00 28 00 30 00 38 94| .(.0.8.
<debug> nrf_dfu_validation: CD 04 42 24 08 03 12 20|..B$...
<debug> nrf_dfu_validation: A1 8E 71 FF F6 33 44 37|..q..3D7
<debug> nrf_dfu_validation: 9B 84 6E DF E8 CC 16 78|..n....x
<debug> nrf_dfu_validation: D6 D9 97 65 C9 EE F5 D6|...e....
<debug> nrf_dfu_validation: CE 3E D7 6F C6 71 AB 5E|.>.o.q.^
<debug> nrf_dfu_validation: 48 00 52 04 08 01 12 00|H.R.....
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0xB
<warning> nrf_dfu_serial: DFU request completed with result: 0xB
<debug> nrf_dfu_serial: Sending Response: [0x4, 0xB]
< 해결책>
: softdevice 가 없어서 나온 문제이니 softdevice만 download 해주면 됩니다.
▶ SES 프로젝트 의 Target 메뉴 "Download File" 선택해 줍니다.
▶ "Download Intel Hex File..." 클릭
▶ 저는 nRF52 보드를 가지고 있어서 아래의 이미지를 선택했습니다.
▶ 열기 누르면 softdevice 가 아래그림처럼 download 가 되고
이후 nrfutil dfu 명령시 에러가 발생 안하네요.
그럼 오늘도 수고하세요.
반응형
'Nordic_nRF52' 카테고리의 다른 글
[nRF52 ] gzll_ack_payload host 프로젝트 (0) | 2023.01.02 |
---|---|
[nRF52] record_launch_app 프로젝트 분석 (0) | 2022.12.30 |
[nRF52 ] ble_app_cscs 프로젝트 분석 (0) | 2022.06.30 |
[nRF52 ] ble_app_hrs_rscs_relay 프로젝트 분석 (0) | 2022.06.17 |
[nRF52 ] ble_app_bps 프로젝트 분석 (0) | 2022.06.14 |