No UART or CLI flasher on nrf52840dongle?

I have developed a Zigbee application using the nrf52840 DK board + nRF Connect + Zephyr and it is working.  Now I am trying to move that app over to the nrf52840 dongle.  It didn't work on the first attempt, so now I need to debug it.  So far I have encountered a few issues:

1) On the DK board I could use pyocd to flash the device from the command line.  The only app I was able to find that is able to flash the dongle is called "Programmer" and it is a GUI app.  I saw some old instructions claiming that you could use nrfutil to flash the dongle, however this seemed to reference things that were only true in the old SDK.  nRF Connect doesn't even appear to ship nrfutil anymore.  Is there another way to flash the dongle board from the CLI or am I stuck using the GUI?

2) In my device tree for the dongle I wired up uart0 to pins P0.10 and P0.09.  I verified that these settings are reflected in the generated build/zephyr/zephyr.dts file.  However, when I connect a scope I do not see any transmissions in response to my log messages or printfs.  In my zephyr/.config file I have:

CONFIG_UART_INTERRUPT_DRIVEN=y
# CONFIG_UART_NS16550 is not set
# CONFIG_UART_PL011 is not set
# CONFIG_NRF_SW_LPUART is not set
CONFIG_NRFX_UART=y
CONFIG_NRFX_UART0=y
CONFIG_NRFX_UARTE=y
CONFIG_NRFX_UARTE0=y
# CONFIG_NRFX_UARTE1 is not set
CONFIG_HAS_HW_NRF_UART0=y
CONFIG_HAS_HW_NRF_UARTE0=y
CONFIG_HAS_HW_NRF_UARTE1=y
CONFIG_UART_CONSOLE=y
CONFIG_UART_CONSOLE_INIT_PRIORITY=60
# CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS is not set
# CONFIG_UART_CONSOLE_MCUMGR is not set
CONFIG_UART_CONSOLE_INPUT_EXPIRED=y
CONFIG_UART_CONSOLE_INPUT_EXPIRED_TIMEOUT=15000
# CONFIG_UART_PIPE is not set
# CONFIG_UART_MCUMGR is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_OFF is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_ERR is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_WRN is not set
CONFIG_UART_CONSOLE_LOG_LEVEL_INF=y
# CONFIG_UART_CONSOLE_LOG_LEVEL_DBG is not set
CONFIG_UART_CONSOLE_LOG_LEVEL=3
CONFIG_UART_USE_RUNTIME_CONFIGURE=y
# CONFIG_UART_ASYNC_API is not set
# CONFIG_UART_LINE_CTRL is not set
# CONFIG_UART_DRV_CMD is not set
CONFIG_UART_NRFX=y
CONFIG_UART_0_NRF_UARTE=y
CONFIG_UART_0_ENHANCED_POLL_OUT=y
CONFIG_UART_0_INTERRUPT_DRIVEN=y
# CONFIG_UART_0_NRF_PARITY_BIT is not set
CONFIG_UART_0_NRF_TX_BUFFER_SIZE=32
CONFIG_UART_1_NRF_UARTE=y
CONFIG_UART_1_INTERRUPT_DRIVEN=y
CONFIG_UART_1_ENHANCED_POLL_OUT=y
# CONFIG_UART_1_NRF_PARITY_BIT is not set
CONFIG_UART_1_NRF_TX_BUFFER_SIZE=32
CONFIG_UART_ENHANCED_POLL_OUT=y
CONFIG_NRF_UARTE_PERIPHERAL=y
# CONFIG_UART_ALTERA_JTAG is not set
# CONFIG_UART_XLNX_UARTLITE is not set

3) The old SDK instructions for adapting an example to run on the dongle ( https://devzone.nordicsemi.com/guides/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial ) said to move the flash load offset to 0x1000, and to skip using the first 8 bytes of SRAM because that's used for interrupt forwarding.  In the default config for nrf52840dongle I see that FLASH_LOAD_OFFSET is 0x1000 which satisfies the former requirement.  But I also see that SRAM_OFFSET is 0 so my app might be clobbering 0x2000_0000 - 0x2000_0007.  Is that a problem?

Related