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:
- copied the nrf52833dk_52833 folder and renamed the copy nrf52833dk_52833_custom
- 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
- 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
- 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