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

Question about Pynrfjprog.

I now need to burn the app firmware and modem firmware of multiple 9160 chips at the same time. Using pynrfjprog to write a program to burn the firmware for ten chips(Open ten threads to burn ten chips).

use:python3.8.3      pynrfjprog-10.11.1

When I start ten threads to burn, the program often exits automatically when burning app firmware or modem firmware. VScoede debugging did not report any errors, the program looks like it shuts down normally. I cannot locate my error right now. Is there any way I can find the error.

notes:

When I turn on the debug log, the console output log increases, resulting in longer burning time and the problem cannot be reproduced

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

The last log on exit:

2020-12-19 14:44:42,790 - Parameters.py[line:91] - INFO: Verifying 21 of 30 segments.
2020-12-19 14:44:42,820 - Parameters.py[line:91] - INFO: Verifying 22 of 30 segments.
2020-12-19 14:44:42,842 - Parameters.py[line:91] - INFO: Verifying 23 of 30 segments.
2020-12-19 14:44:42,851 - Parameters.py[line:91] - INFO: Verifying 24 of 30 segments.
2020-12-19 14:44:42,867 - Parameters.py[line:91] - INFO: Verifying 25 of 30 segments.
2020-12-19 14:44:42,885 - Parameters.py[line:91] - INFO: Verifying 26 of 30 segments.
2020-12-19 14:44:42,907 - Parameters.py[line:91] - INFO: Verifying 27 of 30 segments.
2020-12-19 14:44:42,916 - Parameters.py[line:91] - INFO: Verifying 28 of 30 segments.
2020-12-19 14:44:42,941 - Parameters.py[line:91] - INFO: Verifying 29 of 30 segments.
2020-12-19 14:44:42,953 - Parameters.py[line:91] - INFO: Verifying 30 of 30 segments.
2020-12-19 14:44:42,968 - project.py[line:108] - INFO: 960016039 : complete the operation
2020-12-19 14:44:43,129 - Parameters.py[line:91] - INFO: Verifying 1 of 1 segments.
2020-12-19 14:44:43,201 - Parameters.py[line:91] - INFO: Verification completed.
2020-12-19 14:44:43,206 - project.py[line:168] - INFO: 960043320 : Modem firmware completed
2020-12-19 14:44:43,231 - Parameters.py[line:91] - INFO: Programming 31 of 32 segments.

