diff options
author | Fabian Topfstedt <topfstedt@schneevonmorgen.com> | 2017-07-20 08:22:44 +0200 |
---|---|---|
committer | Fabian Topfstedt <topfstedt@schneevonmorgen.com> | 2017-07-20 08:22:44 +0200 |
commit | ee43856ff7ba37ea89d1a8a4700efba4e4f69571 (patch) | |
tree | b0ed5b538396b0b2b027e69ad8ceac443c067c79 /lib/lufa/BuildTests/BoardDriverTest | |
parent | 99b6e918eab31d4f53cabc04a995da945335ac7f (diff) | |
parent | 14c5160b1a94d5dc416002791b3c207ba0dca789 (diff) |
Merge https://github.com/qmk/qmk_firmware
Diffstat (limited to 'lib/lufa/BuildTests/BoardDriverTest')
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Board/Board.h | 82 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Board/Buttons.h | 92 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Board/Dataflash.h | 197 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Board/Joystick.h | 104 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Board/LEDs.h | 132 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/BoardDeviceMap.cfg | 89 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/Test.c | 115 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/makefile | 69 | ||||
-rw-r--r-- | lib/lufa/BuildTests/BoardDriverTest/makefile.test | 35 |
9 files changed, 915 insertions, 0 deletions
diff --git a/lib/lufa/BuildTests/BoardDriverTest/Board/Board.h b/lib/lufa/BuildTests/BoardDriverTest/Board/Board.h new file mode 100644 index 0000000000..33b65fe4cd --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Board/Board.h @@ -0,0 +1,82 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Custom Board Hardware Information Driver (Template) + * + * This is a stub driver header file, for implementing custom board + * layout hardware with compatible LUFA board specific drivers. If + * the library is configured to use the BOARD_USER board mode, this + * driver file should be completed and copied into the "/Board/" folder + * inside the application's folder. + * + * This stub is for the board-specific component of the LUFA Board Hardware + * information driver. + */ + +#ifndef __BOARD_USER_H__ +#define __BOARD_USER_H__ + + /* Includes: */ + // TODO: Add any required includes here + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_BOARD_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/Board.h instead. + #endif + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Indicates the board has a hardware Buttons mounted if defined. */ +// #define BOARD_HAS_BUTTONS + + /** Indicates the board has a hardware Dataflash mounted if defined. */ +// #define BOARD_HAS_DATAFLASH + + /** Indicates the board has a hardware Joystick mounted if defined. */ +// #define BOARD_HAS_JOYSTICK + + /** Indicates the board has a hardware LEDs mounted if defined. */ +// #define BOARD_HAS_LEDS + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + +/** @} */ + diff --git a/lib/lufa/BuildTests/BoardDriverTest/Board/Buttons.h b/lib/lufa/BuildTests/BoardDriverTest/Board/Buttons.h new file mode 100644 index 0000000000..c1a23ef087 --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Board/Buttons.h @@ -0,0 +1,92 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Custom Board Button Hardware Driver (Template) + * + * This is a stub driver header file, for implementing custom board + * layout hardware with compatible LUFA board specific drivers. If + * the library is configured to use the BOARD_USER board mode, this + * driver file should be completed and copied into the "/Board/" folder + * inside the application's folder. + * + * This stub is for the board-specific component of the LUFA Buttons driver, + * for the control of physical board-mounted GPIO pushbuttons. + */ + +#ifndef __BUTTONS_USER_H__ +#define __BUTTONS_USER_H__ + + /* Includes: */ + // TODO: Add any required includes here + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_BUTTONS_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead. + #endif + + #define BOARD_DUMMY_BUTTONS_IMPLEMENTATION + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Button mask for the first button on the board. */ + #define BUTTONS_BUTTON1 (1 << 0) + + /* Inline Functions: */ + #if !defined(__DOXYGEN__) + static inline void Buttons_Init(void) + { + + } + + static inline void Buttons_Disable(void) + { + + } + + static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t Buttons_GetStatus(void) + { + return 0; + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + diff --git a/lib/lufa/BuildTests/BoardDriverTest/Board/Dataflash.h b/lib/lufa/BuildTests/BoardDriverTest/Board/Dataflash.h new file mode 100644 index 0000000000..86726a2923 --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Board/Dataflash.h @@ -0,0 +1,197 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Custom Board Dataflash Hardware Driver (Template) + * + * This is a stub driver header file, for implementing custom board + * layout hardware with compatible LUFA board specific drivers. If + * the library is configured to use the BOARD_USER board mode, this + * driver file should be completed and copied into the "/Board/" folder + * inside the application's folder. + * + * This stub is for the board-specific component of the LUFA Dataflash + * driver. +*/ + +#ifndef __DATAFLASH_USER_H__ +#define __DATAFLASH_USER_H__ + + /* Includes: */ + // TODO: Add any required includes here + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_DATAFLASH_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/Dataflash.h instead. + #endif + + #define BOARD_DUMMY_DATAFLASH_IMPLEMENTATION + + /* Private Interface - For use in library only: */ + #if !defined(__DOXYGEN__) + /* Macros: */ + #define DATAFLASH_CHIPCS_MASK 0 + #define DATAFLASH_CHIPCS_DDR 0 + #define DATAFLASH_CHIPCS_PORT 0 + #endif + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Constant indicating the total number of dataflash ICs mounted on the selected board. */ + #define DATAFLASH_TOTALCHIPS 1 + + /** Mask for no dataflash chip selected. */ + #define DATAFLASH_NO_CHIP 0 + + /** Mask for the first dataflash chip selected. */ + #define DATAFLASH_CHIP1 0 + + /** Mask for the second dataflash chip selected. */ + #define DATAFLASH_CHIP2 0 + + /** Internal main memory page size for the board's dataflash ICs. */ + #define DATAFLASH_PAGE_SIZE 0 + + /** Total number of pages inside each of the board's dataflash ICs. */ + #define DATAFLASH_PAGES 0 + + /* Inline Functions: */ + /** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC. + * The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used. + */ + static inline void Dataflash_Init(void) + { + + } + + /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash. + * + * \param[in] Byte Byte of data to send to the dataflash + * + * \return Last response byte from the dataflash + */ + static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE; + static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) + { + return 0; + } + + /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash. + * + * \param[in] Byte Byte of data to send to the dataflash + */ + static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE; + static inline void Dataflash_SendByte(const uint8_t Byte) + { + + } + + /** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash. + * + * \return Last response byte from the dataflash + */ + static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; + static inline uint8_t Dataflash_ReceiveByte(void) + { + return 0; + } + + /** Determines the currently selected dataflash chip. + * + * \return Mask of the currently selected Dataflash chip, either \ref DATAFLASH_NO_CHIP if no chip is selected + * or a DATAFLASH_CHIPn mask (where n is the chip number). + */ + static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; + static inline uint8_t Dataflash_GetSelectedChip(void) + { + return 0; + } + + /** Selects the given dataflash chip. + * + * \param[in] ChipMask Mask of the Dataflash IC to select, in the form of a \c DATAFLASH_CHIPn mask (where n is + * the chip number). + */ + static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; + static inline void Dataflash_SelectChip(const uint8_t ChipMask) + { + + } + + /** Deselects the current dataflash chip, so that no dataflash is selected. */ + static inline void Dataflash_DeselectChip(void) ATTR_ALWAYS_INLINE; + static inline void Dataflash_DeselectChip(void) + { + + } + + /** Selects a dataflash IC from the given page number, which should range from 0 to + * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). For boards containing only one + * dataflash IC, this will select DATAFLASH_CHIP1. If the given page number is outside + * the total number of pages contained in the boards dataflash ICs, all dataflash ICs + * are deselected. + * + * \param[in] PageAddress Address of the page to manipulate, ranging from + * 0 to ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). + */ + static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress) + { + + } + + /** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive + * a new command. + */ + static inline void Dataflash_ToggleSelectedChipCS(void) + { + + } + + /** Spin-loops while the currently selected dataflash is busy executing a command, such as a main + * memory page program or main memory to buffer transfer. + */ + static inline void Dataflash_WaitWhileBusy(void) + { + + } + + /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with + * dataflash commands which require a complete 24-bit address. + * + * \param[in] PageAddress Page address within the selected dataflash IC + * \param[in] BufferByte Address within the dataflash's buffer + */ + static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte) + { + + } + +#endif + diff --git a/lib/lufa/BuildTests/BoardDriverTest/Board/Joystick.h b/lib/lufa/BuildTests/BoardDriverTest/Board/Joystick.h new file mode 100644 index 0000000000..86a7d7681d --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Board/Joystick.h @@ -0,0 +1,104 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Custom Board Joystick Hardware Driver (Template) + * + * This is a stub driver header file, for implementing custom board + * layout hardware with compatible LUFA board specific drivers. If + * the library is configured to use the BOARD_USER board mode, this + * driver file should be completed and copied into the "/Board/" folder + * inside the application's folder. + * + * This stub is for the board-specific component of the LUFA Joystick + * driver, for a digital four-way (plus button) joystick. +*/ + +#ifndef __JOYSTICK_USER_H__ +#define __JOYSTICK_USER_H__ + + /* Includes: */ + // TODO: Add any required includes here + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_JOYSTICK_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/Joystick.h instead. + #endif + + #define BOARD_DUMMY_JOYSTICK_IMPLEMENTATION + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Mask for the joystick being pushed in the left direction. */ + #define JOY_LEFT 0 + + /** Mask for the joystick being pushed in the right direction. */ + #define JOY_RIGHT 0 + + /** Mask for the joystick being pushed in the upward direction. */ + #define JOY_UP 0 + + /** Mask for the joystick being pushed in the downward direction. */ + #define JOY_DOWN 0 + + /** Mask for the joystick being pushed inward. */ + #define JOY_PRESS 0 + + /* Inline Functions: */ + #if !defined(__DOXYGEN__) + static inline void Joystick_Init(void) + { + + } + + static inline void Joystick_Disable(void) + { + + } + + static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t Joystick_GetStatus(void) + { + return 0; + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + diff --git a/lib/lufa/BuildTests/BoardDriverTest/Board/LEDs.h b/lib/lufa/BuildTests/BoardDriverTest/Board/LEDs.h new file mode 100644 index 0000000000..548d24232c --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Board/LEDs.h @@ -0,0 +1,132 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * \brief LUFA Custom Board LED Hardware Driver (Template) + * + * This is a stub driver header file, for implementing custom board + * layout hardware with compatible LUFA board specific drivers. If + * the library is configured to use the BOARD_USER board mode, this + * driver file should be completed and copied into the "/Board/" folder + * inside the application's folder. + * + * This stub is for the board-specific component of the LUFA LEDs driver, + * for the LEDs (up to four) mounted on most development boards. +*/ + +#ifndef __LEDS_USER_H__ +#define __LEDS_USER_H__ + + /* Includes: */ + // TODO: Add any required includes here + +/* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_LEDS_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. + #endif + + #define BOARD_DUMMY_LEDS_IMPLEMENTATION + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** LED mask for the first LED on the board. */ + #define LEDS_LED1 (1 << 0) + + /** LED mask for the second LED on the board. */ + #define LEDS_LED2 (1 << 1) + + /** LED mask for the third LED on the board. */ + #define LEDS_LED3 (1 << 2) + + /** LED mask for the fourth LED on the board. */ + #define LEDS_LED4 (1 << 3) + + /** LED mask for all the LEDs on the board. */ + #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4) + + /** LED mask for none of the board LEDs. */ + #define LEDS_NO_LEDS 0 + + /* Inline Functions: */ + #if !defined(__DOXYGEN__) + static inline void LEDs_Init(void) + { + + } + + static inline void LEDs_Disable(void) + { + + } + + static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) + { + + } + + static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) + { + + } + + static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) + { + + } + + static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) + { + + } + + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) + { + + } + + static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t LEDs_GetLEDs(void) + { + return 0; + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + diff --git a/lib/lufa/BuildTests/BoardDriverTest/BoardDeviceMap.cfg b/lib/lufa/BuildTests/BoardDriverTest/BoardDeviceMap.cfg new file mode 100644 index 0000000000..c12050941d --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/BoardDeviceMap.cfg @@ -0,0 +1,89 @@ +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# +# ============================================================================= +# Board configuration map script, processed with the "BoardDriverTest" +# makefile. This script file maps the possible LUFA target BOARD makefile +# values in user projects to a specific architecture and device. This mapping is +# then used by the makefile to build all possible drivers for that board, to +# detect any missing or erroneous functions. To add a new board mapping, use +# the syntax: +# +# BOARD DEFINE = {ARCH} : {MCU} : +# +# And re-run the makefile. Note that each board may have only one target. +# ============================================================================= +# +# +# ----------------- AVR8 Boards ------------------ +BOARD_ADAFRUITU4 = AVR8 : atmega32u4 : +BOARD_ATAVRUSBRF01 = AVR8 : at90usb1287 : +BOARD_BENITO = AVR8 : at90usb162 : +BOARD_BIGMULTIO = AVR8 : atmega32u4 : +BOARD_BLACKCAT = AVR8 : at90usb162 : +BOARD_BUI = AVR8 : at90usb646 : +BOARD_BUMBLEB = AVR8 : at90usb162 : +BOARD_CULV3 = AVR8 : atmega32u4 : +BOARD_DUCE = AVR8 : atmega32u2 : +BOARD_EVK527 = AVR8 : atmega32u4 : +BOARD_JMDBU2 = AVR8 : atmega32u2 : +BOARD_LEONARDO = AVR8 : atmega32u4 : +BOARD_MAXIMUS = AVR8 : at90usb162 : +BOARD_MICROPENDOUS_32U2 = AVR8 : atmega32u2 : +BOARD_MICROPENDOUS_A = AVR8 : at90usb1287 : +BOARD_MICROPENDOUS_1 = AVR8 : at90usb162 : +BOARD_MICROPENDOUS_2 = AVR8 : atmega32u4 : +BOARD_MICROPENDOUS_3 = AVR8 : at90usb1287 : +BOARD_MICROPENDOUS_4 = AVR8 : at90usb1287 : +BOARD_MICROPENDOUS_DIP = AVR8 : at90usb1287 : +BOARD_MICROPENDOUS_REV1 = AVR8 : at90usb1287 : +BOARD_MICROPENDOUS_REV2 = AVR8 : at90usb1287 : +BOARD_MICROSIN162 = AVR8 : atmega162 : +BOARD_MINIMUS = AVR8 : atmega32u2 : +BOARD_MULTIO = AVR8 : at90usb162 : +BOARD_NONE = AVR8 : at90usb1287 : +BOARD_OLIMEX162 = AVR8 : at90usb162 : +BOARD_OLIMEX32U4 = AVR8 : atmega32u4 : +BOARD_OLIMEXT32U4 = AVR8 : atmega32u4 : +BOARD_OLIMEXISPMK2 = AVR8 : at90usb162 : +BOARD_RZUSBSTICK = AVR8 : at90usb1287 : +BOARD_SPARKFUN8U2 = AVR8 : atmega8u2 : +BOARD_STK525 = AVR8 : at90usb647 : +BOARD_STK526 = AVR8 : at90usb162 : +BOARD_TEENSY = AVR8 : at90usb162 : +BOARD_TEENSY2 = AVR8 : at90usb646 : +BOARD_TUL = AVR8 : atmega32u4 : +BOARD_UDIP = AVR8 : atmega32u2 : +BOARD_UNO = AVR8 : atmega8u2 : +BOARD_USB2AX = AVR8 : atmega32u2 : +BOARD_USB2AX_V3 = AVR8 : atmega32u2 : +BOARD_USB2AX_V31 = AVR8 : atmega32u2 : +BOARD_USBFOO = AVR8 : atmega162 : +BOARD_USBKEY = AVR8 : at90usb1287 : +BOARD_USBTINYMKII = AVR8 : at90usb162 : +BOARD_USER = AVR8 : at90usb1287 : +BOARD_XPLAIN = AVR8 : at90usb1287 : +BOARD_XPLAIN_REV1 = AVR8 : at90usb1287 : +BOARD_STANGE_ISP = AVR8 : at90usb162 : +BOARD_U2S = AVR8 : atmega32u2 : +BOARD_YUN = AVR8 : atmega32u4 : +BOARD_MICRO = AVR8 : atmega32u4 : +BOARD_POLOLUMICRO = AVR8 : atmega32u4 : +BOARD_XPLAINED_MINI = AVR8 : atmega32u4 : +# +# ----------------- XMEGA Boards ----------------- +BOARD_A3BU_XPLAINED = XMEGA : atxmega256a3bu : +BOARD_B1_XPLAINED = XMEGA : atxmega128b1 : +BOARD_C3_XPLAINED = XMEGA : atxmega384c3 : +# +# ------------------ UC3 Boards ------------------ +BOARD_EVK1100 = UC3 : uc3a0512 : +BOARD_EVK1101 = UC3 : uc3b0256 : +BOARD_EVK1104 = UC3 : uc3a3256 : +BOARD_UC3A3_XPLAINED = UC3 : uc3a3256 : +# diff --git a/lib/lufa/BuildTests/BoardDriverTest/Test.c b/lib/lufa/BuildTests/BoardDriverTest/Test.c new file mode 100644 index 0000000000..8baa4460ba --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/Test.c @@ -0,0 +1,115 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#include <LUFA/Common/Common.h> +#include <LUFA/Drivers/Board/Board.h> +#include <LUFA/Drivers/Board/Buttons.h> +#include <LUFA/Drivers/Board/Dataflash.h> +#include <LUFA/Drivers/Board/LEDs.h> +#include <LUFA/Drivers/Board/Joystick.h> + +#if defined(BOARD_HAS_BUTTONS) == defined(BOARD_DUMMY_BUTTONS_IMPLEMENTATION) + #error Mismatch between BOARD_HAS_BUTTONS and implementation. +#endif + +#if defined(BOARD_HAS_DATAFLASH) == defined(BOARD_DUMMY_DATAFLASH_IMPLEMENTATION) + #error Mismatch between BOARD_HAS_DATAFLASH and implementation. +#endif + +#if defined(BOARD_HAS_LEDS) == defined(BOARD_DUMMY_LEDS_IMPLEMENTATION) + #error Mismatch between BOARD_HAS_LEDS and implementation. +#endif + +#if defined(BOARD_HAS_JOYSTICK) == defined(BOARD_DUMMY_JOYSTICK_IMPLEMENTATION) + #error Mismatch between BOARD_HAS_JOYSTICK and implementation. +#endif + +int main(void) +{ + uint_reg_t Dummy; + + /* ============================= + * Buttons Compile Check + * ============================= */ + // cppcheck-suppress redundantAssignment + Dummy = BUTTONS_BUTTON1; + Buttons_Init(); + // cppcheck-suppress redundantAssignment + Dummy = Buttons_GetStatus(); + Buttons_Disable(); + + /* ============================= + * Dataflash Compile Check + * ============================= */ + // cppcheck-suppress redundantAssignment + Dummy = DATAFLASH_TOTALCHIPS + DATAFLASH_NO_CHIP + DATAFLASH_CHIP1 + DATAFLASH_PAGE_SIZE + DATAFLASH_PAGES; + Dataflash_Init(); + Dataflash_TransferByte(0); + Dataflash_SendByte(0); + // cppcheck-suppress redundantAssignment + Dummy = Dataflash_ReceiveByte(); + // cppcheck-suppress redundantAssignment + Dummy = Dataflash_GetSelectedChip(); + Dataflash_SelectChip(DATAFLASH_CHIP1); + Dataflash_DeselectChip(); + Dataflash_SelectChipFromPage(0); + Dataflash_ToggleSelectedChipCS(); + Dataflash_WaitWhileBusy(); + Dataflash_SendAddressBytes(0, 0); + + /* ============================= + * LEDs Compile Check + * ============================= */ + // cppcheck-suppress redundantAssignment + Dummy = LEDS_LED1 + LEDS_LED2 + LEDS_LED3 + LEDS_LED4; + LEDs_Init(); + LEDs_TurnOnLEDs(LEDS_ALL_LEDS); + LEDs_TurnOffLEDs(LEDS_ALL_LEDS); + LEDs_SetAllLEDs(LEDS_ALL_LEDS); + LEDs_ChangeLEDs(LEDS_ALL_LEDS, LEDS_NO_LEDS); + LEDs_ToggleLEDs(LEDS_ALL_LEDS); + // cppcheck-suppress redundantAssignment + Dummy = LEDs_GetLEDs(); + LEDs_Disable(); + + /* ============================= + * Joystick Compile Check + * ============================= */ + // cppcheck-suppress redundantAssignment + Dummy = JOY_LEFT + JOY_RIGHT + JOY_UP + JOY_DOWN + JOY_PRESS; + Joystick_Init(); + // cppcheck-suppress redundantAssignment + Dummy = Joystick_GetStatus(); + Joystick_Disable(); + + (void)Dummy; +} + + diff --git a/lib/lufa/BuildTests/BoardDriverTest/makefile b/lib/lufa/BuildTests/BoardDriverTest/makefile new file mode 100644 index 0000000000..8414d91862 --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/makefile @@ -0,0 +1,69 @@ +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# + +# Makefile for the board driver build test. This +# test attempts to build a dummy project with all +# possible board targets using their respective +# compiler. + +# Path to the LUFA library core +LUFA_PATH := ../../LUFA/ + +# Build test cannot be run with multiple parallel jobs +.NOTPARALLEL: + +all: begin makeboardlist testboards clean end + +begin: + @echo Executing build test "BoardDriverTest". + @echo + +end: + @echo Build test "BoardDriverTest" complete. + @echo + +makeboardlist: + @grep "BOARD_" $(patsubst %/,%,$(LUFA_PATH))/Common/BoardTypes.h | cut -d'#' -f2 | cut -d' ' -f2 | grep "BOARD_" > BoardList.txt + +testboards: + @echo "buildtest:" > BuildMakefile + + @while read line; \ + do \ + build_cfg=`grep "$$line " BoardDeviceMap.cfg | grep -v "#" | cut -d'=' -f2- | sed 's/ //g'`; \ + \ + build_board=$$line; \ + build_arch=`echo $$build_cfg | cut -d':' -f1`; \ + build_mcu=`echo $$build_cfg | cut -d':' -f2`; \ + \ + if ( test -z "$$build_cfg" ); then \ + echo "No matching information set for board $$build_board"; \ + else \ + echo "Found board configuration for $$build_board - $$build_arch, $$build_mcu"; \ + \ + printf "\t@echo Building dummy project for $$build_board...\n" >> BuildMakefile; \ + printf "\t$(MAKE) -f makefile.test clean elf MCU=%s ARCH=%s BOARD=%s\n\n" $$build_mcu $$build_arch $$build_board >> BuildMakefile; \ + fi; \ + done < BoardList.txt + + $(MAKE) -f BuildMakefile buildtest + +clean: + rm -f BuildMakefile + rm -f BoardList.txt + $(MAKE) -f makefile.test clean BOARD=NONE ARCH=AVR8 MCU=at90usb1287 + $(MAKE) -f makefile.test clean BOARD=NONE ARCH=XMEGA MCU=atxmega128a1u + $(MAKE) -f makefile.test clean BOARD=NONE ARCH=UC3 MCU=uc3a0256 + +%: + +.PHONY: all begin end makeboardlist testboards clean + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk diff --git a/lib/lufa/BuildTests/BoardDriverTest/makefile.test b/lib/lufa/BuildTests/BoardDriverTest/makefile.test new file mode 100644 index 0000000000..373a15e753 --- /dev/null +++ b/lib/lufa/BuildTests/BoardDriverTest/makefile.test @@ -0,0 +1,35 @@ +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = +ARCH = +BOARD = +F_CPU = $(F_USB) +F_USB = 8000000 +OPTIMIZATION = 1 +TARGET = Test +SRC = $(TARGET).c +LUFA_PATH = ../../LUFA +CC_FLAGS = -Werror +DEBUG_LEVEL = 0 + + +# Include LUFA-specific DMBS extension modules +DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA +include $(DMBS_LUFA_PATH)/lufa-sources.mk +include $(DMBS_LUFA_PATH)/lufa-gcc.mk + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk +include $(DMBS_PATH)/gcc.mk |