Skip to content

[BUG] ATMega2560 USART0 not working #16444

Description

@linguini1

Description / Steps to reproduce the issue

The USART0 serial console does not work on ATMega2560 chips.

To reproduce:

$ ./tools/configure.sh arduino-mega2560:nsh
$ make -j

flash the image to the Arduino Mega2560 board.

Connect a USB-to-serial cable to pins 0 & 1 (RX0 & TX0) and GND. Observe no serial output at a baud rate of 38400, nor response to any input. Reboot the board with the serial monitor still connected and see the same thing again.

If you add avr_lowputc calls in the board initialization code, you'll see that the TX LED stays stuck on indefinitely.

On which OS does this issue occur?

[OS: Linux]

What is the version of your OS?

Linux 6.14.6-arch1-1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

NuttX Version

master

Issue Architecture

[Arch: avr]

Issue Area

[Area: Specific Peripheral]

Host information

NuttX CFLAGS:
-fno-common
-Wall
-Wstrict-prototypes
-Wshadow
-Wundef
-Wno-attributes
-Wno-unknown-pragmas
-O2
-fno-strict-aliasing
-fomit-frame-pointer
-mmcu=atmega2560
-isystem /home/linguini/coding/nuttx-space/nuttx/include
-D__NuttX__
-DNDEBUG

NuttX CXXFLAGS:
-fno-common
-Wall
-Wshadow
-Wundef
-Wno-attributes
-Wno-unknown-pragmas
-nostdinc++
-fno-exceptions
-fcheck-new
-fno-rtti
-O2
-fno-strict-aliasing
-fomit-frame-pointer
-mmcu=atmega2560
-isystem /home/linguini/coding/nuttx-space/nuttx/include/cxx
-isystem /home/linguini/coding/nuttx-space/nuttx/include
-D__NuttX__
-DNDEBUG

NuttX LDFLAGS:
-mavr6
-Map=/home/linguini/coding/nuttx-space/nuttx/nuttx.map
-nostdlib

