This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Program will not start on custom board without debugger

Greetings. I am developing a application that will run on a custom board based on the nrf52833 MCU.

During development we have been using a nrf52833 development kit for testing and the codebase is built on top of the nordic nrfconnect sdk (release 1.9.1 with a few manual updates from the main Zephyr RTOS repo regarding a sensor we're using), specifically the zigbee/template sample. SEGGER Embedded Studio for ARM (Nordic Edition) V5.60 is the IDE that we have been using so far.

Once the protoype boards arrived we adapted the devicetree to the new board, as such we:

  1. copied the nrf52833dk_52833 folder and renamed the copy nrf52833dk_52833_custom
  2. changed every instance of nrf52833dk_52833 in nrf52833dk_52833_custom on the Kconfig file, Kconfig.board file, Kconfig.defconfig file, and in the .yaml and defconfig files
  3. removed any reference to the UART (as our device will not use the USB port for anything except battery charging (meaning that printout of any sort is impossible) in the dst file, same for the arduino connectors
  4. enabled pwm 0,1 and 2 and changed some gpios around to adapt to the new button and led configuration

After that we tested on the new board with the debugger and we confirmed it was working as intended. 
Unfortunately removing the debugger caused some issues. If the board was removed mid debugging session it would continue to work. However if not connected to the debugger the device would simply refuse to start (the same happened after a power cycle of the board). In short: the board would refuse to start without the "help" of the debugger.

Exploring the nordic forum and google led us to various possible options, though our attempts have not proven fruitful so far.

At first we attempted to disable BOARD_ENABLE_DCDC, although it was seemingly already deactivated, we added CONFIG_BOARD_ENABLE_DCDC=n in our proj.conf file. It didn't work
We then disabled LOG and RTT, as well as disabling 
CONFIG_NCS_SAMPLES_DEFAULTS in the proj.conf file, again it did not appear to work.
We attempted to investigate the possibility of semihosting because of the gcc toolchain, but we were unable to confirm if that was the case (no idea on where the linker flags are set in SES NE)


Attached is the proj.conf file

#
# Copyright (c) 2021 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_NCS_SAMPLES_DEFAULTS=n

CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_SERIAL=y
CONFIG_GPIO=y
CONFIG_BOARD_ENABLE_DCDC=n
CONFIG_USE_SEGGER_RTT=n

#Sensor stuff
CONFIG_I2C=y
CONFIG_LIS2DW12=y
CONFIG_LIS2DW12_TRIGGER_OWN_THREAD=y
CONFIG_LIS2DW12_THRESHOLD=y

CONFIG_LIS2DW12_THREAD_PRIORITY=10
CONFIG_LIS2DW12_THREAD_STACK_SIZE=1024

#Zigbee stuff
CONFIG_ZIGBEE_CHANNEL_SELECTION_MODE_MULTI=y
CONFIG_ZIGBEE_CHANNEL_MASK=0x7FFF800


# Make sure printk is not printing to the UART console
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n

CONFIG_HEAP_MEM_POOL_SIZE=2048
CONFIG_MAIN_THREAD_PRIORITY=7

CONFIG_ZIGBEE=y
CONFIG_ZIGBEE_APP_UTILS=y
CONFIG_ZIGBEE_ROLE_ROUTER=y

# Enable DK LED and Buttons library
CONFIG_DK_LIBRARY=y

# This example requires more workqueue stack
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

# Enable nRF ECB driver
CONFIG_CRYPTO=y
CONFIG_CRYPTO_NRF_ECB=y
CONFIG_CRYPTO_INIT_PRIORITY=80

# Cryptocell is not supported through CSPRNG driver API: NCSDK-4813
CONFIG_ENTROPY_CC3XX=n

# Networking
CONFIG_NET_IPV6_MLD=n
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_RA_RDNSS=n
CONFIG_NET_IP_ADDR_CHECK=n
CONFIG_NET_UDP=n

Parents
  • Hi,

    Are you using external HFXO and LFXO crystals on your custom board?

    What voltage do you measure on the reset pin?

    Could you provide the output if you run this command with nRF Command line tools:

    nrfjprog --readregs

    regards

    Jared

Reply
  • Hi,

    Are you using external HFXO and LFXO crystals on your custom board?

    What voltage do you measure on the reset pin?

    Could you provide the output if you run this command with nRF Command line tools:

    nrfjprog --readregs

    regards

    Jared

Children
No Data
Related