I've just installed the Nordic SDK version 17.1, SES version 6.3, and Segger J-Link Software version 7.64e on a new Ubuntu 22.04 laptop.
I've installed everything in their default locations. I'm using a pca10056 nrf52840 DK.
I am able to open SES and compile and flash examples.
I am able to port some of my SDK version 16 projects and have them compile and flash proprietary boards which also use the nrf52840.
Everything has worked except for any example or project that uses UART. For example, the UART example in the SDK examples/peripheral/uart
It compiles but has 10 linker errors
Building 'uart_pca10056' from solution 'uart_pca10056' in configuration 'Release' Assembling 'thumb_crt0.s' Compiling 'nrf_log_frontend.c' Compiling 'nrf_log_str_formatter.c' Compiling 'boards.c' Compiling 'app_error.c' Compiling 'app_error_handler_gcc.c' Compiling 'app_error_weak.c' Compiling 'app_fifo.c' Compiling 'app_uart_fifo.c' Compiling 'app_util_platform.c' Compiling 'nrf_assert.c' Compiling 'nrf_atomic.c' Compiling 'nrf_balloc.c' Compiling 'nrf_fprintf.c' Compiling 'nrf_fprintf_format.c' Compiling 'nrf_memobj.c' Compiling 'nrf_ringbuf.c' Compiling 'nrf_strerror.c' Compiling 'retarget.c' Compiling 'nrf_drv_uart.c' Compiling 'nrfx_atomic.c' Compiling 'nrfx_prs.c' Compiling 'nrfx_uart.c' Compiling 'nrfx_uarte.c' Compiling 'main.c' Assembling 'ses_startup_nrf52840.s' Assembling 'ses_startup_nrf_common.s' Compiling 'system_nrf52840.c' Generating linker script 'uart_pca10056.ld' Linking uart_pca10056.elf /usr/share/segger_embedded_studio_for_arm_6.30/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi_balanced.a(fileops.o): in function `putchar': fileops.c:(.text.libc.putchar+0x0): undefined reference to `stdout' fileops.c:(.text.libc.putchar+0x4): undefined reference to `stdout' /usr/share/segger_embedded_studio_for_arm_6.30/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi_balanced.a(fileops.o): in function `puts': fileops.c:(.text.libc.puts+0x2): undefined reference to `stdout' fileops.c:(.text.libc.puts+0x6): undefined reference to `stdout' fileops.c:(.text.libc.puts+0x18): undefined reference to `__SEGGER_RTL_X_file_write' /usr/share/segger_embedded_studio_for_arm_6.30/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi_balanced.a(fileops.o): in function `fwrite': fileops.c:(.text.libc.fwrite+0xc): undefined reference to `__SEGGER_RTL_X_file_stat' fileops.c:(.text.libc.fwrite+0x24): undefined reference to `__SEGGER_RTL_X_file_write' Build failed
I know there is something wrong with my build environment, but I can't figure out where I went wrong. Any code trying to use UART has the exact same linker issue just more of them.
I have also installed nRF Connect version 1.9.1 using the SES for ARM (Nordic Edition) V5.68 using the manual method as described by
This to seems to be working but I haven't tried any UART.
Also I have and older system using SES version 5.50b, J-Link software version 6.96, nordic sdk 16 and 17, gcc 9.4.0, cmake 3.16.3, GNU make 4.2.1, etc... SES is able to compile and link the SDK version 17's uart example as well as anything else using UART. This system is a UBUTU 20.04 with everything installed to their default locations.
Can anyone suggest how I can put my build environment together correctly? Reinstall?