본문으로 바로가기

[nRF52 ] DFU serial 에러 메시지

category Nordic_nRF52 2022. 7. 21. 11:51

 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 명령시 에러가 발생 안하네요.

 

 

그럼 오늘도 수고하세요.

 

반응형