From b91042e5a05d62ddf946eeb3892ebf93512035ae Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Sat, 18 Mar 2023 13:36:51 -0300 Subject: [PATCH] avr: Add support to Atmega mega1284p_xplained board --- .../boards/mega1284p-xplained/board.jpg | Bin 0 -> 109362 bytes .../boards/mega1284p-xplained/index.rst | 55 +++++ Documentation/platforms/avr/atmega/index.rst | 65 ++++++ Documentation/platforms/avr/index.rst | 11 + boards/Kconfig | 11 + boards/avr/atmega/mega1284p-xplained/Kconfig | 4 + .../avr/atmega/mega1284p-xplained/README.txt | 8 + .../configs/hello/defconfig | 35 ++++ .../mega1284p-xplained/configs/nsh/defconfig | 39 ++++ .../atmega/mega1284p-xplained/include/board.h | 84 ++++++++ .../mega1284p-xplained/scripts/Make.defs | 31 +++ .../mega1284p-xplained/scripts/ld.script | 198 ++++++++++++++++++ .../atmega/mega1284p-xplained/src/Makefile | 29 +++ .../atmega/mega1284p-xplained/src/avr_boot.c | 77 +++++++ .../atmega/mega1284p-xplained/src/avr_leds.c | 155 ++++++++++++++ .../src/mega1284p_xplained.h | 88 ++++++++ 16 files changed, 890 insertions(+) create mode 100644 Documentation/platforms/avr/atmega/boards/mega1284p-xplained/board.jpg create mode 100644 Documentation/platforms/avr/atmega/boards/mega1284p-xplained/index.rst create mode 100644 Documentation/platforms/avr/atmega/index.rst create mode 100644 Documentation/platforms/avr/index.rst create mode 100644 boards/avr/atmega/mega1284p-xplained/Kconfig create mode 100644 boards/avr/atmega/mega1284p-xplained/README.txt create mode 100644 boards/avr/atmega/mega1284p-xplained/configs/hello/defconfig create mode 100644 boards/avr/atmega/mega1284p-xplained/configs/nsh/defconfig create mode 100644 boards/avr/atmega/mega1284p-xplained/include/board.h create mode 100644 boards/avr/atmega/mega1284p-xplained/scripts/Make.defs create mode 100644 boards/avr/atmega/mega1284p-xplained/scripts/ld.script create mode 100644 boards/avr/atmega/mega1284p-xplained/src/Makefile create mode 100644 boards/avr/atmega/mega1284p-xplained/src/avr_boot.c create mode 100644 boards/avr/atmega/mega1284p-xplained/src/avr_leds.c create mode 100644 boards/avr/atmega/mega1284p-xplained/src/mega1284p_xplained.h diff --git a/Documentation/platforms/avr/atmega/boards/mega1284p-xplained/board.jpg b/Documentation/platforms/avr/atmega/boards/mega1284p-xplained/board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d200eabe0117df27d04f61e677de39dee2880a6a GIT binary patch literal 109362 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

LRrW~d3-2*f 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 U^UtMWApR(bbD6jKC&K>F$jjq!q2 z#_=rRpc`6}qRY$jeYa}WG<{A#i4OIJ#&~e$oXtx)OlBMRh1~MALK`0KK;E93$8N+I z3WYq;$#B;1pN#1q`RmOz=$iU{etvCZUS5zxa{53~{$9C2m%~=!1^sM3S+^Vet0#um zq@Q`S6V}C}*_}=uYg#hbd2+G7 ztB_Zb=(;!=v!?}vCtJi05e4_taoqfvU$;RUkBPStM-|{B(QZ%v62L3sKuUY#7Hd#;1asGjT zFMI_QxDO~w2D<%X0jdap6HeD)_krCYVyVW0vkd)u#7-X9kn&wLkzO{Did>*Hy$MYz~x z$cM&y1GP$$U35=%;FWMtPygb1R+@2Gw@Zsl>oq2$dpTT_@w>-Ji{%Zr{Vcl?g@`y> zdzK!I+F{#f)g+${nC3(wA{UQcNF5}B!)-T>s&cYliGm%v0$bRM>s#F>m!#;3dQDh=31AYC``5Qp{{lK061Mmi!y24g* zZ|(asGcS_CSHL`8H1u$7wsXi_@Cw!`wE^tOn0cMz3`24Pb`>hia;Q0Az^wQHc!81x z@Z8;IBY=$Ip(kKHaIC)>0CKV2LJJkD#FH}@f%(sUt(eviKz|sKvIDs|dx08@hVR-n z;bGeylkRn6uE19Vz}X8GY@7f)|M$#Og~}5_NE2{`De;)V5B}(k{|*GdIp>U(afbW! ziYs83W6=nnm3LUGw7VC;ljB$C_`m6yE&Bb=DZ&ymgrL_m*` zur+Sr6+2S!dLT?V{SoDGBx_?~;-(vegHguMlA1`G((PDhJHmET+(||c^||h1OV<@) z@22TkF#4kZHo5^Ey~K@Li5ap%w{L_@9%bJ7uOji(WJ@@HHw!kx?I7FIAscW8>36M` zp1}1i=*EhTSq$@C>Fk@7T`f2>Y$gc)oDeSos}0EZe|WRxs7Oia8G5*RzAffC;$vLd z5+5X@(^8Y9IN!Hy@Vdgx)n9+F)pGs(gZes=u~F1oxtUF{*C!{TPs2`x_=(Inbkjeg z4Yj`ZXwCDp&02A?=c^7}^l4G#(WshdVU$(#syXF^Q5FDl_?W5$=m=b}qATdvGWsh$ z{teg%aP-U*On)8a2oF>wPc=0Y`O~+^l�V@*k*S5Ym@tNsn&x_e}-Lm5v7B;_eg? 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%0DueV^N%niDQ#sUQ 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 literal 0 HcmV?d00001 diff --git a/Documentation/platforms/avr/atmega/boards/mega1284p-xplained/index.rst b/Documentation/platforms/avr/atmega/boards/mega1284p-xplained/index.rst new file mode 100644 index 0000000000..61ea7bb35a --- /dev/null +++ b/Documentation/platforms/avr/atmega/boards/mega1284p-xplained/index.rst @@ -0,0 +1,55 @@ +========================= +Atmega MEGA1284P-XPLAINED +========================= + +The `MEGA1284P-XPLAINED `_ +is a development board for the Atmega1284P from Microchip/Atmel. + +.. figure:: board.jpg + :align: center + + Microchip/Atmega MEGA1284P-XPLAINED + +Features +======== + + - Atmega1284P MCU, 128K FLASH, 16K SRAM + - 11.0592 MHz crystal + - 32768 Hz crystal + - Embedded AVR911 compatible programmer + - Reset button + - 4 user buttons (3 switch and 1 touch button) + - 4 LEDs indicator (connected to PWM pins) + - Light sensor + - NTC sensor + - Not populated external SPI Flash with labels: AT45DB and AT25DF + - Power indicator LED + +Pin Mapping +=========== + +===== ========== ========== +Pin Signal Notes +===== ========== ========== +P0.24 Blue LED Active LOW +P0.23 Red LED Active LOW +P0.22 Green LED Active LOW +P0.20 UART TX +P0.19 UART RX +===== ========== ========== + +Configurations +============== + +nsh +--- + +Basic NuttShell configuration (console enabled in USART0, pins PD0 (RXD0) and PD1 (TXD0), at 115200 bps). + +Flash & Debug +============= + +You can flash the board using avrdure. First press and hold SW0 button, then press and release RESET button, after 1 second release the SW0 button. Now run the command:: + + $ avrdude -p atmega1284p -c avr910 -P /dev/ttyACM0 -b57600 -F -u -U flash:w:nuttx.hex:i + diff --git a/Documentation/platforms/avr/atmega/index.rst b/Documentation/platforms/avr/atmega/index.rst new file mode 100644 index 0000000000..a210aeba31 --- /dev/null +++ b/Documentation/platforms/avr/atmega/index.rst @@ -0,0 +1,65 @@ +=========== +Atmega1284P +=========== + +The Atmega1284P is a chip from Microchip ("inherited" from Atmel) with the +following features: + + - 16MHz 8bit AVR RISC Processor + - 128Kbyte Flash + - 16Kbyte RAM + - 4Kbyte EEPROM + - 2 High Speed Serial Ports + - 2 8-bit Timer/Counters + - 2 16-bit Timer/Counter + - 1 Master/Slave SPI + - 1 I2C controller (aka Two-Wire interface) + - 8Ch 10bit Analog Input port + - up to 32 GPIOs + - Watchdog timer + - Real Time Clock + - JTAG/OCD Interface + +Clock Configuration +=================== + +System Timer +============ + +Peripheral Support +================== + +The following list indicates peripherals supported in NuttX: + +========== ======= ===== +Peripheral Support Notes +========== ======= ===== +GPIO Yes +PWM No +ADC No +RTC No +WTD No +I2C No +SPI No +TIMER Yes +UART Yes +========== ======= ===== + +UART +---- + +UART is implemented using interrupts. The chip doesn't support DMA. + +TIMER +----- + +The TIMER peripheral is exposed as standard timer. + +Supported Boards +================ + +.. toctree:: + :glob: + :maxdepth: 1 + + boards/*/* diff --git a/Documentation/platforms/avr/index.rst b/Documentation/platforms/avr/index.rst new file mode 100644 index 0000000000..8d3ad99c7a --- /dev/null +++ b/Documentation/platforms/avr/index.rst @@ -0,0 +1,11 @@ +==== +AVR8 +==== + +The following AVR8 chips are supported: + +.. toctree:: + :maxdepth: 1 + :glob: + + */* diff --git a/boards/Kconfig b/boards/Kconfig index b6552534c5..98646fd0e3 100644 --- a/boards/Kconfig +++ b/boards/Kconfig @@ -913,6 +913,13 @@ config ARCH_BOARD_MCU123_LPC214X lpc214x development board. This OS is also built with the arm-nuttx-elf toolchain*. The port supports serial, timer0, spi, and usb. +config ARCH_BOARD_MEGA1284P_XPLAINED + bool "Atmel MEGA-1284P-XPLAINED" + depends on ARCH_CHIP_ATMEGA1284P + select ARCH_HAVE_LEDS + ---help--- + This is the configuration to support Atmel MEGA-1284P-XPLAINED board. + config ARCH_BOARD_METRO_M4 bool "Adafruit M4 Metro" depends on ARCH_CHIP_SAMD51J19 @@ -2850,6 +2857,7 @@ config ARCH_BOARD default "mbed" if ARCH_BOARD_MBED default "mcb1700" if ARCH_BOARD_MCB1700 default "mcu123-lpc214x" if ARCH_BOARD_MCU123_LPC214X + default "mega1284p-xplained" if ARCH_BOARD_MEGA1284P_XPLAINED default "metro-m4" if ARCH_BOARD_METRO_M4 default "micropendous3" if ARCH_BOARD_MICROPENDOUS3 default "mirtoo" if ARCH_BOARD_MIRTOO @@ -3682,6 +3690,9 @@ endif if ARCH_BOARD_AVR32DEV1 source "boards/avr/at32uc3/avr32dev1/Kconfig" endif +if ARCH_BOARD_MEGA1284P_XPLAINED +source "boards/avr/atmega/mega1284p-xplained/Kconfig" +endif if ARCH_BOARD_MICROPENDOUS3 source "boards/avr/at90usb/micropendous3/Kconfig" endif diff --git a/boards/avr/atmega/mega1284p-xplained/Kconfig b/boards/avr/atmega/mega1284p-xplained/Kconfig new file mode 100644 index 0000000000..f72f3c094c --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# diff --git a/boards/avr/atmega/mega1284p-xplained/README.txt b/boards/avr/atmega/mega1284p-xplained/README.txt new file mode 100644 index 0000000000..950faa73d1 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/README.txt @@ -0,0 +1,8 @@ +README +^^^^^^ + +NuttX Documentation now is online! + +You can find the documentation to this board at: +https://nuttx.apache.org/docs/latest/platforms/avr/atmega/boards/mega1284p-xplained/index.html + diff --git a/boards/avr/atmega/mega1284p-xplained/configs/hello/defconfig b/boards/avr/atmega/mega1284p-xplained/configs/hello/defconfig new file mode 100644 index 0000000000..9aeb195b67 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/configs/hello/defconfig @@ -0,0 +1,35 @@ +# +# 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_ARCH="avr" +CONFIG_ARCH_AVR=y +CONFIG_ARCH_BOARD="mega1284p-xplained" +CONFIG_ARCH_BOARD_MEGA1284P_XPLAINED=y +CONFIG_ARCH_CHIP="atmega" +CONFIG_ARCH_CHIP_ATMEGA1284P=y +CONFIG_ARCH_CHIP_ATMEGA=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_AVR_LINUXGCC_TOOLCHAIN=y +CONFIG_AVR_USART0=y +CONFIG_BOARD_LOOPSPERMSEC=888 +CONFIG_CONSOLE_SYSLOG=y +CONFIG_DEFAULT_SMALL=y +CONFIG_DISABLE_MOUNTPOINT=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_IDLETHREAD_STACKSIZE=512 +CONFIG_INIT_ENTRYPOINT="hello_main" +CONFIG_INIT_STACKSIZE=512 +CONFIG_INTELHEX_BINARY=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=4 +CONFIG_NUNGET_CHARS=0 +CONFIG_PTHREAD_STACK_DEFAULT=512 +CONFIG_RAM_SIZE=16384 +CONFIG_RAM_START=0x800100 +CONFIG_START_DAY=31 +CONFIG_START_YEAR=2015 +CONFIG_TASK_NAME_SIZE=0 +CONFIG_USART0_SERIAL_CONSOLE=y diff --git a/boards/avr/atmega/mega1284p-xplained/configs/nsh/defconfig b/boards/avr/atmega/mega1284p-xplained/configs/nsh/defconfig new file mode 100644 index 0000000000..d6f7f56de9 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/configs/nsh/defconfig @@ -0,0 +1,39 @@ +# +# 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_DISABLE_ENVIRON is not set +# CONFIG_NSH_DISABLEBG is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_PS is not set +CONFIG_ARCH="avr" +CONFIG_ARCH_AVR=y +CONFIG_ARCH_BOARD="mega1284p-xplained" +CONFIG_ARCH_BOARD_MEGA1284P_XPLAINED=y +CONFIG_ARCH_CHIP="atmega" +CONFIG_ARCH_CHIP_ATMEGA1284P=y +CONFIG_ARCH_CHIP_ATMEGA=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_AVR_LINUXGCC_TOOLCHAIN=y +CONFIG_AVR_USART0=y +CONFIG_BOARD_LOOPSPERMSEC=888 +CONFIG_DEFAULT_SMALL=y +CONFIG_DISABLE_MOUNTPOINT=y +CONFIG_IDLETHREAD_STACKSIZE=512 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=512 +CONFIG_INTELHEX_BINARY=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NUNGET_CHARS=0 +CONFIG_PTHREAD_STACK_DEFAULT=512 +CONFIG_RAM_SIZE=16384 +CONFIG_RAM_START=0x800100 +CONFIG_RR_INTERVAL=200 +CONFIG_START_DAY=31 +CONFIG_START_YEAR=2015 +CONFIG_SYSTEM_NSH=y +CONFIG_TASK_NAME_SIZE=0 +CONFIG_USART0_SERIAL_CONSOLE=y diff --git a/boards/avr/atmega/mega1284p-xplained/include/board.h b/boards/avr/atmega/mega1284p-xplained/include/board.h new file mode 100644 index 0000000000..68faf95b3d --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/include/board.h @@ -0,0 +1,84 @@ +/**************************************************************************** + * boards/avr/atmega/mega1284p-xplained/include/board.h + * + * 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_MEGA1284P_XPLAINED_INCLUDE_BOARD_H +#define __BOARDS_AVR_ATMEGA_MEGA1284P_XPLAINED_INCLUDE_BOARD_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +/* Clocking *****************************************************************/ + +/* Assume default CLKDIV8 fuse setting is overridden to CLKDIV1 */ + +#define BOARD_XTAL_FREQ 11059200 /* 11.0592MHz crystal */ +#define BOARD_CPU_CLOCK BOARD_XTAL_FREQ /* F_CPU = 16MHz */ + +/* LED definitions **********************************************************/ + +/* The Mega1284p-Xplained has 4 LEDs connected to PB0-PB3 */ + +#define LED_STARTED 0 /* OFF ON (never happens) */ +#define LED_HEAPALLOCATE 0 /* OFF ON (never happens) */ +#define LED_IRQSENABLED 0 /* OFF ON (never happens) */ +#define LED_STACKCREATED 1 /* ON ON (never happens) */ +#define LED_INIRQ 2 /* OFF NC (momentary) */ +#define LED_SIGNAL 2 /* OFF NC (momentary) */ +#define LED_ASSERTION 2 /* OFF NC (momentary) */ +#define LED_PANIC 0 /* OFF ON (1Hz flashing) */ + +/**************************************************************************** + * 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_MEGA1284P_XPLAINED_INCLUDE_BOARD_H */ diff --git a/boards/avr/atmega/mega1284p-xplained/scripts/Make.defs b/boards/avr/atmega/mega1284p-xplained/scripts/Make.defs new file mode 100644 index 0000000000..f40b9d7358 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/scripts/Make.defs @@ -0,0 +1,31 @@ +############################################################################ +# boards/avr/atmega/mega1284p-xplained/scripts/Make.defs +# +# 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 + +ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)ld.script + +CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe +CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) +AFLAGS := $(CFLAGS) -D__ASSEMBLY__ diff --git a/boards/avr/atmega/mega1284p-xplained/scripts/ld.script b/boards/avr/atmega/mega1284p-xplained/scripts/ld.script new file mode 100644 index 0000000000..81df38fd8a --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/scripts/ld.script @@ -0,0 +1,198 @@ +/**************************************************************************** + * boards/avr/atmega/mega1284p-xplained/scripts/ld.script + * + * 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 | + * -------------- ------ ------+------- -- ------ -- ------ --- ------ ----+------- --- + * ATMEGA1284P 0x0000 128Kb | 0x0000 32 0x0020 64 0x0060 160 0x0100 16Kb| 0x0000 4Kb + * -------------- ------ ------+------- -- ------ -- ------ --- ------ ----+------- --- + * *Memory configuration A + */ + +MEMORY +{ + flash (rx) : ORIGIN = 0, LENGTH = 128K + sram (rw!x) : ORIGIN = 0x800100, LENGTH = 16K + 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 = . ; + *(.vectors) + *(.progmem.gcc*) + *(.progmem*) + *(.init) + *(.handlers) + *(.text) + *(.text.*) + _etext = . ; + } > flash + + _eronly = ABSOLUTE(.); + + .data : + { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > sram AT > flash + + .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) } +} diff --git a/boards/avr/atmega/mega1284p-xplained/src/Makefile b/boards/avr/atmega/mega1284p-xplained/src/Makefile new file mode 100644 index 0000000000..8edca15558 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/src/Makefile @@ -0,0 +1,29 @@ +############################################################################ +# boards/avr/atmega/mega1284p-xplained/src/Makefile +# +# 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 diff --git a/boards/avr/atmega/mega1284p-xplained/src/avr_boot.c b/boards/avr/atmega/mega1284p-xplained/src/avr_boot.c new file mode 100644 index 0000000000..0aaef79577 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/src/avr_boot.c @@ -0,0 +1,77 @@ +/**************************************************************************** + * boards/avr/atmega/mega1284p-xplained/src/avr_boot.c + * + * 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 + +#include + +#include + +#include "avr_internal.h" +#include "atmega.h" +#include "mega1284p_xplained.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: atmega_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 SSP chip selects if 1) at least one SSP is enabled, and 2) + * the weak function atmega_spidev_initialize() has been brought into the + * link. + */ + +#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2) + if (atmega_spidev_initialize) + { + atmega_spidev_initialize(); + } +#endif + + /* Configure on-board LEDs if LED support has been selected. */ + +#ifdef CONFIG_ARCH_LEDS + atmega_led_initialize(); +#endif +} diff --git a/boards/avr/atmega/mega1284p-xplained/src/avr_leds.c b/boards/avr/atmega/mega1284p-xplained/src/avr_leds.c new file mode 100644 index 0000000000..e2f684d011 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/src/avr_leds.c @@ -0,0 +1,155 @@ +/**************************************************************************** + * boards/avr/atmega/mega1284p-xplained/src/avr_leds.c + * + * 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 + +#include +#include +#include + +#include + +#include "avr_internal.h" +#include "atmega.h" +#include "mega1284p_xplained.h" + +#ifdef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static bool g_ncoff; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: atmega_led_initialize + ****************************************************************************/ + +void atmega_led_initialize(void) +{ + /* The MoteinoMEGA's single LED is on Port D, Pin 7. + * Configure this pin as an output and turn it OFF. + * The "other" side of the LED is onnected to ground through a resistor. + * Therefore, a logic value of 0 should turn the LED off. + */ + + DDRD |= (1 << 7); + PORTD &= ~(1 << 7); + g_ncoff = true; +} + +/**************************************************************************** + * Name: board_autoled_on + ****************************************************************************/ + +void board_autoled_on(int led) +{ + /* ON OFF + * LED_STARTED 0 OFF ON (never happens) + * LED_HEAPALLOCATE 0 OFF ON (never happens) + * LED_IRQSENABLED 0 OFF ON (never happens) + * LED_STACKCREATED 1 ON ON (never happens) + * LED_INIRQ 2 OFF NC (momentary) + * LED_SIGNAL 2 OFF NC (momentary) + * LED_ASSERTION 2 OFF NC (momentary) + * LED_PANIC 0 OFF ON (1Hz flashing) + */ + + switch (led) + { + case 0: + + /* The steady state is OFF */ + + g_ncoff = true; + + case 2: + + /* Turn the LED off */ + + PORTD &= ~(1 << 7); + break; + + case 1: + + /* The steady state is ON */ + + PORTD |= (1 << 7); + g_ncoff = false; + break; + + default: + return; + } +} + +/**************************************************************************** + * Name: board_autoled_off + ****************************************************************************/ + +void board_autoled_off(int led) +{ + /* ON OFF + * LED_STARTED 0 OFF ON (never happens) + * LED_HEAPALLOCATE 0 OFF ON (never happens) + * LED_IRQSENABLED 0 OFF ON (never happens) + * LED_STACKCREATED 1 ON ON (never happens) + * LED_INIRQ 2 OFF NC (momentary) + * LED_SIGNAL 2 OFF NC (momentary) + * LED_ASSERTION 2 OFF NC (momentary) + * LED_PANIC 0 OFF ON (1Hz flashing) + */ + + switch (led) + { + case 2: + + /* If the "no-change" state is OFF, then turn the LED off */ + + if (g_ncoff) + { + PORTD &= ~(1 << 7); + break; + } + + /* Otherwise, fall through to turn the LED ON */ + + case 0: + case 1: + + /* Turn the LED on */ + + PORTD |= (1 << 7); + break; + + default: + return; + } +} + +#endif /* CONFIG_ARCH_LEDS */ diff --git a/boards/avr/atmega/mega1284p-xplained/src/mega1284p_xplained.h b/boards/avr/atmega/mega1284p-xplained/src/mega1284p_xplained.h new file mode 100644 index 0000000000..ba99191ba5 --- /dev/null +++ b/boards/avr/atmega/mega1284p-xplained/src/mega1284p_xplained.h @@ -0,0 +1,88 @@ +/**************************************************************************** + * boards/avr/atmega/mega1284p-xplained/src/mega1284p_xplained.h + * + * 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_MEGA1284P_XPLAINED_SRC_MEGA1284P_XPLAINED_H +#define __BOARDS_AVR_ATMEGA_MEGA1284P_XPLAINED_SRC_MEGA1284P_XPLAINED_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +/**************************************************************************** + * Inline Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Name: atmega_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the Amber Web Server. + * + ****************************************************************************/ + +#if defined(CONFIG_AVR_SPI1) || defined(CONFIG_AVR_SPI2) +void weak_function atmega_spidev_initialize(void); +#endif + +/**************************************************************************** + * Name: atmega_led_initialize + * + * Description: + * Configure on-board LEDs if LED support has been selected. + * + ****************************************************************************/ + +#ifdef CONFIG_ARCH_LEDS +void atmega_led_initialize(void); +#endif + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __BOARDS_AVR_ATMEGA_MEGA1284P_XPLAINED_SRC_MEGA1284P_XPLAINED_H */