Statistics
| Branch: | Tag: | Revision:

root / LUFA / ManPages / LUFAvsAtmelStack.txt @ 978b99e5

History | View | Annotate | Download (3.7 KB)

1
/** \file
2
 *
3
 *  This file contains special DoxyGen information for the generation of the main page and other special
4
 *  documentation pages. It is not a project source file.
5
 */
6

    
7
/**
8
 *  \page Page_LUFAvsAtmelStack LUFA vs the Atmel 8-bit USB AVR Stack
9
 *
10
 *  Atmel offers an official 8-bit USB AVR stack, which may be incorporated into user projects and products. As LUFA and the Atmel
11
 *  stack aims to give roughly the same functionality to a design, it is often asked what advantages LUFA carries over the official
12
 *  Atmel USB stack for the 8-bit USB AVRs. Below are just some of the advantages to choosing LUFA over the official Atmel stack.
13
 *
14
 *  - <b>Licensing:</b>
15
 *    LUFA is released under a very permissive MIT license (see \ref Page_LicenseInfo), while the Atmel stack carries several
16
 *    restrictions as to how and where it can be used. LUFA's licensing should be suitable for both Commercial and Non-Commercial
17
 *    entities alike.
18
 *
19
 *  - <b>Demos and Projects:</b>
20
 *    Unlike the Atmel stack, LUFA comes with many different Device and Host mode Demos and Projects ready to run out of the box.
21
 *    Atmel favors separate downloads for each of their (small set) of USB AVR demos, which requires more time and offers less
22
 *    to the end-user. LUFA also contains several open source Bootloaders, which can be modified as the user wishes to suit his or
23
 *    her application, instead of being forced to use Atmel's single prebuilt (closed-source) DFU bootloader.
24
 *
25
 *  - <b>Central Library Code:</b>
26
 *    LUFA is designed to allow the central library core code to be shared amongst several projects, so long as the compiled object
27
 *    files are cleaned between different projects. This is in direct contrast to the Atmel library, which is strongly coupled to the
28
 *    project it is integrated with. Using LUFA allows for only one copy of the library core to be needed for all applications, and
29
 *    makes updating the library used in all projects a trivial copy-and-paste process.
30
 *
31
 *  - <b>Clean API:</b>
32
 *    One of the main design goals of LUFA is to make the API easy to use. While LUFA is a fluid project which has undergone many
33
 *    API improvements, the API is arguably much nicer to use and easier to understand than the equivalent Atmel stack code. LUFA's
34
 *    API is also more complete than the Atmel stack, and contains many features to speed up application development.
35
 *
36
 *  - <b>Full Hardware Support:</b>
37
 *    LUFA supports the full range of Atmel's USB AVR microcontrollers (see \ref Page_DeviceSupport), with porting between chips being
38
 *    as simple as a single compile switch in many cases. Atmel's stack requires different libraries to be used based on the USB AVR
39
 *    microcontroller series, complicating the process of moving between USB AVR models. In addition, LUFA contains drivers for all the
40
 *    hardware contained on Atmel's USB AVR based boards, so you can get started quickly and easily.
41
 *
42
 *  - <b>Better Library Support:</b>
43
 *    As many people are now using LUFA, there is a community being built around it. You can get answers to your LUFA related questions
44
 *    quickly by either emailing the library author (subject to author's schedule) or by posting to the official LUFA support mailing list.
45
 *
46
 *  - <b>More Compact Code:</b>
47
 *    LUFA is written from the ground up to compile optimally, using clean code and good design. Two demos giving the same functionality -
48
 *    the LUFA Low Level API Mouse Demo vs. the Atmel AVR270 HID Mouse application note shows LUFA to be the clear size winner *.
49
 *
50
 *  * <i>LUFA Low Level Mouse Demo: 3510 bytes, Atmel AVR270 Mouse Application Note: 4222 bytes, using an identical build environment.</i>
51
 */
52