Hello,
I've been trying to modify the v2.4.0 Serial LTE Modem application sample for my nRF-9160 custom board, in order for it to communicate with our external MCU through UART2 at PO.28/29, while outputting modem trace log through another UART at PO.03/PO.04(From the reply of Nordic AI, I assume the default port of outputting LOG was uart1?).
I haven't change any original code files, but I've copied the "nrf9160dk_nrf9160_ns.conf", "nrf9160dk_nrf9160_ns.overlay" to modify, and also create an extra "open_uart_trace.conf" file.
I add these 3 files as extra Kconfig fragments and extra Devicetree overlays.
However when I build it, it would end up error, and from the build log it seems like there's a conflict about interrupt?
I can't figure out what did I need to do to fix the problem, please could someone help, thanks!
Below are the 3 files and the build Log.
custom_9160.conf
# # Copyright (c) 2021 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # # Configuration file for nRF9160DK. # This file is merged with prj.conf in the application folder, and options # set here will take precedence if they are present in both files. # Use UART_0 (when working with PC terminal) # unmask the following config #CONFIG_UART_0_NRF_HW_ASYNC_TIMER=2 #CONFIG_UART_0_NRF_HW_ASYNC=y #CONFIG_SLM_WAKEUP_PIN=6 #CONFIG_SLM_INDICATE_PIN=2 # Use UART_2 (when working with external MCU) # unmask the following config CONFIG_UART_2_NRF_HW_ASYNC_TIMER=2 CONFIG_UART_2_NRF_HW_ASYNC=y CONFIG_SLM_WAKEUP_PIN=31 CONFIG_SLM_INDICATE_PIN=2
.
/* * Copyright (c) 2021 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ / { chosen { ncs,slm-uart = &uart2; }; }; &uart0 { status = "disabled"; }; &uart1 { compatible = "nordic,nrf-uarte"; current-speed = <230400>; status = "okay"; pinctrl-0 = <&uart1_default_alt>; pinctrl-1 = <&uart1_sleep_alt>; pinctrl-names = "default", "sleep"; }; &uart2 { compatible = "nordic,nrf-uarte"; current-speed = <115200>; status = "okay"; hw-flow-control; pinctrl-0 = <&uart2_default_alt>; pinctrl-1 = <&uart2_sleep_alt>; pinctrl-names = "default", "sleep"; }; &i2c2 { status = "disabled"; }; &pinctrl { uart1_default_alt: uart1_default_alt { group1 { psels = <NRF_PSEL(UART_RX, 0, 3)>; bias-pull-up; }; group2 { psels = <NRF_PSEL(UART_TX, 0, 4)>; }; }; uart1_sleep_alt: uart1_sleep_alt { group1 { psels = <NRF_PSEL(UART_TX, 0, 4)>, <NRF_PSEL(UART_RX, 0, 3)>; low-power-enable; }; }; uart2_default_alt: uart2_default_alt { group1 { psels = <NRF_PSEL(UART_RX, 0, 28)>; bias-pull-up; }; group2 { psels = <NRF_PSEL(UART_TX, 0, 29)>, <NRF_PSEL(UART_RTS, 0, 12)>, <NRF_PSEL(UART_CTS, 0, 13)>; }; }; uart2_sleep_alt: uart2_sleep_alt { group1 { psels = <NRF_PSEL(UART_TX, 0, 29)>, <NRF_PSEL(UART_RX, 0, 28)>, <NRF_PSEL(UART_RTS, 0, 12)>, <NRF_PSEL(UART_CTS, 0, 13)>; low-power-enable; }; }; };
# Segger RTT CONFIG_LOG_BACKEND_RTT=n CONFIG_LOG_BACKEND_UART=y # Enable below for modem trace CONFIG_NRF_MODEM_LIB_TRACE=y
* Executing task: nRF Connect: Generate config nrf9160dk_nrf9160_ns for d:\Nordic\Projects\SLM_v2.4.0 Building SLM_v2.4.0 C:\Windows\system32\cmd.exe /d /s /c "west build --build-dir d:/Nordic/Projects/SLM_v2.4.0/uart_trace d:/Nordic/Projects/SLM_v2.4.0 --pristine --board nrf9160dk_nrf9160_ns -- -DNCS_TOOLCHAIN_VERSION=NONE -DEXTRA_CONF_FILE=Extra_configs/uart_trace.conf;boards/custom_9160_A1_1.conf -DEXTRA_DTC_OVERLAY_FILE=boards/custom_9160_A1_1.overlay -DBOARD_ROOT=d:/nordic/projects/slm_v2.4.0" -- west build: generating a build system Loading Zephyr default modules (Zephyr base). -- Application: D:/Nordic/Projects/SLM_v2.4.0 -- CMake version: 3.20.5 -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.4.0/zephyr/.cache -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr) -- Found west (found suitable version "1.0.0", minimum required is "0.7.1") -- Board: nrf9160dk_nrf9160_ns, Revision: 0.7.0 -- Found host-tools: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found toolchain: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/31f4403e35/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/v2.4.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_ns.dts -- Found devicetree overlay: D:/Nordic/Projects/SLM_v2.4.0/boards/nrf9160dk_nrf9160_ns.overlay -- Found devicetree overlay: boards/custom_9160_A1_1.overlay -- Generated zephyr.dts: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/zephyr.dts -- Generated devicetree_generated.h: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/include/generated/devicetree_generated.h -- Including generated dts.cmake file: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/dts.cmake Parsing D:/Nordic/Projects/SLM_v2.4.0/Kconfig Loaded configuration 'C:/ncs/v2.4.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_ns_defconfig' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/prj.conf' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/boards/nrf9160dk_nrf9160_ns.conf' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/Extra_configs/uart_trace.conf' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/boards/custom_9160_A1_1.conf' Configuration saved to 'D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/.config' Kconfig header saved to 'D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/include/generated/autoconf.h' warning: UART_0_NRF_HW_ASYNC (defined at drivers/serial/Kconfig.nrfx:84) was assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies: UART_0_NRF_UARTE (=n), (UART_0_NRF_UART || UART_0_NRF_UARTE) (=n). See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_UART_0_NRF_HW_ASYNC and/or look up UART_0_NRF_HW_ASYNC in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. warning: UART_0_NRF_HW_ASYNC_TIMER (defined at drivers/serial/Kconfig.nrfx:103) was assigned the value '2' but got the value ''. Check these unsatisfied dependencies: UART_0_NRF_HW_ASYNC (=n), (UART_0_NRF_UART || UART_0_NRF_UARTE) (=n). See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_UART_0_NRF_HW_ASYNC_TIMER and/or look up UART_0_NRF_HW_ASYNC_TIMER in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. warning: LOG_BACKEND_UART (defined at subsys/logging\backends\Kconfig.uart:4) was assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies: UART_CONSOLE (=n). See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_BACKEND_UART and/or look up LOG_BACKEND_UART in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. warning: Experimental symbol TFTP_LIB is enabled. warning: Experimental symbol HTTP_CLIENT is enabled. -- Found GnuLd: c:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found version "3.8.2") found components: Interpreter Changed board to secure nrf9160dk_nrf9160 (NOT NS) === child image mcuboot - begin === loading initial cache file D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/child_image_preload.cmake CMake Warning (dev) at D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/child_image_preload.cmake:8 (set): Syntax error in cmake code at D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/child_image_preload.cmake:8 when parsing string C:\ncs\toolchains\31f4403e35\opt\bin\python.exe Invalid escape sequence \3 Policy CMP0010 is not set: Bad variable reference syntax is an error. Run "cmake --help-policy CMP0010" for policy details. Use the cmake_policy command to set the policy and suppress this warning. This warning is for project developers. Use -Wno-dev to suppress it. Loading Zephyr default modules (Zephyr base). -- Application: C:/ncs/v2.4.0/bootloader/mcuboot/boot/zephyr -- CMake version: 3.20.5 -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.4.0/zephyr/.cache -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr) -- Found west (found suitable version "1.0.0", minimum required is "0.7.1") -- Board: nrf9160dk_nrf9160, Revision: 0.7.0 -- Found host-tools: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found toolchain: zephyr 0.16.0 (C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/31f4403e35/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/v2.4.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160.dts -- Found devicetree overlay: C:/ncs/v2.4.0/bootloader/mcuboot/boot/zephyr/app.overlay -- Generated zephyr.dts: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/zephyr.dts -- Generated devicetree_generated.h: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/include/generated/devicetree_generated.h -- Including generated dts.cmake file: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/dts.cmake Parsing C:/ncs/v2.4.0/bootloader/mcuboot/boot/zephyr/Kconfig Loaded configuration 'C:/ncs/v2.4.0/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_defconfig' Merged configuration 'C:/ncs/v2.4.0/bootloader/mcuboot/boot/zephyr/prj.conf' Merged configuration 'C:/ncs/v2.4.0/nrf/modules/mcuboot/tfm.conf' Merged configuration 'C:/ncs/v2.4.0/nrf/modules/mcuboot/fih_low_enable.conf' Merged configuration 'C:/ncs/v2.4.0/nrf/subsys/partition_manager/partition_manager_enabled.conf' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/child_image/mcuboot.conf' Merged configuration 'D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf' Configuration saved to 'D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/.config' Kconfig header saved to 'D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot/zephyr/include/generated/autoconf.h' -- Found GnuLd: c:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe CMake Warning at C:/ncs/v2.4.0/zephyr/CMakeLists.txt:838 (message): No SOURCES given to Zephyr library: lib__libc__common Excluding target from build. CMake Warning at C:/ncs/v2.4.0/zephyr/CMakeLists.txt:838 (message): No SOURCES given to Zephyr library: drivers__console Excluding target from build. MCUBoot bootloader key file: C:/ncs/v2.4.0/bootloader/mcuboot/root-ec-p256.pem -- Configuring done -- Generating done -- Build files have been written to: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/mcuboot === child image mcuboot - end === CMake Warning at C:/ncs/v2.4.0/nrf/modules/mcuboot/CMakeLists.txt:310 (message): --------------------------------------------------------- --- WARNING: Using default MCUBoot key, it should not --- --- be used for production. --- --------------------------------------------------------- CMake Warning at C:/ncs/v2.4.0/zephyr/CMakeLists.txt:838 (message): No SOURCES given to Zephyr library: lib__libc__common Excluding target from build. -- Configuring done -- Generating done -- Build files have been written to: D:/Nordic/Projects/SLM_v2.4.0/uart_trace -- west build: building application [1/396] Generating include/generated/version.h -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr), build: v3.3.99-ncs1 [1/182] Generating include/generated/version.h -- Zephyr version: 3.3.99 (C:/ncs/v2.4.0/zephyr), build: v3.3.99-ncs1 [172/182] Linking C executable zephyr\zephyr_pre0.elf [176/182] Linking C executable zephyr\zephyr_pre1.elf [182/182] Linking C executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 28546 B 48 KB 58.08% RAM: 16360 B 32 KB 49.93% IDT_LIST: 0 GB 2 KB 0.00% [11/396] Generating ../../tfm/CMakeCache.txt -- Found Git: C:/ncs/toolchains/31f4403e35/mingw64/bin/git.exe (found version "2.37.3.windows.1") -- The C compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found version "3.8.2") found components: Interpreter -- Found Python3: C:/ncs/toolchains/31f4403e35/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.4.0/zephyr/.cache -- Configuring done -- Generating done -- Build files have been written to: D:/Nordic/Projects/SLM_v2.4.0/uart_trace/tfm [22/396] Performing install step for 'tfm' -- Install configuration: "MinSizeRel" [377/396] Linking C executable zephyr\zephyr_pre0.elf [381/396] Linking C executable zephyr\zephyr_pre1.elf [383/396] Generating isr_tables.c, isrList.bin FAILED: zephyr/isr_tables.c zephyr/isrList.bin cmd.exe /C "cd /D D:\Nordic\Projects\SLM_v2.4.0\uart_trace\zephyr && C:\ncs\toolchains\31f4403e35\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-objcopy.exe --input-target=elf32-littlearm --output-target=binary --only-section=.intList D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/zephyr_pre1.elf isrList.bin && C:\ncs\toolchains\31f4403e35\opt\bin\python.exe C:/ncs/v2.4.0/zephyr/scripts/build/gen_isr_tables.py --output-source isr_tables.c --kernel D:/Nordic/Projects/SLM_v2.4.0/uart_trace/zephyr/zephyr_pre1.elf --intlist isrList.bin --sw-isr-table --vector-table" gen_isr_tables.py: error: multiple registrations at table_index 9 for irq 9 (0x9) Existing handler 0x2c7f1, new handler 0x463b3 Has IRQ_CONNECT or IRQ_DIRECT_CONNECT accidentally been invoked on the same irq multiple times? ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\31f4403e35\opt\bin\cmake.EXE' --build 'd:\Nordic\Projects\SLM_v2.4.0\uart_trace' * The terminal process terminated with exit code: 1. * Terminal will be reused by tasks, press any key to close it.