NuttX configuration options:
CONFIG_DEFAULT_SMALL=y
CONFIG_HOST_LINUX=y
CONFIG_APPS_DIR=../apps
CONFIG_BASE_DEFCONFIG=\arduino-mega2560:hello
CONFIG_BUILD_FLAT=y
CONFIG_INTELHEX_BINARY=y
CONFIG_OUTPUT_STRIP_PATHS=y
CONFIG_ARCH_NONE_DEBUG_H=y
CONFIG_FORTIFY_SOURCE=0
CONFIG_NDEBUG=y
CONFIG_DEBUG_ALERT=y
CONFIG_ARCH_HAVE_STACKCHECK=y
CONFIG_STACK_USAGE_WARNING=0
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_SYMBOLS_LEVEL=-g
CONFIG_ARCH_HAVE_CUSTOMOPT=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_LTO_NONE=y
CONFIG_DEBUG_LINK_MAP=y
CONFIG_ARCH_AVR=y
CONFIG_ARCH=\avr
CONFIG_ARCH_FAMILY=\avr
CONFIG_ARCH_CHIP=\atmega
CONFIG_ARCH_CHIP_ATMEGA=y
CONFIG_ARCH_FAMILY_AVR=y
CONFIG_AVR_LINUXGCC_TOOLCHAIN=y
CONFIG_AVR_HAS_RAMPZ=y
CONFIG_ARCH_CHIP_ATMEGA2560=y
CONFIG_AVR_USART0=y
CONFIG_ARCH_TOOLCHAIN_GNU=y
CONFIG_ARCH_TOOLCHAIN_GCC=y
CONFIG_ARCH_NOINTC=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_STACKDUMP_MAX_LENGTH=0
CONFIG_BOARD_LOOPSPERMSEC=800
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
CONFIG_ARCH_INTERRUPTSTACK=0
CONFIG_BOOT_RUNFROMFLASH=y
CONFIG_RAM_START=0x800100
CONFIG_RAM_SIZE=8192
CONFIG_FLASH_START=0x0
CONFIG_FLASH_SIZE=0
CONFIG_ARCH_BOARD_ARDUINO_MEGA2560=y
CONFIG_ARCH_BOARD=\arduino-mega2560
CONFIG_BOARD_CRASHDUMP_NONE=y
CONFIG_BOARD_MEMORY_RANGE=\
CONFIG_DISABLE_OS_API=y
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_DISABLE_PTHREAD=y
CONFIG_DISABLE_MQUEUE=y
CONFIG_DISABLE_MQUEUE_SYSV=y
CONFIG_DISABLE_ENVIRON=y
CONFIG_USEC_PER_TICK=10000
CONFIG_TIMER_ADJUST_USEC=0
CONFIG_START_YEAR=2011
CONFIG_START_MONTH=6
CONFIG_START_DAY=16
CONFIG_IRQ_NWORKS=8
CONFIG_IRQ_WORK_SECTION=\
CONFIG_IRQ_WORK_STACKSIZE=2048
CONFIG_INIT_ENTRY=y
CONFIG_INIT_ARGS=\
CONFIG_INIT_STACKSIZE=128
CONFIG_INIT_PRIORITY=100
CONFIG_INIT_ENTRYPOINT=\hello_main
CONFIG_INIT_ENTRYNAME=\hello_main
CONFIG_RR_INTERVAL=0
CONFIG_TASK_NAME_SIZE=0
CONFIG_SCHED_CPULOAD_NONE=y
CONFIG_SCHED_CPULOAD_TICKSPERSEC=100
CONFIG_SCHED_PROFILE_TICKSPERSEC=1000
CONFIG_SCHED_STACK_RECORD=0
CONFIG_DEV_CONSOLE=y
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=4
CONFIG_SIG_PREALLOC_ACTIONS=4
CONFIG_SIG_ALLOC_ACTIONS=1
CONFIG_SIG_PREALLOC_IRQ_ACTIONS=4
CONFIG_DEFAULT_TASK_STACKSIZE=2048
CONFIG_IDLETHREAD_STACKSIZE=128
CONFIG_PTHREAD_STACK_MIN=128
CONFIG_PTHREAD_STACK_DEFAULT=128
CONFIG_PID_INITIAL_COUNT=8
CONFIG_DEV_OPTEE_NONE=y
CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
CONFIG_SERIAL_NPOLLWAITERS=4
CONFIG_USART0_SERIAL_CONSOLE=y
CONFIG_USART0_SERIALDRIVER=y
CONFIG_USART0_RXBUFSIZE=256
CONFIG_USART0_TXBUFSIZE=256
CONFIG_USART0_BAUD=38400
CONFIG_USART0_BITS=8
CONFIG_USART0_PARITY=0
CONFIG_USART0_2STOP=0
CONFIG_SYSLOG=y
CONFIG_SYSLOG_DEFAULT_MASK=0xff
CONFIG_SYSLOG_CRLF=y
CONFIG_SYSLOG_MAX_CHANNELS=1
CONFIG_SYSLOG_DEVPATH=/dev/ttyS1
CONFIG_SYSLOG_DEFAULT=y
CONFIG_CONSOLE_SYSLOG=y
CONFIG_DISABLE_MOUNTPOINT=y
CONFIG_FS_NEPOLL_DESCRIPTORS=8
CONFIG_FS_LOCK_BUCKET_SIZE=0
CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y
CONFIG_SENDFILE_BUFSIZE=512
CONFIG_FS_BACKTRACE=0
CONFIG_NXFONTS_PACKEDMSFIRST=y
CONFIG_MM_DEFAULT_MANAGER=y
CONFIG_MM_DEFAULT_ALIGNMENT=8
CONFIG_MM_SMALL=y
CONFIG_MM_REGIONS=1
CONFIG_MM_MAP_COUNT_MAX=1024
CONFIG_MM_BACKTRACE=-1
CONFIG_MM_FREE_DELAYCOUNT_MAX=0
CONFIG_MM_HEAP_BIGGEST_COUNT=30
CONFIG_MM_HEAP_MEMPOOL_THRESHOLD=-1
CONFIG_BINFMT_DISABLE=y
CONFIG_BINFMT_ELF_RELOCATABLE=y
CONFIG_STDIO_BUFFER_SIZE=0
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=0
CONFIG_ARCH_LOWPUTC=y
CONFIG_LIBC_RAND_ORDER=1
CONFIG_LIBC_HOMEDIR=/
CONFIG_LIBC_TMPDIR=/tmp
CONFIG_LIBC_MAX_TMPFILE=32
CONFIG_LIBC_MAX_EXITFUNS=0
CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=2048
CONFIG_LIBC_HOSTNAME=\
CONFIG_LIBC_OPEN_MAX=256
CONFIG_NAME_MAX=32
CONFIG_PATH_MAX=256
CONFIG_LINE_MAX=64
CONFIG_LIBC_STRSIGNAL=y
CONFIG_LIBC_STRSIGNAL_SHORT=y
CONFIG_TLS_TASK_NELEM=0
CONFIG_TLS_NCLEANUP=0
CONFIG_LIBC_GAISTRERROR_ERRNUM=y
CONFIG_LIBC_FTOK_VFS_PATH=/var/ftok
CONFIG_LIBC_MEMFD_ERROR=y
CONFIG_LIBC_MUTEX_BACKTRACE=0
CONFIG_STREAM_OUT_BUFFER_SIZE=64
CONFIG_STREAM_HEXDUMP_BUFFER_SIZE=128
CONFIG_STREAM_BASE64_BUFFER_SIZE=128
CONFIG_LIBM_NONE=y
CONFIG_BUILTIN_TOOLCHAIN=y
CONFIG_COVERAGE_NONE=y
CONFIG_COVERAGE_DEFAULT_PREFIX_STRIP=\99
CONFIG_COVERAGE_DEFAULT_PREFIX=/data
CONFIG_PROFILE_NONE=y
CONFIG_EXAMPLES_HELLO=y
CONFIG_EXAMPLES_HELLO_PROGNAME=\hello
CONFIG_EXAMPLES_HELLO_PRIORITY=100
CONFIG_EXAMPLES_HELLO_STACKSIZE=2048

Host system OS:
Linux pastabox 6.14.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri 09 May 2025 17:36:18 +0000 x86_64

Host system PATH:
/home/linguini/.cargo/bin
/sbin
/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/opt/cuda/bin
/opt/cuda/nsight_compute
/opt/cuda/nsight_systems/bin
/usr/lib/jvm/default/bin
/usr/bin/site_perl
/usr/bin/vendor_perl
/usr/bin/core_perl
/opt/rocm/bin
/usr/lib/rustup/bin

Verification

  • I have verified before submitting the report.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Arch: avrIssues related to all AVR(8-bit or 32-bit) architecturesArea: Specific PeripheralSpecific Peripheral issuesOS: LinuxIssues related to Linux (building system, etc)Type: BugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions