/** \file * * This file contains special DoxyGen information for the generation of the main page and other special * documentation pages. It is not a project source file. */ /** \page Page_BuildSystem The LUFA Build System * * \section Sec_BuildSystem_Overview Overview of the LUFA Build System * The LUFA build system is an attempt at making a set of re-usable, modular build make files which * can be referenced in a LUFA powered project, to minimize the amount of code required in an * application makefile. The system is written in GNU Make, and each module is independent of * one-another. * * For details on the prerequisites needed for Linux and Windows machines to be able to use the LUFA * build system, see \ref Sec_CompilingApps_Prerequisites. * * To use a LUFA build system module, simply add an include to your project makefile. All user projects * should at a minimum include \ref Page_BuildModule_CORE for base functionality: * \code * include $(LUFA_PATH)/Build/lufa_core.mk * \endcode * * Once included in your project makefile, the associated build module targets will be added to your * project's build makefile targets automatically. To call a build target, run make {TARGET_NAME} * from the command line, substituting in the appropriate target name. * * \see \ref Sec_ConfiguringApps_AppMakefileParams for a copy of the sample LUFA project makefile. * * Each build module may have one or more mandatory parameters (GNU Make variables) which must * be supplied in the project makefile for the module to work, and one or more optional parameters which * may be defined and which will assume a sensible default if not. * * \section SSec_BuildSystem_Modules Available Modules * * The following modules are included in this LUFA release: * * \li \subpage Page_BuildModule_ATPROGRAM - Device Programming * \li \subpage Page_BuildModule_AVRDUDE - Device Programming * \li \subpage Page_BuildModule_BUILD - Compiling/Assembling/Linking * \li \subpage Page_BuildModule_CORE - Core Build System Functions * \li \subpage Page_BuildModule_CPPCHECK - Static Code Analysis * \li \subpage Page_BuildModule_DFU - Device Programming * \li \subpage Page_BuildModule_DOXYGEN - Automated Source Code Documentation * \li \subpage Page_BuildModule_HID - Device Programming * \li \subpage Page_BuildModule_SOURCES - LUFA Module Source Code Variables * * If you have problems building using the LUFA build system, see \subpage Page_BuildTroubleshooting for resolution steps. */ /** \page Page_BuildModule_BUILD The BUILD build module * * The BUILD LUFA build system module, providing targets for the compilation, * assembling and linking of an application from source code into binary files * suitable for programming into a target device, using the GCC compiler. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_build.mk * \endcode * * \section SSec_BuildModule_BUILD_Requirements Requirements * This module requires the the architecture appropriate binaries of the GCC compiler are available in your * system's PATH variable. The GCC compiler and associated toolchain is distributed in Atmel AVR Studio * 5.x and Atmel Studio 6.x installation directories, as well as in many third party distribution packages. * * \section SSec_BuildModule_BUILD_Targets Targets * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
sizeDisplay size of the compiled application FLASH and SRAM segments.
symbol-sizesDisplay a size-sorted list of symbols from the compiled application, in decimal bytes.
libBuild and archive all source files into a library A binary file.
allBuild and link the application into ELF debug and HEX binary files.
elfBuild and link the application into an ELF debug file.
binBuild and link the application and produce a BIN binary file.
hexBuild and link the application and produce HEX and EEP binary files.
lssBuild and link the application and produce a LSS source code/assembly code mixed listing file.
cleanRemove all intermediary files and binary output files.
mostlycleanRemove all intermediary files but preserve any binary output files.
<filename>.sCreate an assembly listing of a given input C/C++ source file.
* * \section SSec_BuildModule_BUILD_MandatoryParams Mandatory Parameters * * * * * * * * * * * * * * * * * * * * * * * * * * *
TARGETName of the application output file prefix (e.g. TestApplication).
ARCHArchitecture of the target processor (see \ref Page_DeviceSupport).
MCUName of the Atmel processor model (e.g. at90usb1287).
SRCList of relative or absolute paths to the application C (.c), C++ (.cpp) and Assembly (.S) source files.
F_USBSpeed in Hz of the input clock frequency to the target's USB controller.
LUFA_PATHPath to the LUFA library core, either relative or absolute (e.g. ../LUFA-000000/LUFA/).
* * \section SSec_BuildModule_BUILD_OptionalParams Optional Parameters * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
BOARDLUFA board hardware drivers to use (see \ref Page_DeviceSupport).
OPTIMIZATIONOptimization level to use when compiling source files (see GCC manual).
C_STANDARDVersion of the C standard to apply when compiling C++ source files (see GCC manual).
CPP_STANDARDVersion of the C++ standard to apply when compiling C++ source files (see GCC manual).
DEBUG_FORMATFormat of the debug information to embed in the generated object files (see GCC manual).
DEBUG_LEVELLevel of the debugging information to embed in the generated object files (see GCC manual).
F_CPUSpeed of the processor CPU clock, in Hz.
C_FLAGSFlags to pass to the C compiler only, after the automatically generated flags.
CPP_FLAGSFlags to pass to the C++ compiler only, after the automatically generated flags.
ASM_FLAGSFlags to pass to the assembler only, after the automatically generated flags.
CC_FLAGSCommon flags to pass to the C/C++ compiler and assembler, after the automatically generated flags.
COMPILER_PATHDirectory where the C/C++ toolchain is located, if not available in the system PATH.
LD_FLAGSFlags to pass to the linker, after the automatically generated flags.
LINKER_RELAXATIONSEnables or disables linker relaxations when linking the application binary. This can reduce the total size * of the application by replacing full \c CALL instructions with smaller \c RCALL instructions where possible. * \note On some unpatched versions of binutils, this can cause link failures in some circumstances. If you * receive a link error relocation truncated to fit: R_AVR_13_PCREL, disable this setting.
OBJDIRDirectory to place the generated object and dependency files. If set to "." the same folder as the source file will be used. * \note When this option is enabled, all source filenames must be unique.
OBJECT_FILESList of additional object files that should be linked into the resulting binary.
* * \section SSec_BuildModule_BUILD_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_BUILD_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_CORE The CORE build module * * The core LUFA build system module, providing common build system help and information targets. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_core.mk * \endcode * * \section SSec_BuildModule_CORE_Requirements Requirements * This module has no requirements outside a standard *nix shell like environment; the sh * shell, GNU make and *nix CoreUtils (echo, printf, etc.). * * \section SSec_BuildModule_CORE_Targets Targets * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
helpDisplay build system help and configuration information.
list_targetsList all available build targets from the build system.
list_modulesList all available build modules from the build system.
list_mandatoryList all mandatory parameters required by the included modules.
list_optionalList all optional parameters required by the included modules.
list_providedList all variables provided by the included modules.
list_macrosList all macros provided by the included modules.
* * \section SSec_BuildModule_CORE_MandatoryParams Mandatory Parameters * * * * * *
None
* * \section SSec_BuildModule_CORE_OptionalParams Optional Parameters * * * * * *
None
* * \section SSec_BuildModule_CORE_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_CORE_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_ATPROGRAM The ATPROGRAM build module * * The ATPROGRAM programming utility LUFA build system module, providing targets to reprogram an * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_atprogram.mk * \endcode * * \section SSec_BuildModule_ATPROGRAM_Requirements Requirements * This module requires the atprogram.exe utility to be available in your system's PATH * variable. The atprogram.exe utility is distributed in Atmel AVR Studio 5.x and Atmel Studio 6.x * inside the application install folder's "\atbackend" subdirectory. * * \section SSec_BuildModule_ATPROGRAM_Targets Targets * * * * * * * * * * *
atprogramProgram the device FLASH memory with the application's executable data.
atprogram-eeProgram the device EEPROM memory with the application's EEPROM data.
* * \section SSec_BuildModule_ATPROGRAM_MandatoryParams Mandatory Parameters * * * * * * * * * * *
MCUName of the Atmel processor model (e.g. at90usb1287).
TARGETName of the application output file prefix (e.g. TestApplication).
* * \section SSec_BuildModule_ATPROGRAM_OptionalParams Optional Parameters * * * * * * * * * * * * * * *
ATPROGRAM_PROGRAMMERName of the Atmel programmer or debugger tool to communicate with (e.g. jtagice3).
ATPROGRAM_INTERFACEName of the programming interface to use when programming the target (e.g. spi).
ATPROGRAM_PORTName of the communication port to use when when programming with a serially connected tool (e.g. COM2).
* * \section SSec_BuildModule_ATPROGRAM_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_ATPROGRAM_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_AVRDUDE The AVRDUDE build module * * The AVRDUDE programming utility LUFA build system module, providing targets to reprogram an * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_avrdude.mk * \endcode * * \section SSec_BuildModule_AVRDUDE_Requirements Requirements * This module requires the avrdude utility to be available in your system's PATH * variable. The avrdude utility is distributed in the old WinAVR project releases for * Windows (http://winavr.sourceforge.net) or can be installed on *nix systems via the project's * source code (https://savannah.nongnu.org/projects/avrdude) or through the package manager. * * \section SSec_BuildModule_AVRDUDE_Targets Targets * * * * * * * * * * *
avrdudeProgram the device FLASH memory with the application's executable data.
avrdude-eeProgram the device EEPROM memory with the application's EEPROM data.
* * \section SSec_BuildModule_AVRDUDE_MandatoryParams Mandatory Parameters * * * * * * * * * * *
MCUName of the Atmel processor model (e.g. at90usb1287).
TARGETName of the application output file prefix (e.g. TestApplication).
* * \section SSec_BuildModule_AVRDUDE_OptionalParams Optional Parameters * * * * * * * * * * * * * * *
AVRDUDE_PROGRAMMERName of the programmer or debugger tool to communicate with (e.g. jtagicemkii).
AVRDUDE_PORTName of the communication port to use when when programming with the connected tool (e.g. COM2, /dev/ttyUSB0 or usb).
AVRDUDE_FLAGSAdditional flags to pass to avrdude when programming, applied after the automatically generated flags.
* * \section SSec_BuildModule_AVRDUDE_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_AVRDUDE_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_CPPCHECK The CPPCHECK build module * * The CPPCHECK programming utility LUFA build system module, providing targets to statically * analyze C and C++ source code for errors and performance/style issues. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_cppcheck.mk * \endcode * * \section SSec_BuildModule_CPPCHECK_Requirements Requirements * This module requires the cppcheck utility to be available in your system's PATH * variable. The cppcheck utility is distributed through the project's home page * (http://cppcheck.sourceforge.net) for Windows, and can be installed on *nix systems via * the project's source code or through the package manager. * * \section SSec_BuildModule_CPPCHECK_Targets Targets * * * * * * * * * * *
cppcheckStatically analyze the project source code for issues.
cppcheck-configCheck the cppcheck configuration - scan source code and warn about missing header files and other issues.
* * \section SSec_BuildModule_CPPCHECK_MandatoryParams Mandatory Parameters * * * * * * *
SRCList of source files to statically analyze.
* * \section SSec_BuildModule_CPPCHECK_OptionalParams Optional Parameters * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CPPCHECK_INCLUDESPath of extra directories to check when attemting to resolve C/C++ header file includes.
CPPCHECK_EXCLUDESPaths or path fragments to exclude when analyzing.
CPPCHECK_MSG_TEMPLATEOutput message template to use when printing errors, warnings and information (see cppcheck documentation).
CPPCHECK_ENABLEAnalysis rule categories to enable (see cppcheck documentation).
CPPCHECK_SUPPRESSSpecific analysis rules to suppress (see cppcheck documentation).
CPPCHECK_FAIL_ON_WARNINGSet to Y to fail the analysis job with an error exit code if warnings are found, N to continue without failing.
CPPCHECK_QUIETSet to Y to suppress all output except warnings and errors, N to show verbose output information.
CPPCHECK_FLAGSExtra flags to pass to cppcheck, after the automatically generated flags.
* * \section SSec_BuildModule_CPPCHECK_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_CPPCHECK_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_DFU The DFU build module * * The DFU programming utility LUFA build system module, providing targets to reprogram an * Atmel processor FLASH and EEPROM memories with a project's compiled binary output files. * This module requires a DFU class bootloader to be running in the target, compatible with * the DFU bootloader protocol as published by Atmel. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_dfu.mk * \endcode * * \section SSec_BuildModule_DFU_Requirements Requirements * This module requires either the batchisp utility from Atmel's FLIP utility, or the open * source dfu-programmer utility (http://dfu-programmer.sourceforge.net/) to be * available in your system's PATH variable. On *nix systems the dfu-programmer utility * can be installed via the project's source code or through the package manager. * * \section SSec_BuildModule_DFU_Targets Targets * * * * * * * * * * * * * * * * * * *
dfuProgram the device FLASH memory with the application's executable data using dfu-programmer.
dfu-eeProgram the device EEPROM memory with the application's EEPROM data using dfu-programmer.
flipProgram the device FLASH memory with the application's executable data using batchisp.
flip-eeProgram the device EEPROM memory with the application's EEPROM data using batchisp.
* * \section SSec_BuildModule_DFU_MandatoryParams Mandatory Parameters * * * * * * * * * * *
MCUName of the Atmel processor model (e.g. at90usb1287).
TARGETName of the application output file prefix (e.g. TestApplication).
* * \section SSec_BuildModule_DFU_OptionalParams Optional Parameters * * * * * *
None
* * \section SSec_BuildModule_DFU_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_DFU_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_DOXYGEN The DOXYGEN build module * * The DOXYGEN code documentation utility LUFA build system module, providing targets to generate * project HTML and other format documentation from a set of source files that include special * Doxygen comments. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_doxygen.mk * \endcode * * \section SSec_BuildModule_DOXYGEN_Requirements Requirements * This module requires the doxygen utility from the Doxygen website * (http://www.doxygen.org/) to be available in your system's PATH variable. On *nix * systems the doxygen utility can be installed via the project's source code or through * the package manager. * * \section SSec_BuildModule_DOXYGEN_Targets Targets * * * * * * * * * * * * * * *
doxygenGenerate project documentation.
doxygen_createCreate a new Doxygen configuration file using the latest template.
doxygen_upgradeUpgrade an existing Doxygen configuration file to the latest template
* * \section SSec_BuildModule_DOXYGEN_MandatoryParams Mandatory Parameters * * * * * * *
LUFA_PATHPath to the LUFA library core, either relative or absolute (e.g. ../LUFA-000000/LUFA/).
* * \section SSec_BuildModule_DOXYGEN_OptionalParams Optional Parameters * * * * * * * * * * * * * * *
DOXYGEN_CONFName and path of the base Doxygen configuration file for the project.
DOXYGEN_FAIL_ON_WARNINGSet to Y to fail the generation with an error exit code if warnings are found other than unsupported configuration parameters, N to continue without failing.
DOXYGEN_OVERRIDE_PARAMSExtra Doxygen configuration parameters to apply, overriding the corresponding config entry in the project's configuration file (e.g. QUIET=YES).
* * \section SSec_BuildModule_DOXYGEN_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_DOXYGEN_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_HID The HID build module * * The HID programming utility LUFA build system module, providing targets to reprogram an * Atmel processor's FLASH memory with a project's compiled binary output file. This module * requires a HID class bootloader to be running in the target, using a protocol compatible * with the PJRC "HalfKay" protocol (http://www.pjrc.com/teensy/halfkay_protocol.html). * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_hid.mk * \endcode * * \section SSec_BuildModule_HID_Requirements Requirements * This module requires either the hid_bootloader_cli utility from the included LUFA HID * class bootloader API subdirectory, or the teensy_loader_cli utility from PJRC * (http://www.pjrc.com/teensy/loader_cli.html) to be available in your system's PATH * variable. * * \section SSec_BuildModule_HID_Targets Targets * * * * * * * * * * * * * * * * * * *
hidProgram the device FLASH memory with the application's executable data using hid_bootloader_cli.
hid-eeProgram the device EEPROM memory with the application's EEPROM data using hid_bootloader_cli and * a temporary AVR application programmed into the target's FLASH. * \note This will erase the currently loaded application in the target.
teensyProgram the device FLASH memory with the application's executable data using teensy_loader_cli.
teensy-eeProgram the device EEPROM memory with the application's EEPROM data using teensy_loader_cli and * a temporary AVR application programmed into the target's FLASH. * \note This will erase the currently loaded application in the target.
* * \section SSec_BuildModule_HID_MandatoryParams Mandatory Parameters * * * * * * * * * * *
MCUName of the Atmel processor model (e.g. at90usb1287).
TARGETName of the application output file prefix (e.g. TestApplication).
* * \section SSec_BuildModule_HID_OptionalParams Optional Parameters * * * * * *
None
* * \section SSec_BuildModule_HID_ProvidedVariables Module Provided Variables * * * * * *
None
* * \section SSec_BuildModule_HID_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildModule_SOURCES The SOURCES build module * * The SOURCES LUFA build system module, providing variables listing the various LUFA source files * required to be build by a project for a given LUFA module. This module gives a way to reference * LUFA source files symbolically, so that changes to the library structure do not break the library * makefile. * * To use this module in your application makefile, add the following code: * \code * include $(LUFA_PATH)/Build/lufa_sources.mk * \endcode * * \section SSec_BuildModule_SOURCES_Requirements Requirements * None. * * \section SSec_BuildModule_SOURCES_Targets Targets * * * * * *
None
* * \section SSec_BuildModule_SOURCES_MandatoryParams Mandatory Parameters * * * * * * * * * * *
LUFA_PATHPath to the LUFA library core, either relative or absolute (e.g. ../LUFA-000000/LUFA/).
ARCHArchitecture of the target processor (see \ref Page_DeviceSupport).
* * \section SSec_BuildModule_SOURCES_OptionalParams Optional Parameters * * * * * *
None
* * \section SSec_BuildModule_SOURCES_ProvidedVariables Module Provided Variables * * * * * * * * * * * * * * * * * * * * * * * * * * *
LUFA_SRC_USBList of LUFA USB driver source files.
LUFA_SRC_USBCLASSList of LUFA USB Class driver source files.
LUFA_SRC_TEMPERATUREList of LUFA temperature sensor driver source files.
LUFA_SRC_SERIALList of LUFA Serial U(S)ART driver source files.
LUFA_SRC_TWIList of LUFA TWI driver source files.
LUFA_SRC_PLATFORMList of LUFA architecture specific platform management source files.
* * \section SSec_BuildModule_SOURCES_ProvidedMacros Module Provided Macros * * * * * *
None
*/ /** \page Page_BuildTroubleshooting Troubleshooting Information * * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and surrounding binaries. This can sometimes lead to problems compiling applications if one of these * features is buggy in the version of the tools used in a build environment. Missing utilities and incorrectly set makefile configuration options can also result in different * errors being produced when compilation or other operations are attempted. The table below lists a set of commonly encountered errors and their resolutions. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ProblemResolution
Error "relocation truncated to fit: R_AVR_13_PCREL against symbol {X}" shown when compiling.Try compiling with the setting LINKER_RELAXATIONS=N in your LUFA Build System 2.0 makefile, or remove the line -Wl,--relax * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.
Error "error: ld terminated with signal 11 [Segmentation fault]" shown when compiling.Try compiling with the setting DEBUG_LEVEL=2 in your LUFA Build System 2.0 makefile, or make sure you are using binutils version 2.22 or later.
Error "EMERGENCY ABORT: INFINITE RECURSION DETECTED" shown when compiling.Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with * GNU make or other variants of Make causing an infinitely recursive build.
Error "Unsupported architecture "{X}"" shown when compiling.Ensure your makefile's ARCH setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.
Error "Makefile {X} value not set" shown when compiling.The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA * build system modules. Define the value in your project makefile and try again.
Error "Makefile {X} option cannot be blank" shown when compiling.The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.
Error "Makefile {X} option must be Y or N" shown when compiling.The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No"). * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.
Error "Unknown input source file formats: {X}" shown when compiling.The nominated source files, specified in your project's makefile in the SRC configuration option, has an extension that the LUFA build system does not * recognise. The file extensions are case sensitive, and must be one of the supported formats (*.c, *.cpp or *.S).
Error "Cannot build with OBJDIR parameter set - one or more object file name is not unique" shown when compiling.When a project is built with a non-empty OBJDIR object directory name set, all input source files must have unique names, excluding extension and path. * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.
Error "Source file does not exist: {X}" shown when compiling.The nominated input source file, specified in the user project's SRC parameter, could not be found. Ensure the source file exists and the absolute or * relative path given in the user project makefile is correct and try again.
Error "Doxygen configuration file {X} does not exist" shown when upgrading a Doxygen configuration file.The nominated Doxygen configuration file, specified in the user project's DOXYGEN_CONF parameter, could not be found. Ensure the configuration file exists * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration * file.
Error "avr-gcc: error: unrecognized option '{X}'" shown when compiling.An unrecognised option was supplied to the compiler, usually in the C_FLAGS, CPP_FLAGS, ASM_FLAGS or CC_FLAGS configuration * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.
Error "makefile:{X}: {Y}.mk: No such file or directory" shown when make is invoked.The path to the nominated makefile module was incorrect. This usually indicates that the makefile LUFA_PATH option is not set to a valid relative or * absolute path to the LUFA library core.
Error "fatal error: LUFAConfig.h: No such file or directory" shown when compiling.The USE_LUFA_CONFIG_HEADER compile time option was set in the user project makefile, but the user supplied LUFAConfig.h header could not be * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile CC_FLAGS * parameter.
Error "ld.exe: section .apitable_trampolines loaded at {X} overlaps section .text" shown when compiling a bootloader.The bootloader is compiling too large for the given FLASH_SIZE_KB and BOOT_SECTION_SIZE_KB parameters set in the bootloader makefile. This * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.
Error "unknown MCU '{X}' specified" shown when compiling.The specified microcontroller device model name set in the user application's makefile as the MCU parameter is incorrect, or unsupported by the * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.
Error "undefined reference to `{X}'" shown when compiling.This is usually caused by a missing source file in the user application's SRC configuration parameter. If the indicated symbol is one from the LUFA * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_SOURCES).
* * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp. */