aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Common
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Common')
-rw-r--r--LUFA/Common/BoardTypes.h11
-rw-r--r--LUFA/Common/ButtLoadTag.h77
-rw-r--r--LUFA/Common/Common.h42
-rw-r--r--LUFA/Common/FunctionAttributes.h10
4 files changed, 61 insertions, 79 deletions
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index d4a36550e..a4daa1877 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -36,6 +36,15 @@
* \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
* functionality.
*/
+
+/** \ingroup Group_Common
+ * @defgroup Group_BoardTypes Board Types
+ *
+ * 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.
+ *
+ * @{
+ */
#ifndef __BOARDTYPES_H__
#define __BOARDTYPES_H__
@@ -70,3 +79,5 @@
#define BOARD_USER 5
#endif
+
+/** @} */
diff --git a/LUFA/Common/ButtLoadTag.h b/LUFA/Common/ButtLoadTag.h
deleted file mode 100644
index 54fab0f02..000000000
--- a/LUFA/Common/ButtLoadTag.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2009.
-
- dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
-*/
-
-/*
- Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, 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 disclaim 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
- *
- * This file contains macros for the embedding of compile-time strings into the resultant project binary for
- * identification purposes. It is designed to prefix "tags" with the magic string of "@(#)" so that the tags
- * can easily be identified in the binary data.
- *
- * These tags are compatible with the ButtLoad project at http://www.fourwalledcubicle.com/ButtLoad.php .
- */
-
-#ifndef __BUTTLOADTAG_H__
-#define __BUTTLOADTAG_H__
-
- /* Includes: */
- #include <avr/io.h>
- #include <avr/pgmspace.h>
-
- /* Public Interface - May be used in end-application: */
- /* Macros: */
- /** Creates a new tag in the resultant binary, containing the specified data array. The macro id
- * parameter is only for identification purposes (so that the tag data can be referenced in code)
- * and is not visible in the compiled binary.
- */
- #define BUTTLOADTAG(id, data) const struct ButtLoadTagData BUTTTAG_##id \
- PROGMEM __attribute__((used, externally_visible)) = \
- {MagicString: BT_TAGHEADER, TagData: data}
-
- /** Macro for retrieving a reference to the specified tag's contents. The tag data is located in
- * the program memory (FLASH) space, and so must be read out with the macros in avr-libc which
- * deal with embedded data.
- */
- #define BUTTLOADTAG_DATA(id) BUTTTAG_##id.TagData
-
- /* Structures: */
- /** Structure for ButtLoad compatible binary tags. */
- struct ButtLoadTagData
- {
- char MagicString[4]; /**< Magic tag header, containing the string "@(#)". */
- char TagData[]; /**< Tag contents as a char array. */
- };
-
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define BT_TAGHEADER {'@','(','#',')'}
- #endif
-
-#endif
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 36d9e3f6f..0923d513b 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -33,6 +33,24 @@
* This file contains macros which are common to all library elements, and which may be useful in user code. It
* also includes other common headers, such as Atomic.h, FunctionAttributes.h and BoardTypes.h.
*/
+
+/** @defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h
+ *
+ * Common utility headers containing macros, functions, enums and types which are common to all
+ * aspects of the library.
+ *
+ * @{
+ */
+
+/** @defgroup Group_Debugging Debugging Macros
+ *
+ * Macros for debugging use.
+ */
+
+/** @defgroup Group_BitManip Endian and Bit Macros
+ *
+ * Functions for swapping endianness and reversing bit orders.
+ */
#ifndef __COMMON_H__
#define __COMMON_H__
@@ -66,14 +84,22 @@
/** Defines a volatile 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 optimizer
* removes/reorders code to the point where break points cannot reliably be set.
+ *
+ * \ingroup Group_Debugging
*/
#define JTAG_DEBUG_POINT() asm volatile ("NOP" ::)
/** Defines an explicit JTAG break point in the resulting binary via the ASM BREAK statement. When
- * a JTAG is used, this causes the program execution to halt when reached until manually resumed. */
+ * a JTAG is used, this causes the program execution to halt when reached until manually resumed.
+ *
+ * \ingroup Group_Debugging
+ */
#define JTAG_DEBUG_BREAK() asm volatile ("BREAK" ::)
- /** Macro for testing condition "x" and breaking via JTAG_DEBUG_BREAK() if the condition is false. */
+ /** Macro for testing condition "x" and breaking via JTAG_DEBUG_BREAK() if the condition is false.
+ *
+ * \ingroup Group_Debugging
+ */
#define JTAG_DEBUG_ASSERT(x) MACROS{ if (!(x)) { JTAG_DEBUG_BREAK(); } }MACROE
/** Macro for testing condition "x" and writing debug data to the serial stream if false. As a
@@ -81,6 +107,8 @@
*
* The serial output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion
* {x} failed."
+ *
+ * \ingroup Group_Debugging
*/
#define SERIAL_STREAM_ASSERT(x) MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \
@@ -91,6 +119,8 @@
/** Function to reverse the individual bits in a byte - i.e. bit 7 is moved to bit 0, bit 6 to bit 1,
* etc.
*
+ * \ingroup Group_BitManip
+ *
* \param Byte Byte of data whose bits are to be reversed
*/
static inline uint8_t BitReverse(uint8_t Byte) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
@@ -105,6 +135,8 @@
/** Function to reverse the byte ordering of the individual bytes in a 16 bit number.
*
+ * \ingroup Group_BitManip
+ *
* \param Word Word of data whose bytes are to be swapped
*/
static inline uint16_t SwapEndian_16(uint16_t Word) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
@@ -115,6 +147,8 @@
/** Function to reverse the byte ordering of the individual bytes in a 32 bit number.
*
+ * \ingroup Group_BitManip
+ *
* \param DWord Double word of data whose bytes are to be swapped
*/
static inline uint32_t SwapEndian_32(uint32_t DWord) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
@@ -128,6 +162,8 @@
/** Function to reverse the byte ordering of the individual bytes in a n byte number.
*
+ * \ingroup Group_BitManip
+ *
* \param Data Pointer to a number containing an even number of bytes to be reversed
* \param Bytes Length of the data in bytes
*/
@@ -148,3 +184,5 @@
}
#endif
+
+/** @} */
diff --git a/LUFA/Common/FunctionAttributes.h b/LUFA/Common/FunctionAttributes.h
index cd406734d..9efa440e5 100644
--- a/LUFA/Common/FunctionAttributes.h
+++ b/LUFA/Common/FunctionAttributes.h
@@ -37,6 +37,14 @@
* \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
* functionality.
*/
+
+/** \ingroup Group_Common
+ * @defgroup Group_FuncAttr Function Attributes
+ *
+ * Macros for easy access GCC function attributes, which can be applied to function prototypes.
+ *
+ * @{
+ */
#ifndef __FUNCATTR_H__
#define __FUNCATTR_H__
@@ -108,3 +116,5 @@
#define ATTR_ALIAS(x) __attribute__ ((alias( #x )))
#endif
+
+/** @} */