Commit 5e731905 authored by Dean Camera's avatar Dean Camera
Browse files

Start update of documentation to support possible multiple architectures in...

Start update of documentation to support possible multiple architectures in the future - alter \file documentation to automatically copy in the module documentation where possible.
parent 1daa5e16
...@@ -43,9 +43,6 @@ ...@@ -43,9 +43,6 @@
#define __BUTTONS_USER_H__ #define __BUTTONS_USER_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include <stdbool.h>
// TODO: Add any required includes here // TODO: Add any required includes here
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -44,8 +44,6 @@ ...@@ -44,8 +44,6 @@
#define __JOYSTICK_USER_H__ #define __JOYSTICK_USER_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
// TODO: Add any required includes here // TODO: Add any required includes here
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -43,8 +43,6 @@ ...@@ -43,8 +43,6 @@
#define __LEDS_USER_H__ #define __LEDS_USER_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
// TODO: Add any required includes here // TODO: Add any required includes here
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
/** \file /** \file
* \brief Supported architecture defines. * \brief Supported architecture defines.
* *
* This file contains constants which can be passed to the compiler (via setting the macro ARCH) in the * \copydetails Group_Architectures
* user project makefile using the -D option to configure the library drivers.
* *
* \note Do not include this file directly, rather include the Common.h header file instead to gain this file's * \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
* functionality. * functionality.
...@@ -40,6 +39,7 @@ ...@@ -40,6 +39,7 @@
/** \ingroup Group_Common /** \ingroup Group_Common
* \defgroup Group_Architectures Hardware Architectures * \defgroup Group_Architectures Hardware Architectures
* \brief Supported architecture defines.
* *
* Macros for indicating the chosen hardware architecture to the library. These macros should be used when * Macros for indicating the chosen hardware architecture to the library. These macros should be used when
* defining the ARCH token to the chosen hardware via the -D switch in the project makefile. * defining the ARCH token to the chosen hardware via the -D switch in the project makefile.
......
...@@ -31,23 +31,23 @@ ...@@ -31,23 +31,23 @@
/** \file /** \file
* \brief AVR-GCC special function/variable attribute macros. * \brief AVR-GCC special function/variable attribute macros.
* *
* This file contains macros for applying GCC specific attributes to functions and variables to control various * \copydetails Group_GCCAttributes
* optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
* or variable declaration in any order, and multiple attributes can be specified for a single item via a space
* separated list.
*
* On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are
* critical to the code's function and thus must throw a compiler error when used.
* *
* \note Do not include this file directly, rather include the Common.h header file instead to gain this file's * \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
* functionality. * functionality.
*/ */
/** \ingroup Group_Common /** \ingroup Group_Common
* \defgroup Group_GCCAttr Function/Variable Attributes * \defgroup Group_GCCAttributes Function/Variable Attributes
* \brief AVR-GCC special function/variable attribute macros.
* *
* Macros for easy access GCC function and variable attributes, which can be applied to function prototypes or * This file contains macros for applying GCC specific attributes to functions and variables to control various
* variable attributes. * optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
* or variable declaration in any order, and multiple attributes can be specified for a single item via a space
* separated list.
*
* On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are
* critical to the code's function and thus must throw a compiler error when used.
* *
* @{ * @{
*/ */
......
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
/** \file /** \file
* \brief Supported board hardware defines. * \brief Supported board hardware defines.
* *
* This file contains constants which can be passed to the compiler (via setting the macro BOARD) in the * \copydetails Group_BoardTypes
* user project makefile using the -D option to configure the library board-specific drivers.
* *
* \note Do not include this file directly, rather include the Common.h header file instead to gain this file's * \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
* functionality. * functionality.
...@@ -40,6 +39,7 @@ ...@@ -40,6 +39,7 @@
/** \ingroup Group_Common /** \ingroup Group_Common
* \defgroup Group_BoardTypes Board Types * \defgroup Group_BoardTypes Board Types
* \brief Supported board hardware defines.
* *
* Macros for indicating the chosen physical board hardware to the library. These macros should be used when * Macros for indicating the chosen physical board hardware to the library. These macros should be used when
* defining the BOARD token to the chosen hardware via the -D switch in the project makefile. * defining the BOARD token to the chosen hardware via the -D switch in the project makefile.
......
...@@ -31,11 +31,11 @@ ...@@ -31,11 +31,11 @@
/** \file /** \file
* \brief Common library convenience macros and functions. * \brief Common library convenience macros and functions.
* *
* This file contains macros which are common to all library elements, and which may be useful in user code. It * \copydetails Group_Common
* also includes other common code headers.
*/ */
/** \defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h /** \defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h
* \brief Common library convenience macros and functions.
* *
* Common utility headers containing macros, functions, enums and types which are common to all * Common utility headers containing macros, functions, enums and types which are common to all
* aspects of the library. * aspects of the library.
...@@ -64,7 +64,8 @@ ...@@ -64,7 +64,8 @@
/* Includes: */ /* Includes: */
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <string.h>
#include "Architectures.h" #include "Architectures.h"
#include "Attributes.h" #include "Attributes.h"
#include "BoardTypes.h" #include "BoardTypes.h"
...@@ -75,6 +76,7 @@ ...@@ -75,6 +76,7 @@
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <avr/eeprom.h> #include <avr/eeprom.h>
#include <avr/boot.h>
#include <util/atomic.h> #include <util/atomic.h>
#include <util/delay.h> #include <util/delay.h>
#endif #endif
...@@ -123,7 +125,7 @@ ...@@ -123,7 +125,7 @@
#define MIN(x, y) ((x < y) ? x : y) #define MIN(x, y) ((x < y) ? x : y)
#endif #endif
#if (ARCH == ARCH_AVR8) #if (ARCH == ARCH_AVR8) || defined(__DOXYGEN__)
/** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always /** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
* be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser * be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
* removes/reorders code to the point where break points cannot reliably be set. * removes/reorders code to the point where break points cannot reliably be set.
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific LED driver header for the Adafruit U4 Breakout board. * \brief Board specific LED driver header for the Adafruit U4 Breakout board.
* * \copydetails Group_LEDs_ADAFRUITU4
* Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h. * dispatch header located in LUFA/Drivers/Board/LEDs.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_LEDs /** \ingroup Group_LEDs
* \defgroup Group_LEDs_ADAFRUITU4 ADAFRUITU4 * \defgroup Group_LEDs_ADAFRUITU4 ADAFRUITU4
* \brief Board specific LED driver header for the Adafruit U4 Breakout board.
* *
* Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout). * Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.
*
* @{ * @{
*/ */
...@@ -52,8 +49,6 @@ ...@@ -52,8 +49,6 @@
#define __LEDS_ADAFRUITU4_H__ #define __LEDS_ADAFRUITU4_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific Buttons driver header for the Atmel ATAVRUSBRF01. * \brief Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
* * \copydetails Group_Buttons_ATAVRUSBRF01
* Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h. * dispatch header located in LUFA/Drivers/Board/Buttons.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_Buttons /** \ingroup Group_Buttons
* \defgroup Group_Buttons_ATAVRUSBRF01 ATAVRUSBRF01 * \defgroup Group_Buttons_ATAVRUSBRF01 ATAVRUSBRF01
* \brief Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
* *
* Board specific Buttons driver header for the Atmel ATAVRUSBRF01. * Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.
*
* @{ * @{
*/ */
...@@ -52,9 +49,6 @@ ...@@ -52,9 +49,6 @@
#define __BUTTONS_ATAVRUSBRF01_H__ #define __BUTTONS_ATAVRUSBRF01_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include <stdbool.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific LED driver header for the Atmel ATAVRUSBRF01. * \brief Board specific LED driver header for the Atmel ATAVRUSBRF01.
* * \copydetails Group_LEDs_ATAVRUSBRF01
* Board specific LED driver header for the Atmel ATAVRUSBRF01.
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h. * dispatch header located in LUFA/Drivers/Board/LEDs.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_LEDs /** \ingroup Group_LEDs
* \defgroup Group_LEDs_ATAVRUSBRF01 ATAVRUSBRF01 * \defgroup Group_LEDs_ATAVRUSBRF01 ATAVRUSBRF01
* \brief Board specific LED driver header for the Atmel ATAVRUSBRF01.
* *
* Board specific LED driver header for the Atmel ATAVRUSBRF01. * Board specific LED driver header for the Atmel ATAVRUSBRF01.
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.
*
* @{ * @{
*/ */
...@@ -52,8 +49,6 @@ ...@@ -52,8 +49,6 @@
#define __LEDS_ATAVRUSBRF01_H__ #define __LEDS_ATAVRUSBRF01_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific Buttons driver header for the Tempusdictum Benito. * \brief Board specific Buttons driver header for the Tempusdictum Benito.
* * \copydetails Group_Buttons_BENITO
* Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h. * dispatch header located in LUFA/Drivers/Board/Buttons.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_Buttons /** \ingroup Group_Buttons
* \defgroup Group_Buttons_BENITO BENITO * \defgroup Group_Buttons_BENITO BENITO
* \brief Board specific Buttons driver header for the Tempusdictum Benito.
* *
* Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito). * Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.
*
* @{ * @{
*/ */
...@@ -52,9 +49,6 @@ ...@@ -52,9 +49,6 @@
#define __BUTTONS_BENITO_H__ #define __BUTTONS_BENITO_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include <stdbool.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific LED driver header for the Tempusdictum Benito. * \brief Board specific LED driver header for the Tempusdictum Benito.
* * \copydetails Group_LEDs_BENITO
* Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h. * dispatch header located in LUFA/Drivers/Board/LEDs.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_LEDs /** \ingroup Group_LEDs
* \defgroup Group_LEDs_BENITO BENITO * \defgroup Group_LEDs_BENITO BENITO
* \brief Board specific LED driver header for the Tempusdictum Benito.
* *
* Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito). * Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.
*
* @{ * @{
*/ */
...@@ -52,7 +49,7 @@ ...@@ -52,7 +49,7 @@
#define __LEDS_BENITO_H__ #define __LEDS_BENITO_H__
/* Includes: */ /* Includes: */
#include <avr/io.h> #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus) #if defined(__cplusplus)
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific LED driver header for the BLACKCAT USB JTAG. * \brief Board specific LED driver header for the BLACKCAT USB JTAG.
* * \copydetails Group_LEDs_BLACKCAT
* Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/.
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h. * dispatch header located in LUFA/Drivers/Board/LEDs.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_LEDs /** \ingroup Group_LEDs
* \defgroup Group_LEDs_BLACKCAT BLACKCAT * \defgroup Group_LEDs_BLACKCAT BLACKCAT
* \brief Board specific LED driver header for the BLACKCAT USB JTAG.
* *
* Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/. * Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/.
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.
*
* @{ * @{
*/ */
...@@ -52,8 +49,6 @@ ...@@ -52,8 +49,6 @@
#define __LEDS_BLACKCAT_H__ #define __LEDS_BLACKCAT_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
/** \file /** \file
* \brief Board specific LED driver header for the Busware BUI. * \brief Board specific LED driver header for the Busware BUI.
* * \copydetails Group_LEDs_BUI
* Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h. * dispatch header located in LUFA/Drivers/Board/LEDs.h.
...@@ -39,12 +38,10 @@ ...@@ -39,12 +38,10 @@
/** \ingroup Group_LEDs /** \ingroup Group_LEDs
* \defgroup Group_LEDs_BUI BUI * \defgroup Group_LEDs_BUI BUI
* \brief Board specific LED driver header for the Busware BUI.
* *
* Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI). * Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI).
* *
* \note This file should not be included directly. It is automatically included as needed by the LEDs driver
* dispatch header located in LUFA/Drivers/Board/LEDs.h.
*
* @{ * @{
*/ */
...@@ -52,7 +49,7 @@ ...@@ -52,7 +49,7 @@
#define __LEDS_BUI_H__ #define __LEDS_BUI_H__
/* Includes: */ /* Includes: */
#include <avr/io.h> #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus) #if defined(__cplusplus)
......
...@@ -30,11 +30,7 @@ ...@@ -30,11 +30,7 @@
/** \file /** \file
* \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB. * \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB.
* * \copydetails Group_Buttons_BUMBLEB
* Board specific Buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b).
*
* The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
* external peripheral layout for buttons, LEDs and a Joystick.
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h. * dispatch header located in LUFA/Drivers/Board/Buttons.h.
...@@ -42,14 +38,12 @@ ...@@ -42,14 +38,12 @@
/** \ingroup Group_Buttons /** \ingroup Group_Buttons
* \defgroup Group_Buttons_BUMBLEB BUMBLEB * \defgroup Group_Buttons_BUMBLEB BUMBLEB
* \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB.
* *
* Board specific buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB * Board specific buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB
* third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral * third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral
* layout for buttons, LEDs and a Joystick. * layout for buttons, LEDs and a Joystick.
* *
* \note This file should not be included directly. It is automatically included as needed by the Buttons driver
* dispatch header located in LUFA/Drivers/Board/Buttons.h.
*
* @{ * @{
*/ */
...@@ -57,9 +51,6 @@ ...@@ -57,9 +51,6 @@
#define __BUTTONS_BUMBLEB_H__ #define __BUTTONS_BUMBLEB_H__
/* Includes: */ /* Includes: */
#include <avr/io.h>
#include <stdbool.h>
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */ /* Enable C linkage for C++ Compilers: */
......
...@@ -30,11 +30,7 @@ ...@@ -30,11 +30,7 @@
/** \file /** \file
* \brief Board specific joystick driver header for the Fletchtronics BUMLEB. * \brief Board specific joystick driver header for the Fletchtronics BUMLEB.
* * \copydetails Group_Joystick_BUMBLEB
* Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b).
*
* The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
* external peripheral layout for buttons, LEDs and a Joystick.
* *
* \note This file should not be included directly. It is automatically included as needed by the joystick driver * \note This file should not be included directly. It is automatically included as needed by the joystick driver
* dispatch header located in LUFA/Drivers/Board/Joystick.h. * dispatch header located in LUFA/Drivers/Board/Joystick.h.
...@@ -42,14 +38,12 @@ ...@@ -42,14 +38,12 @@
/** \ingroup Group_Joystick /** \ingroup Group_Joystick
* \defgroup Group_Joystick_BUMBLEB BUMBLEB * \defgroup Group_Joystick_BUMBLEB BUMBLEB
* \brief Board specific joystick driver header for the Fletchtronics BUMLEB.
* *
* Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB * Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB
* third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral * third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral