Issue: Debugging and Compatibility Error with nRF54H20-DK on SDK v2.7.0

System Configuration:

  • Board: nRF54H20-DK
  • SDK Version: v2.7.0
  • Toolchain Version: v2.7.0
  • Python Version: 3.12.7 (also tried downgrading but no success)
  • Operating System: Windows 10, 64-bit
  • Connection Setup: Using a C-type data cable via the J3 pin

Issue Details:

While working with the nRF54H20-DK and building/flashing using SDK v2.7.0, I encountered the following issues:

  1. Code Flashed:
    • Code: CAN bus babbling node
    • Directory: zephyr/samples/drivers/can/babbling
  1. Backtrace Error:

                  #0 0x21007a8c in ?? ()

                  #1 0x210079d0 in ?? ()

                   Backtrace stopped: previous frame identical to this frame (corrupt stack?)

  1. Python Import Error:

                     File "C:\Users\AgalyaGowander\AppData\Local\Programs\Python\Python312\Lib\ctypes\__init__.py", line 8, in <module> from _ctypes import Union, Structure, Array                                        ImportError: Module use of python39.dll conflicts with this version of Python.

  • I attempted to downgrade the Python version but faced the same issue.
  1. Debugger Output:
    • Received SIGTRAP with the following:

                              Thread 2 received signal SIGTRAP, Trace/breakpoint trap.

                              0x21007a8c in ?? ()

    • From the debugger:

                              -exec x/4xw 0xE000ED2C

                               0xe000ed2c: 0x00000000 0x00000001 0x51016718 0x51016718

 

  1. Instruction Access Violation (IACCVIOL):
    • The debugger indicates:

                              IACCVIOL: Instruction Access Violation

    • This suggests an attempt to execute code at an invalid or unaligned memory address.
  1. Terminal Output Issue:
  • Unable to view printk statements in the serial monitor. Two ports are seen, but none are showing the data.

Steps Taken:

  • Flashed the code successfully from zephyr/samples/drivers/can/babbling.
  • Verified the hardware connection using a C-type cable via J3 pin.
  • Tried downgrading Python but encountered the same import error.
  • Attempted to troubleshoot using GDB debugger commands such as -exec info registers.

Questions:

  1. Could the Python import error (conflicting with python39.dll) be related to toolchain compatibility with Python 3.12.7?
  2. Is there a known issue with SDK v2.7.0 or the nRF54H20-DK causing instruction access violations (IACCVIOL)?
  3. Could the issue be specific to the CAN bus babbling node sample, or does it indicate a broader problem with the SDK or toolchain?
  4. What steps can I take to resolve the backtrace and SIGTRAP errors?
  5. How can I resolve the terminal output issue and get printk statements to show up correctly in the serial monitor?

Any insights, recommendations, or debugging steps would be greatly appreciated!

Related