2020-12-19 15:11:13,881 - Parameters.py[line:91] - INFO: Programming 1 of 32 segments.
2020-12-19 15:11:13,896 - Parameters.py[line:91] - INFO: Checking for newer bootloader.
2020-12-19 15:11:13,901 - Parameters.py[line:91] - INFO: Newer bootloader discovered, re-initializing.
2020-12-19 15:11:14,184 - Parameters.py[line:91] - INFO: Programming file 0 of 2 files.
2020-12-19 15:11:14,215 - Parameters.py[line:91] - INFO: Programming 1 of 1 segments.
2020-12-19 15:11:14,351 - Parameters.py[line:91] - INFO: Programming finished.
2020-12-19 15:11:14,352 - Parameters.py[line:91] - INFO: Programming file 1 of 2 files.
2020-12-19 15:11:14,617 - Parameters.py[line:91] - INFO: Programming 2 of 32 segments.
2020-12-19 15:11:15,324 - Parameters.py[line:91] - INFO: Programming 1 of 32 segments.
2020-12-19 15:11:15,554 - project.py[line:146] - INFO: 960038718 : Writing modem firmware
2020-12-19 15:11:15,687 - Parameters.py[line:91] - INFO: Checking for newer bootloader.
2020-12-19 15:11:15,688 - Parameters.py[line:91] - INFO: Newer bootloader discovered, re-initializing.
2020-12-19 15:11:16,032 - Parameters.py[line:91] - INFO: Programming file 0 of 2 files.
2020-12-19 15:11:16,068 - Parameters.py[line:91] - INFO: Programming 1 of 1 segments.
2020-12-19 15:11:16,186 - Parameters.py[line:91] - INFO: Programming 2 of 32 segments.
2020-12-19 15:11:16,218 - Parameters.py[line:91] - INFO: Programming finished.
2020-12-19 15:11:16,219 - Parameters.py[line:91] - INFO: Programming file 1 of 2 files.
2020-12-19 15:11:16,341 - Parameters.py[line:91] - INFO: Programming 3 of 32 segments.
2020-12-19 15:11:16,910 - project.py[line:146] - INFO: 960016039 : Writing modem firmware
2020-12-19 15:11:17,037 - Parameters.py[line:91] - INFO: Checking for newer bootloader.
2020-12-19 15:11:17,039 - Parameters.py[line:91] - INFO: Newer bootloader discovered, re-initializing.
2020-12-19 15:11:17,365 - Parameters.py[line:91] - INFO: Programming 1 of 32 segments.
2020-12-19 15:11:17,475 - Parameters.py[line:91] - INFO: Programming file 0 of 2 files.
2020-12-19 15:11:17,508 - Parameters.py[line:91] - INFO: Programming 1 of 1 segments.
2020-12-19 15:11:17,639 - Parameters.py[line:91] - INFO: Programming finished.
2020-12-19 15:11:17,640 - Parameters.py[line:91] - INFO: Programming file 1 of 2 files.
2020-12-19 15:11:17,712 - Parameters.py[line:91] - INFO: Programming 3 of 32 segments.
2020-12-19 15:11:17,876 - Parameters.py[line:91] - INFO: Programming 4 of 32 segments.
2020-12-19 15:11:18,122 - Parameters.py[line:91] - INFO: Programming 2 of 32 segments.
2020-12-19 15:11:18,324 - project.py[line:146] - INFO: 960043320 : Writing modem firmware
2020-12-19 15:11:18,546 - Parameters.py[line:91] - INFO: Checking for newer bootloader.
2020-12-19 15:11:18,547 - Parameters.py[line:91] - INFO: Newer bootloader discovered, re-initializing.
2020-12-19 15:11:18,978 - Parameters.py[line:91] - INFO: Programming 1 of 32 segments.
2020-12-19 15:11:19,039 - Parameters.py[line:91] - INFO: Programming file 0 of 2 files.
2020-12-19 15:11:19,083 - Parameters.py[line:91] - INFO: Programming 1 of 1 segments.
2020-12-19 15:11:19,217 - Parameters.py[line:91] - INFO: Programming 4 of 32 segments.
2020-12-19 15:11:19,222 - Parameters.py[line:91] - INFO: Programming finished.
2020-12-19 15:11:19,228 - Parameters.py[line:91] - INFO: Programming file 1 of 2 files.
2020-12-19 15:11:19,608 - Parameters.py[line:91] - INFO: Programming 5 of 32 segments.
2020-12-19 15:11:19,701 - Parameters.py[line:91] - INFO: Programming 3 of 32 segments.
2020-12-19 15:11:19,736 - Parameters.py[line:91] - INFO: Programming 2 of 32 segments.
2020-12-19 15:11:19,907 - project.py[line:146] - INFO: 960045536 : Writing modemfirmware
2020-12-19 15:11:20,042 - Parameters.py[line:91] - INFO: Checking for newer bootloader.
2020-12-19 15:11:20,044 - Parameters.py[line:91] - INFO: Newer bootloader discovered, re-initializing.

  • This is the log before I caught the crash, and I didn't see any abnormalities.

    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_IsOpen()
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 0.119ms returns 0x01
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_Lock()
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] close
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] disconnect_from_emu
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_disconnect_from_emu
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] is_connected_to_device
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_IsConnected()
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 0.124ms returns TRUE
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] Disable trace before closing connection.
    2020-12-22 16:07:34,592 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_write_u32
    2020-12-22 16:07:34,593 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_WriteU32(0xE000EDFC, 0x00000000)
    2020-12-22 16:07:34,593 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] Debug reg: DEMCR
    2020-12-22 16:07:34,593 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] CPU is running
    2020-12-22 16:07:34,593 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] CPU_WriteMem(4 bytes @ 0xE000EDFC)
    2020-12-22 16:07:34,595 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 2.785ms returns 0
    2020-12-22 16:07:34,596 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_is_debug_region_powered
    2020-12-22 16:07:34,596 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_read_debug_port_register
    2020-12-22 16:07:34,596 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_select_debug_port_register
    2020-12-22 16:07:34,596 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] Select AP 255, DP Bank 0, AP Bank 255
    2020-12-22 16:07:34,596 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_CORESIGHT_WriteAPDPReg(DP reg 0x02, 0x00000000)
    2020-12-22 16:07:34,599 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 2.373ms returns 0
    2020-12-22 16:07:34,599 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_CORESIGHT_ReadAPDPReg(DP reg 0x01)
    2020-12-22 16:07:34,601 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] Value=0xF0000040
    2020-12-22 16:07:34,601 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 2.545ms returns 0
    2020-12-22 16:07:34,601 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] unpower_debug_and_system_regions
    2020-12-22 16:07:34,603 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_write_debug_port_register
    2020-12-22 16:07:34,603 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_select_debug_port_register
    2020-12-22 16:07:34,603 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_CORESIGHT_WriteAPDPReg(DP reg 0x01, 0x00000000)
    2020-12-22 16:07:34,605 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 2.346ms returns 0
    2020-12-22 16:07:34,607 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_is_debug_region_powered
    2020-12-22 16:07:34,607 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_read_debug_port_register
    2020-12-22 16:07:34,607 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] ---just_select_debug_port_register
    2020-12-22 16:07:34,607 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_CORESIGHT_ReadAPDPReg(DP reg 0x01)
    2020-12-22 16:07:34,608 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] Value=0x00000040
    2020-12-22 16:07:34,609 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] - 2.650ms returns 0
    2020-12-22 16:07:34,609 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_Unlock()
    2020-12-22 16:07:34,616 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] [Debug   ] [JLink     ] JLINK_Close()
    2020-12-22 16:07:34,680 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] Segger Backend closed.
    2020-12-22 16:07:34,680 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700108] nRF family DLL closed
    2020-12-22 16:07:34,687 - Parameters.py[line:91] - DEBUG: [Debug   ] [HighLevel ] Done.
    2020-12-22 16:07:34,687 - project_eng_timeout.py[line:120] - INFO: 59700108 : Successful operation
    2020-12-22 16:07:34,793 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] Data:  E8 0B 00 20 71 14 00 00 8D 40 00 00 A1 14 00 00 ...
    2020-12-22 16:07:34,795 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] - 253.273ms returns 0x00
    2020-12-22 16:07:34,795 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_Unlock()
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] read
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] is_connected_to_emu
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_IsOpen()
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] - 0.216ms returns 0x01
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_Lock()
    2020-12-22 16:07:34,796 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] Just_read
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] read
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] ---just_connect_to_device
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] is_connected_to_device
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_IsConnected()
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] - 0.131ms returns TRUE
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] ---just_halt
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_Halt()
    2020-12-22 16:07:34,798 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] - 0.121ms returns 0x00
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] ---just_read
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] ---just_invalidate_cache
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_ExecCommand("InvalidateCache", ...).
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] - 0.004ms returns 0x00
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] JLINK_ReadMem (0x0000C000, 0x119C8 Bytes, ...)
    2020-12-22 16:07:34,799 - Parameters.py[line:91] - DEBUG: [Debug   ] [Debug_Probe-59700110] [Debug   ] [JLink     ] CPU_ReadMem(72136 bytes @ 0x0000C000)

  • Hi,

    It is difficult to say what could be the problem without knowing more. I assume you use MultiAPI? Can you share your script that reproduce this issue?

    Please note that Christmas holidays are about to start so I may not be able to look more at this until beginning of January.

Related