boards/avr/atmega: Added Elegoo Mega2560r3 board support
Preliminary support for the Elegoo Mega2560r3 board by Elegoo with NSH configuration.
This commit is contained in:
parent
5bcf42e962
commit
ef04b4ccb6
12 changed files with 736 additions and 0 deletions
Binary file not shown.
|
After Width: | Height: | Size: 170 KiB |
|
|
@ -0,0 +1,120 @@
|
|||
====================
|
||||
Elegoo Mega2560 Rev3
|
||||
====================
|
||||
|
||||
.. tags:: chip:atmega2560, chip:atmega, arch:avr, vendor:elegoo, experimental
|
||||
|
||||
.. figure:: elegoo-mega2560r3.jpg
|
||||
:scale: 40 %
|
||||
:align: center
|
||||
:alt: The Elegoo Mega2560 Rev3 board with its included USB cable
|
||||
|
||||
The Elegoo Mega2560 Rev3 board with its included USB cable
|
||||
|
||||
This board is a variant of the `Arduino Mega2560 Rev3 board
|
||||
<https://docs.arduino.cc/hardware/mega-2560/>`_ designed by Elegoo. The `product
|
||||
listing can be found here
|
||||
<https://us.elegoo.com/products/elegoo-mega-2560-r3-board>`_.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
* Atmel ATMega2560 chip
|
||||
* 54 digital pins
|
||||
* 16 analog inputs
|
||||
* 4 serial ports
|
||||
* 4KB EEPROM
|
||||
|
||||
.. warning::
|
||||
|
||||
The ATMega2560 chip supported is limited, and thus this board does not
|
||||
support many peripherals. If you would like to help improve support for this
|
||||
board and other ATMega2560-based boards, please see the :doc:`contributing
|
||||
guidelines </contributing/index>`.
|
||||
|
||||
Buttons and LEDs
|
||||
================
|
||||
|
||||
The board has a large RESET button, which is not user controllable.
|
||||
|
||||
There are 4 LEDs on-board the Elegoo Mega2560 Rev3:
|
||||
|
||||
* ON: indicates active power, connected directly to the power supply
|
||||
* TX: indicates transmitting data
|
||||
* RX: indicates receiving data
|
||||
* TEST: board controllable LED, near "PWM" label. Turns on to indicate that
|
||||
NuttX started, and flashes at 1Hz to indicate panic.
|
||||
|
||||
Pin Mapping
|
||||
===========
|
||||
|
||||
The full pin-out of this board is the same as the Arduino Mega2560r3 pinout,
|
||||
which can be found `here <https://docs.arduino.cc/hardware/mega-2560/>`_.
|
||||
|
||||
Power Supply
|
||||
============
|
||||
|
||||
This board uses 5V logic. It has on-board power regulation to provide 5V and
|
||||
3.3V rails to the user. The 3.3V rail can only supply 50mA.
|
||||
|
||||
The board can be powered a few different ways:
|
||||
|
||||
* Via the USB connection at 5V
|
||||
* Via external power supply to the barrel jack (center-positive) at 7V - 12V
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
You will need the ``avrdude`` utility to flash this board. For instructions on
|
||||
how to install the AVR toolchain, consult the main documentation for the AVR
|
||||
architecture.
|
||||
|
||||
Building NuttX
|
||||
==============
|
||||
|
||||
In order to build NuttX, you can follow the regular process of using
|
||||
``./tools/configure.sh`` and ``make``.
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ ./tools/configure.sh elegoo-mega2560r3:nsh
|
||||
$ make
|
||||
|
||||
The build system will generate a ``.hex`` file along with the typical ELF file.
|
||||
If not, enable the ``CONFIG_INTELHEX_BINARY`` option.
|
||||
|
||||
.. warning::
|
||||
|
||||
Beware of the small memory size of this board's chip when choosing what to
|
||||
include in your NuttX image.
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
Then, to flash the board, connect it via USB to the host computer and run the
|
||||
following command:
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ avrdude -c stk500v2 -p m2560 -P /dev/ttyACM0 -U flash:w:nuttx.hex -v -D
|
||||
|
||||
This command assumes that the board USB connection is available on ``ttyACM0``,
|
||||
but you should verify the file path to its connection. You can use ``lsusb`` on
|
||||
Linux to look for "Arduino SA Mega 2560 R3".
|
||||
|
||||
If you want to reduce the console output of the command, remove the ``-v`` flag.
|
||||
|
||||
The board uses the STK500v2 programmer type through the on-board programmer,
|
||||
hence the argument to ``-c``. The argument to ``-p`` specifies the AVR device to
|
||||
be the ATMega2560. The ``-U`` argument tells the program to write the
|
||||
``nuttx.hex`` image to flash.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
nsh
|
||||
---
|
||||
|
||||
Very basic configuration with the ``nsh`` shell on the UART0 pins at a baud
|
||||
rate of 38400. You can also access UART0 through the USB connector on your host
|
||||
machine.
|
||||
|
|
@ -27,6 +27,14 @@ config ARCH_BOARD_ARDUINO_MEGA2560
|
|||
This option selects the Arduino Mega 2560 board featuring the Atmel
|
||||
Atmega2560 MCU running at 16 MHz.
|
||||
|
||||
config ARCH_BOARD_ELEGOO_MEGA2560R3
|
||||
bool "Elegoo Mega 2560r3"
|
||||
depends on ARCH_CHIP_ATMEGA2560
|
||||
select ARCH_HAVE_LEDS
|
||||
---help---
|
||||
This option selects the Elegoo Mega 2560 board featuring the Atmel
|
||||
Atmega2560 MCU running at 16 MHz.
|
||||
|
||||
config ARCH_BOARD_ARDUINO_DUE
|
||||
bool "Arduino Due"
|
||||
depends on ARCH_CHIP_ATSAM3X8E
|
||||
|
|
@ -3450,6 +3458,7 @@ config ARCH_BOARD
|
|||
default "efm32-g8xx-stk" if ARCH_BOARD_EFM32G8XXSTK
|
||||
default "efm32gg-stk3700" if ARCH_BOARD_EFM32GG_STK3700
|
||||
default "ekk-lm3s9b96" if ARCH_BOARD_EKKLM3S9B96
|
||||
default "elegoo-mega2560r3" if ARCH_BOARD_ELEGOO_MEGA2560R3
|
||||
default "emw3162" if ARCH_BOARD_EMW3162
|
||||
default "quickfeather" if ARCH_BOARD_QUICKFEATHER
|
||||
default "esp32-audio-kit" if ARCH_BOARD_ESP32_AUDIO_KIT
|
||||
|
|
@ -4597,6 +4606,9 @@ endif
|
|||
if ARCH_BOARD_ARDUINO_MEGA2560
|
||||
source "boards/avr/atmega/arduino-mega2560/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_ELEGOO_MEGA2560R3
|
||||
source "boards/avr/atmega/elegoo-mega2560r3/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_MOTEINO_MEGA
|
||||
source "boards/avr/atmega/moteino-mega/Kconfig"
|
||||
endif
|
||||
|
|
|
|||
4
boards/avr/atmega/elegoo-mega2560r3/Kconfig
Normal file
4
boards/avr/atmega/elegoo-mega2560r3/Kconfig
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
42
boards/avr/atmega/elegoo-mega2560r3/configs/nsh/defconfig
Normal file
42
boards/avr/atmega/elegoo-mega2560r3/configs/nsh/defconfig
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||
#
|
||||
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||
# modifications.
|
||||
#
|
||||
# CONFIG_DEBUG_OPT_UNUSED_SECTIONS is not set
|
||||
CONFIG_ARCH="avr"
|
||||
CONFIG_ARCH_AVR=y
|
||||
CONFIG_ARCH_BOARD="elegoo-mega2560r3"
|
||||
CONFIG_ARCH_BOARD_ELEGOO_MEGA2560R3=y
|
||||
CONFIG_ARCH_CHIP="atmega"
|
||||
CONFIG_ARCH_CHIP_ATMEGA2560=y
|
||||
CONFIG_ARCH_CHIP_ATMEGA=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_AVR_LINUXGCC_TOOLCHAIN=y
|
||||
CONFIG_AVR_USART0=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=800
|
||||
CONFIG_DEBUG_FULLOPT=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
CONFIG_DEFAULT_SMALL=y
|
||||
CONFIG_DISABLE_MOUNTPOINT=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=128
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=768
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=4
|
||||
CONFIG_NUNGET_CHARS=0
|
||||
CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=768
|
||||
CONFIG_PTHREAD_STACK_DEFAULT=128
|
||||
CONFIG_PTHREAD_STACK_MIN=128
|
||||
CONFIG_RAM_SIZE=8192
|
||||
CONFIG_RAM_START=0x800200
|
||||
CONFIG_START_DAY=16
|
||||
CONFIG_START_MONTH=6
|
||||
CONFIG_START_YEAR=2011
|
||||
CONFIG_STDIO_BUFFER_SIZE=0
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_TASK_NAME_SIZE=0
|
||||
CONFIG_USART0_BAUD=38400
|
||||
CONFIG_USART0_SERIAL_CONSOLE=y
|
||||
88
boards/avr/atmega/elegoo-mega2560r3/include/board.h
Normal file
88
boards/avr/atmega/elegoo-mega2560r3/include/board.h
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
/****************************************************************************
|
||||
* boards/avr/atmega/elegoo-mega2560r3/include/board.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_INCLUDE_BOARD_H
|
||||
#define __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_INCLUDE_BOARD_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Configuration ************************************************************/
|
||||
|
||||
/* Clocking *****************************************************************/
|
||||
|
||||
/* Assume default CLKDIV8 fuse setting is overridden to CLKDIV1 */
|
||||
|
||||
/* #define BOARD_XTAL_FREQ 20000000 */ /* 20MHz crystal */
|
||||
|
||||
/* #define BOARD_XTAL_FREQ 16700000 */ /* 16.7MHz crystal */
|
||||
|
||||
#define BOARD_XTAL_FREQ 16000000 /* 16MHz crystal */
|
||||
#define BOARD_CPU_CLOCK BOARD_XTAL_FREQ /* F_CPU = 16MHz */
|
||||
|
||||
/* LED definitions for Elegoo Mega2560r3 */
|
||||
|
||||
#define LED_STARTED 0 /* OFF ON (when board turns on) */
|
||||
#define LED_HEAPALLOCATE 1 /* OFF ON (never happens) */
|
||||
#define LED_IRQSENABLED 1 /* OFF ON (never happens) */
|
||||
#define LED_STACKCREATED 1 /* ON ON (never happens) */
|
||||
#define LED_INIRQ 1 /* OFF NC (never happens) */
|
||||
#define LED_SIGNAL 1 /* OFF NC (never happens) */
|
||||
#define LED_ASSERTION 1 /* OFF NC (never happens) */
|
||||
#define LED_PANIC 2 /* OFF ON (1Hz flashing PB7) */
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define EXTERN extern "C"
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
|
||||
#undef EXTERN
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_INCLUDE_BOARD_H */
|
||||
37
boards/avr/atmega/elegoo-mega2560r3/scripts/Make.defs
Normal file
37
boards/avr/atmega/elegoo-mega2560r3/scripts/Make.defs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
############################################################################
|
||||
# boards/avr/atmega/elegoo-mega2560r3/scripts/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
include $(TOPDIR)/.config
|
||||
include $(TOPDIR)/tools/Config.mk
|
||||
include $(TOPDIR)/arch/avr/src/avr/Toolchain.defs
|
||||
|
||||
LDSCRIPT = flash.ld
|
||||
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
|
||||
|
||||
|
||||
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
|
||||
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
|
||||
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
||||
CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
|
||||
AFLAGS := $(CFLAGS) -D__ASSEMBLY__
|
||||
|
||||
EXEEXT = .elf
|
||||
200
boards/avr/atmega/elegoo-mega2560r3/scripts/flash.ld
Normal file
200
boards/avr/atmega/elegoo-mega2560r3/scripts/flash.ld
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
/****************************************************************************
|
||||
* boards/avr/atmega/elegoo-mega2560r3/scripts/flash.ld
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Memory Regions ***********************************************************/
|
||||
|
||||
/* ------ ------ ------+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
* FLASH | REGISTERS I/O EXT I/O ISRAM | EEPROM
|
||||
* | REGISTERS REGISTERS |
|
||||
* ------- ------ -----+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
* 0x0000 256Kb| 0x0000 32 0x0020 64 0x0060 416 0x0200 8Kb | 0x0000 4Kb
|
||||
* ------- ------ -----+------- -- ------ -- ------ --- ------ ----+------- ---
|
||||
* *Memory configuration A
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash (rx) : ORIGIN = 0, LENGTH = 256K
|
||||
sram (rw!x) : ORIGIN = 0x800200, LENGTH = 8K
|
||||
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 4K
|
||||
}
|
||||
|
||||
ENTRY(__start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
|
||||
.rel.text :
|
||||
{
|
||||
*(.rel.text)
|
||||
*(.rel.text.*)
|
||||
*(.rel.gnu.linkonce.t*)
|
||||
}
|
||||
|
||||
.rela.text :
|
||||
{
|
||||
*(.rela.text)
|
||||
*(.rela.text.*)
|
||||
*(.rela.gnu.linkonce.t*)
|
||||
}
|
||||
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
|
||||
.rel.rodata :
|
||||
{
|
||||
*(.rel.rodata)
|
||||
*(.rel.rodata.*)
|
||||
*(.rel.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.rela.rodata :
|
||||
{
|
||||
*(.rela.rodata)
|
||||
*(.rela.rodata.*)
|
||||
*(.rela.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.rel.data :
|
||||
{
|
||||
*(.rel.data)
|
||||
*(.rel.data.*)
|
||||
*(.rel.gnu.linkonce.d*)
|
||||
}
|
||||
|
||||
.rela.data :
|
||||
{
|
||||
*(.rela.data)
|
||||
*(.rela.data.*)
|
||||
*(.rela.gnu.linkonce.d*)
|
||||
}
|
||||
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
|
||||
.text :
|
||||
{
|
||||
_stext = . ;
|
||||
KEEP(*(.vectors))
|
||||
*(.init)
|
||||
*(.handlers)
|
||||
*(.progmem .progmem.*)
|
||||
. = ALIGN(2);
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
_etext = . ;
|
||||
} > flash
|
||||
|
||||
.data :
|
||||
{
|
||||
_sdata = ABSOLUTE(.);
|
||||
*(.rodata .rodata.*)
|
||||
*(.data .data.*)
|
||||
*(.gnu.linkonce.d.*)
|
||||
CONSTRUCTORS
|
||||
_edata = ABSOLUTE(.);
|
||||
} > sram AT > flash
|
||||
|
||||
_eronly = LOADADDR(.data);
|
||||
|
||||
.bss :
|
||||
{
|
||||
_sbss = ABSOLUTE(.);
|
||||
*(.bss .bss.*)
|
||||
*(.gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
_ebss = ABSOLUTE(.);
|
||||
} > sram
|
||||
|
||||
/* Global data not cleared after reset. */
|
||||
|
||||
.noinit :
|
||||
{
|
||||
_snoinit = ABSOLUTE(.);
|
||||
*(.noinit*)
|
||||
_enoinit = ABSOLUTE(.);
|
||||
} > sram
|
||||
|
||||
.eeprom :
|
||||
{
|
||||
_seeprom = ABSOLUTE(.);
|
||||
*(.eeprom*)
|
||||
_eeeprom = ABSOLUTE(.);
|
||||
} > eeprom
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
|
||||
/* DWARF 1 */
|
||||
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
|
||||
/* GNU DWARF 1 extensions */
|
||||
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
|
||||
/* DWARF 2 */
|
||||
|
||||
.debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
}
|
||||
31
boards/avr/atmega/elegoo-mega2560r3/src/Makefile
Normal file
31
boards/avr/atmega/elegoo-mega2560r3/src/Makefile
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
############################################################################
|
||||
# boards/avr/atmega/elegoo-mega2560r3/src/Makefile
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
include $(TOPDIR)/Make.defs
|
||||
|
||||
CSRCS = avr_boot.c
|
||||
|
||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||
CSRCS += avr_leds.c
|
||||
endif
|
||||
|
||||
include $(TOPDIR)/boards/Board.mk
|
||||
68
boards/avr/atmega/elegoo-mega2560r3/src/avr_boot.c
Normal file
68
boards/avr/atmega/elegoo-mega2560r3/src/avr_boot.c
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/****************************************************************************
|
||||
* boards/avr/atmega/elegoo-mega2560r3/src/avr_boot.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <debug.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include "atmega.h"
|
||||
#include "avr_internal.h"
|
||||
#include "elegoo_mega2560r3.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_boardinitialize
|
||||
*
|
||||
* Description:
|
||||
* All ATMega architectures must provide the following entry point.
|
||||
* This entry point is called early in the initialization -- after all
|
||||
* memory has been configured and mapped but before any devices have been
|
||||
* initialized.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void atmega_boardinitialize(void)
|
||||
{
|
||||
/* Configure on-board LEDs if LED support has been selected. */
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
board_autoled_initialize();
|
||||
#endif
|
||||
}
|
||||
81
boards/avr/atmega/elegoo-mega2560r3/src/avr_leds.c
Normal file
81
boards/avr/atmega/elegoo-mega2560r3/src/avr_leds.c
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/****************************************************************************
|
||||
* boards/avr/atmega/elegoo-mega2560r3/src/avr_leds.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <debug.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
#include <avr/io.h>
|
||||
|
||||
#include "avr_internal.h"
|
||||
#include "elegoo_mega2560r3.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
void board_autoled_initialize(void)
|
||||
{
|
||||
DDRB |= (1 << 7); /* Configure as output */
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_on
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_on(int led)
|
||||
{
|
||||
switch (led)
|
||||
{
|
||||
case LED_STARTED:
|
||||
case LED_PANIC:
|
||||
PORTB |= (1 << 7);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_off
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_off(int led)
|
||||
{
|
||||
switch (led)
|
||||
{
|
||||
case LED_STARTED:
|
||||
case LED_PANIC:
|
||||
PORTB &= ~(1 << 7);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ARCH_LEDS */
|
||||
53
boards/avr/atmega/elegoo-mega2560r3/src/elegoo_mega2560r3.h
Normal file
53
boards/avr/atmega/elegoo-mega2560r3/src/elegoo_mega2560r3.h
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/****************************************************************************
|
||||
* boards/avr/atmega/elegoo-mega2560r3/src/elegoo_mega2560r3.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_SRC_ELEGOO_MEGA2560R3_H
|
||||
#define __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_SRC_ELEGOO_MEGA2560R3_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Configuration ************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __BOARDS_AVR_ATMEGA_ELEGOO_MEGA2560R3_SRC_ELEGOO_MEGA2560R3_H */
|
||||
Loading…
Add table
Reference in a new issue