forked from mfulz_github/qmk_firmware
Spell check code and manual pages. Remove custom Doxygen CSS stylesheet, as the new 1.7 Doxygen's default stylesheet is much better.
This commit is contained in:
parent
13ea700b35
commit
711542ee89
File diff suppressed because one or more lines are too long
|
@ -115,7 +115,7 @@
|
|||
|
||||
/** Forces the compiler to not automatically zero the given global variable on startup, so that the
|
||||
* current RAM contents is retained. Under most conditions this value will be random due to the
|
||||
* behaviour of volatile memory once power is removed, but may be used in some specific circumstances,
|
||||
* behavior of volatile memory once power is removed, but may be used in some specific circumstances,
|
||||
* like the passing of values back after a system watchdog reset.
|
||||
*/
|
||||
#define ATTR_NO_INIT __attribute__ ((section (".noinit")))
|
||||
|
|
|
@ -811,7 +811,7 @@ HTML_FOOTER =
|
|||
# the style sheet file to the HTML output directory, so don't put your own
|
||||
# stylesheet in the HTML output directory as well, or it will be erased!
|
||||
|
||||
HTML_STYLESHEET = Doxygen.css
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
|
||||
# page will contain the date and time when the page was generated. Setting
|
||||
|
|
547
LUFA/Doxygen.css
547
LUFA/Doxygen.css
|
@ -1,547 +0,0 @@
|
|||
/* The standard CSS for doxygen */
|
||||
|
||||
body, table, div, p, dl {
|
||||
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* @group Heading Levels */
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.multicol {
|
||||
-moz-column-gap: 1em;
|
||||
-webkit-column-gap: 1em;
|
||||
-moz-column-count: 3;
|
||||
-webkit-column-count: 3;
|
||||
}
|
||||
|
||||
p.startli, p.startdd, p.starttd {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
p.endli {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
p.enddd {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
p.endtd {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
caption {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.legend {
|
||||
font-size: 70%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3.version {
|
||||
font-size: 90%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.qindex, div.navtab{
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
div.qindex, div.navpath {
|
||||
width: 100%;
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
div.navtab {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
/* @group Link Styling */
|
||||
|
||||
a {
|
||||
color: #153788;
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.contents a:visited {
|
||||
color: #1b77c5;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a.qindex {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.qindexHL {
|
||||
font-weight: bold;
|
||||
background-color: #6666cc;
|
||||
color: #ffffff;
|
||||
border: 1px double #9295C2;
|
||||
}
|
||||
|
||||
.contents a.qindexHL:visited {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
a.el {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.elRef {
|
||||
}
|
||||
|
||||
a.code {
|
||||
color: #3030f0;
|
||||
}
|
||||
|
||||
a.codeRef {
|
||||
color: #3030f0;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
dl.el {
|
||||
margin-left: -1cm;
|
||||
}
|
||||
|
||||
.fragment {
|
||||
font-family: monospace, fixed;
|
||||
font-size: 105%;
|
||||
}
|
||||
|
||||
pre.fragment {
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #f5f5f5;
|
||||
padding: 4px 6px;
|
||||
margin: 4px 8px 4px 2px;
|
||||
overflow: auto;
|
||||
word-wrap: break-word;
|
||||
font-size: 9pt;
|
||||
line-height: 125%;
|
||||
}
|
||||
|
||||
div.ah {
|
||||
background-color: black;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px
|
||||
}
|
||||
|
||||
div.groupHeader {
|
||||
margin-left: 16px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.groupText {
|
||||
margin-left: 16px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
body {
|
||||
background: white;
|
||||
color: black;
|
||||
margin-right: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
td.indexkey {
|
||||
background-color: #e8eef2;
|
||||
font-weight: bold;
|
||||
border: 1px solid #CCCCCC;
|
||||
margin: 2px 0px 2px 0;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
td.indexvalue {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #CCCCCC;
|
||||
padding: 2px 10px;
|
||||
margin: 2px 0px;
|
||||
}
|
||||
|
||||
tr.memlist {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
p.formulaDsp {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img.formulaDsp {
|
||||
|
||||
}
|
||||
|
||||
img.formulaInl {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.center {
|
||||
text-align: center;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
div.center img {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
img.footer {
|
||||
border: 0px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* @group Code Colorization */
|
||||
|
||||
span.keyword {
|
||||
color: #008000
|
||||
}
|
||||
|
||||
span.keywordtype {
|
||||
color: #604020
|
||||
}
|
||||
|
||||
span.keywordflow {
|
||||
color: #e08000
|
||||
}
|
||||
|
||||
span.comment {
|
||||
color: #800000
|
||||
}
|
||||
|
||||
span.preprocessor {
|
||||
color: #806020
|
||||
}
|
||||
|
||||
span.stringliteral {
|
||||
color: #002080
|
||||
}
|
||||
|
||||
span.charliteral {
|
||||
color: #008080
|
||||
}
|
||||
|
||||
span.vhdldigit {
|
||||
color: #ff00ff
|
||||
}
|
||||
|
||||
span.vhdlchar {
|
||||
color: #000000
|
||||
}
|
||||
|
||||
span.vhdlkeyword {
|
||||
color: #700070
|
||||
}
|
||||
|
||||
span.vhdllogic {
|
||||
color: #ff0000
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
.search {
|
||||
color: #003399;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
form.search {
|
||||
margin-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
input.search {
|
||||
font-size: 75%;
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
background-color: #e8eef2;
|
||||
}
|
||||
|
||||
td.tiny {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.dirtab {
|
||||
padding: 4px;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #84b0c7;
|
||||
}
|
||||
|
||||
th.dirtab {
|
||||
background: #e8eef2;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 0px;
|
||||
border: none;
|
||||
border-top: 1px solid #666;
|
||||
}
|
||||
|
||||
hr.footer {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
/* @group Member Descriptions */
|
||||
|
||||
.mdescLeft, .mdescRight,
|
||||
.memItemLeft, .memItemRight,
|
||||
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||
background-color: #FAFAFA;
|
||||
border: none;
|
||||
margin: 4px;
|
||||
padding: 1px 0 0 8px;
|
||||
}
|
||||
|
||||
.mdescLeft, .mdescRight {
|
||||
padding: 0px 8px 4px 8px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.memItemLeft, .memItemRight, .memTemplParams {
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.memItemLeft, .memTemplItemLeft {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.memTemplParams {
|
||||
color: #606060;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Member Details */
|
||||
|
||||
/* Styles for detailed member documentation */
|
||||
|
||||
.memtemplate {
|
||||
font-size: 80%;
|
||||
color: #606060;
|
||||
font-weight: normal;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.memnav {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
margin-right: 15px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.memitem {
|
||||
padding: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.memname {
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.memproto {
|
||||
border-top: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 0;
|
||||
background-color: #d5e1e8;
|
||||
font-weight: bold;
|
||||
/* firefox specific markup */
|
||||
background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
-moz-border-radius-topright: 8px;
|
||||
-moz-border-radius-topleft: 8px;
|
||||
/* webkit specific markup */
|
||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
-webkit-border-top-right-radius: 8px;
|
||||
-webkit-border-top-left-radius: 8px;
|
||||
|
||||
}
|
||||
|
||||
.memdoc {
|
||||
border-bottom: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 2px 5px;
|
||||
background-color: #eef3f5;
|
||||
border-top-width: 0;
|
||||
/* firefox specific markup */
|
||||
-moz-border-radius-bottomleft: 8px;
|
||||
-moz-border-radius-bottomright: 8px;
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
/* webkit specific markup */
|
||||
-webkit-border-bottom-left-radius: 8px;
|
||||
-webkit-border-bottom-right-radius: 8px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.paramkey {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paramtype {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.paramname {
|
||||
color: #602020;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.paramname em {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Directory (tree) */
|
||||
|
||||
/* for the tree view */
|
||||
|
||||
.ftvtree {
|
||||
font-family: sans-serif;
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
/* these are for tree view when used as main index */
|
||||
|
||||
.directory {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
/*
|
||||
The following two styles can be used to replace the root node title
|
||||
with an image of your choice. Simply uncomment the next two styles,
|
||||
specify the name of your image and be sure to set 'height' to the
|
||||
proper pixel height of your image.
|
||||
*/
|
||||
|
||||
/*
|
||||
.directory h3.swap {
|
||||
height: 61px;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("yourimage.gif");
|
||||
}
|
||||
.directory h3.swap span {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
|
||||
.directory > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* these are for tree view when not used as main index */
|
||||
|
||||
.directory-alt {
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory-alt h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.directory-alt > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory-alt p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory-alt div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory-alt img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
address {
|
||||
font-style: normal;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
table.doxtable {
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
table.doxtable td, table.doxtable th {
|
||||
border: 1px solid #153788;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
table.doxtable th {
|
||||
background-color: #254798;
|
||||
color: #FFFFFF;
|
||||
font-size: 110%;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 5px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
|
||||
p {padding-left: 20px;}
|
|
@ -29,7 +29,7 @@
|
|||
*/
|
||||
|
||||
/** \file
|
||||
* \brief Board specific Buttons driver header for the Bentio.
|
||||
* \brief Board specific Buttons driver header for the Benito.
|
||||
*
|
||||
* Board specific Buttons driver header for the Benito (http://dorkbotpdx.org/wiki/benito).
|
||||
*
|
||||
|
@ -40,7 +40,7 @@
|
|||
/** \ingroup Group_Buttons
|
||||
* @defgroup Group_Buttons_BENITO BENITO
|
||||
*
|
||||
* Board specific Buttons driver header for the Bentio (http://dorkbotpdx.org/wiki/benito).
|
||||
* Board specific Buttons driver header for the 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.
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
*
|
||||
* \note To make code as compatible as possible, it is assumed that all boards carry a minimum of four LEDs. If
|
||||
* a board contains less than four LEDs, the remaining LED masks are defined to 0 so as to have no effect.
|
||||
* If other behaviour is desired, either alias the remaining LED masks to existing LED masks via the -D
|
||||
* If other behavior is desired, either alias the remaining LED masks to existing LED masks via the -D
|
||||
* switch in the project makefile, or alias them to nothing in the makefile to cause compilation errors when
|
||||
* a non-existing LED is referenced in application code. Note that this means that it is possible to make
|
||||
* compatible code for a board with no LEDs by making a board LED driver (see \ref Page_WritingBoardDrivers)
|
||||
|
|
|
@ -287,7 +287,7 @@
|
|||
#endif
|
||||
}
|
||||
|
||||
/** Deconfigures the given ADC channel, re-enabling digital I/O mode instead of analog. This
|
||||
/** De-configures the given ADC channel, re-enabling digital I/O mode instead of analog. This
|
||||
* function sets the associated port pin as an input and re-enabled the digital portion of
|
||||
* the I/O.
|
||||
*
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
* \param[in] Byte Location where the read byte is to be stored
|
||||
* \param[in] LastByte Indicates if the byte should be ACKed if false, NAKed if true
|
||||
*
|
||||
* \return Boolean true if the byte reception sucessfully completed, false otherwise
|
||||
* \return Boolean true if the byte reception successfully completed, false otherwise
|
||||
*/
|
||||
static inline bool TWI_ReceiveByte(uint8_t* Byte, bool LastByte)
|
||||
{
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
* One major issue with CDC-ACM is that it requires two Interface descriptors,
|
||||
* which will upset most hosts when part of a multi-function "Composite" USB
|
||||
* device, as each interface will be loaded into a separate driver instance. To
|
||||
* conbat this, you should use the "Interface Association Descriptor" addendum to
|
||||
* combat this, you should use the "Interface Association Descriptor" addendum to
|
||||
* the USB standard which is available on most OSes when creating Composite devices.
|
||||
*
|
||||
* Another major oversight is that there is no mechanism for the host to notify the
|
||||
|
@ -190,7 +190,7 @@
|
|||
*/
|
||||
void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** CDC class driver event for a send break request sent to the device from the host. This is generally used to seperate
|
||||
/** CDC class driver event for a send break request sent to the device from the host. This is generally used to separate
|
||||
* data or to indicate a special condition to the receiving device.
|
||||
*
|
||||
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state
|
||||
|
@ -277,7 +277,7 @@
|
|||
*/
|
||||
void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Creates a standard characer stream for the given CDC Device instance so that it can be used with all the regular
|
||||
/** Creates a standard character stream for the given CDC Device instance so that it can be used with all the regular
|
||||
* functions in the avr-libc <stdio.h> library that accept a FILE stream as a destination (e.g. fprintf). The created
|
||||
* stream is bidirectional and can be used for both input and output functions.
|
||||
*
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
|
||||
|
||||
/** Flushes the MIDI send buffer, sending any queued MIDI events to the host. This should be called to override the
|
||||
* \ref MIDI_Device_SendEventPacket() function's packing behaviour, to flush queued events.
|
||||
* \ref MIDI_Device_SendEventPacket() function's packing behavior, to flush queued events.
|
||||
*
|
||||
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
|
||||
*
|
||||
|
|
|
@ -190,7 +190,7 @@
|
|||
*/
|
||||
uint8_t CDC_Host_SendControlLineStateChange(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Sends a Send Break request to the device. This is generally used to seperate data data or to indicate a special condition
|
||||
/** Sends a Send Break request to the device. This is generally used to separate data data or to indicate a special condition
|
||||
* to the receiving device.
|
||||
*
|
||||
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state
|
||||
|
@ -267,7 +267,7 @@
|
|||
*/
|
||||
uint8_t CDC_Host_Flush(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Creates a standard characer stream for the given CDC Device instance so that it can be used with all the regular
|
||||
/** Creates a standard character stream for the given CDC Device instance so that it can be used with all the regular
|
||||
* functions in the avr-libc <stdio.h> library that accept a FILE stream as a destination (e.g. fprintf). The created
|
||||
* stream is bidirectional and can be used for both input and output functions.
|
||||
*
|
||||
|
|
|
@ -136,7 +136,7 @@
|
|||
* \param[in] reportitem HID Report Item whose retrieved value is to be aligned
|
||||
* \param[in] type Data type to align the HID report item's value to
|
||||
*
|
||||
* \return Left-aligned data of the given report item's pre-retrived value for the given datatype
|
||||
* \return Left-aligned data of the given report item's pre-retrieved value for the given datatype
|
||||
*/
|
||||
#define HID_ALIGN_DATA(reportitem, type) ((type)(reportitem->Value << ((8 * sizeof(type)) - reportitem->Attributes.BitSize)))
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
MIDI_EventPacket_t* const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
|
||||
|
||||
/** Flushes the MIDI send buffer, sending any queued MIDI events to the device. This should be called to override the
|
||||
* \ref MIDI_Host_SendEventPacket() function's packing behaviour, to flush queued events. Events are queued into the
|
||||
* \ref MIDI_Host_SendEventPacket() function's packing behavior, to flush queued events. Events are queued into the
|
||||
* pipe bank until either the pipe bank is full, or \ref MIDI_Host_Flush() is called. This allows for multiple MIDI
|
||||
* events to be packed into a single pipe packet, increasing data throughput.
|
||||
*
|
||||
|
|
|
@ -294,7 +294,7 @@ uint8_t RNDIS_Host_SetRNDISProperty(USB_ClassInfo_RNDIS_Host_t* const RNDISInter
|
|||
struct
|
||||
{
|
||||
RNDIS_Set_Message_t SetMessage;
|
||||
uint8_t ContigiousBuffer[Length];
|
||||
uint8_t ContiguousBuffer[Length];
|
||||
} SetMessageData;
|
||||
|
||||
RNDIS_Set_Complete_t SetMessageResponse;
|
||||
|
@ -308,7 +308,7 @@ uint8_t RNDIS_Host_SetRNDISProperty(USB_ClassInfo_RNDIS_Host_t* const RNDISInter
|
|||
SetMessageData.SetMessage.InformationBufferOffset = (sizeof(RNDIS_Set_Message_t) - sizeof(RNDIS_Message_Header_t));
|
||||
SetMessageData.SetMessage.DeviceVcHandle = 0;
|
||||
|
||||
memcpy(&SetMessageData.ContigiousBuffer, Buffer, Length);
|
||||
memcpy(&SetMessageData.ContiguousBuffer, Buffer, Length);
|
||||
|
||||
if ((ErrorCode = RNDIS_SendEncapsulatedCommand(RNDISInterfaceInfo, &SetMessageData,
|
||||
SetMessageData.SetMessage.MessageLength)) != HOST_SENDCONTROL_Successful)
|
||||
|
@ -337,7 +337,7 @@ uint8_t RNDIS_Host_QueryRNDISProperty(USB_ClassInfo_RNDIS_Host_t* const RNDISInt
|
|||
struct
|
||||
{
|
||||
RNDIS_Query_Complete_t QueryMessageResponse;
|
||||
uint8_t ContigiousBuffer[MaxLength];
|
||||
uint8_t ContiguousBuffer[MaxLength];
|
||||
} QueryMessageResponseData;
|
||||
|
||||
QueryMessage.MessageType = REMOTE_NDIS_QUERY_MSG;
|
||||
|
@ -364,7 +364,7 @@ uint8_t RNDIS_Host_QueryRNDISProperty(USB_ClassInfo_RNDIS_Host_t* const RNDISInt
|
|||
if (QueryMessageResponseData.QueryMessageResponse.Status != REMOTE_NDIS_STATUS_SUCCESS)
|
||||
return RNDIS_COMMAND_FAILED;
|
||||
|
||||
memcpy(Buffer, &QueryMessageResponseData.ContigiousBuffer, MaxLength);
|
||||
memcpy(Buffer, &QueryMessageResponseData.ContiguousBuffer, MaxLength);
|
||||
|
||||
return HOST_SENDCONTROL_Successful;
|
||||
}
|
||||
|
|
|
@ -214,11 +214,11 @@
|
|||
const uint8_t AfterType)
|
||||
ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
|
||||
|
||||
/** Searches for the next descriptor in the given configuration descriptor using a premade comparator
|
||||
/** Searches for the next descriptor in the given configuration descriptor using a pre-made comparator
|
||||
* function. The routine updates the position and remaining configuration descriptor bytes values
|
||||
* automatically. If a comparator routine fails a search, the descriptor pointer is retreated back
|
||||
* so that the next descriptor search invocation will start from the descriptor which first caused the
|
||||
* original search to fail. This behaviour allows for one comparator to be used immediately after another
|
||||
* original search to fail. This behavior allows for one comparator to be used immediately after another
|
||||
* has failed, starting the second search from the descriptor which failed the first.
|
||||
*
|
||||
* Comparator functions should be standard functions which accept a pointer to the header of the current
|
||||
|
|
|
@ -188,7 +188,7 @@
|
|||
* \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.
|
||||
* this means that the current connection state is derived from the bus suspension and wake up events by default,
|
||||
* which is not always accurate (host may suspend the bus while still connected). If the actual connection state
|
||||
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by
|
||||
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behavior turned off by
|
||||
* passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection
|
||||
* and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.
|
||||
* \n\n
|
||||
|
@ -206,7 +206,7 @@
|
|||
* \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.
|
||||
* this means that the current connection state is derived from the bus suspension and wake up events by default,
|
||||
* which is not always accurate (host may suspend the bus while still connected). If the actual connection state
|
||||
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behaviour turned off by
|
||||
* needs to be determined, VBUS should be routed to an external pin, and the auto-detect behavior turned off by
|
||||
* passing the NO_LIMITED_CONTROLLER_CONNECT token to the compiler via the -D switch at compile time. The connection
|
||||
* and disconnection events may be manually fired, and the \ref USB_DeviceState global changed manually.
|
||||
* \n\n
|
||||
|
@ -226,7 +226,7 @@
|
|||
* This event is time-critical; each packet within the request transaction must be acknowledged or
|
||||
* sent within 50ms or the host will abort the transfer.
|
||||
*
|
||||
* The library interally handles all standard control requests with the exceptions of SYNC FRAME,
|
||||
* The library internally handles all standard control requests with the exceptions of SYNC FRAME,
|
||||
* SET DESCRIPTOR and SET INTERFACE. These and all other non-standard control requests will be left
|
||||
* for the user to process via this event if desired. If not handled in the user application, requests
|
||||
* are automatically STALLed.
|
||||
|
@ -307,7 +307,7 @@
|
|||
* millisecond timer source when the USB bus is enumerated in device mode to a USB host.
|
||||
*
|
||||
* This event is time-critical; it is run once per millisecond and thus long handlers will significantly
|
||||
* degrade device performance. This event should only be enabled when needed to reduce device wakeups.
|
||||
* degrade device performance. This event should only be enabled when needed to reduce device wake-ups.
|
||||
*
|
||||
* \note This event is not normally active - it must be manually enabled and disabled via the
|
||||
* \ref USB_Device_EnableSOFEvents() and \ref USB_Device_DisableSOFEvents() commands after enumeration.
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
/** \file
|
||||
* \brief USB device standard request management.
|
||||
*
|
||||
* This file contains the function prototypes neccesary for the processing of incomming standard control requests
|
||||
* This file contains the function prototypes necessary for the processing of incoming standard control requests
|
||||
* when the library is in USB device mode.
|
||||
*
|
||||
* \note This file should not be included directly. It is automatically included as needed by the USB driver
|
||||
|
|
|
@ -223,7 +223,7 @@
|
|||
* \note After this routine returns, the control pipe will be selected.
|
||||
*
|
||||
* \param[in] Index Index of the string index to retrieve
|
||||
* \param[out] Buffer Pointer to the destination buffer where the retrieved string decriptor is
|
||||
* \param[out] Buffer Pointer to the destination buffer where the retrieved string descriptor is
|
||||
* to be stored
|
||||
* \param[in] BufferLength Maximum size of the string descriptor which can be stored into the buffer
|
||||
*
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
/** \file
|
||||
* \brief USB host standard request management.
|
||||
*
|
||||
* This file contains the function prototypes neccesary for the issuing of outgoing standard control requests
|
||||
* This file contains the function prototypes necessary for the issuing of outgoing standard control requests
|
||||
* when the library is in USB host mode.
|
||||
*
|
||||
* \note This file should not be included directly. It is automatically included as needed by the USB driver
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
/** \file
|
||||
* \brief USB low level USB controller definitions.
|
||||
*
|
||||
* This file contains structures, function prototypes and macros related to the low level configutation of the
|
||||
* This file contains structures, function prototypes and macros related to the low level configuration of the
|
||||
* USB controller, to start, stop and reset the USB library core.
|
||||
*
|
||||
* \note This file should not be included directly. It is automatically included as needed by the USB driver
|
||||
|
@ -250,7 +250,7 @@
|
|||
* Valid mode masks are \ref USB_MODE_DEVICE, \ref USB_MODE_HOST or \ref USB_MODE_UID.
|
||||
*
|
||||
* \param[in] Options Mask indicating the options which should be used when initializing the USB
|
||||
* interface to control the USB interface's behaviour. This should be comprised of
|
||||
* interface to control the USB interface's behavior. This should be comprised of
|
||||
* a USB_OPT_REG_* mask to control the regulator, a USB_OPT_*_PLL mask to control the
|
||||
* PLL, and a USB_DEVICE_OPT_* mask (when the device mode is enabled) to set the device
|
||||
* mode speed.
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
* past and planned changes, and links to other projects incorporating LUFA.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_DeviceSupport Current Device and Hardware Support
|
||||
* - \subpage Page_Resources LUFA and USB Related Resources
|
||||
* - \subpage Page_ChangeLog Project Changelog
|
||||
* - \subpage Page_FutureChanges Planned Changes to the Library
|
||||
* - \subpage Page_LUFAPoweredProjects Other Projects Using LUFA
|
||||
* \li \subpage Page_DeviceSupport - Current Device and Hardware Support
|
||||
* \li \subpage Page_Resources - LUFA and USB Related Resources
|
||||
* \li \subpage Page_ChangeLog - Project Changelog
|
||||
* \li \subpage Page_FutureChanges - Planned Changes to the Library
|
||||
* \li \subpage Page_LUFAPoweredProjects - Other Projects Using LUFA
|
||||
*/
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
* <b>License:</b> Atmel Limited License (see Atmel download for details) \n
|
||||
* <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
|
||||
* <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
|
||||
* USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
|
||||
* USB AVR is separated into a separate download stack, which is both AVR-GCC and IAR compatible.
|
||||
*
|
||||
* - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
|
@ -59,4 +59,4 @@
|
|||
* Used in many commercial and non-commercial designs, with user-submitted projects available for viewing
|
||||
* on the company's website. Uses C language code mixed with assembly for time-critical sections.
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
* - Removed the cast to uint16_t on the set baud rate in the USBtoSerial project, so that the higher >1M baud rates can be
|
||||
* selected (thanks to Steffan Woltjer)
|
||||
* - Removed software PDI and TPI emulation from the AVRISP-MKII clone project as it was very buggy and slow - PDI and TPI must
|
||||
* now be implemented via seperate programming headers
|
||||
* now be implemented via separate programming headers
|
||||
* - The CDC class bootloader now uses a watchdog reset rather than a soft-reset when exited to ensure that all hardware is
|
||||
* properly reset to their defaults
|
||||
* - Device mode class driver callbacks are now fired before the control request status stage is sent to prevent the host from
|
||||
|
@ -79,7 +79,7 @@
|
|||
* - Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly
|
||||
* selected when the ISR completes
|
||||
* - Fixed AVRISP-MKII clone project not correctly issuing LOAD EXTENDED ADDRESS commands when the extended address
|
||||
* boundary is crossed during programming or readback (thanks to Gerard Sexton)
|
||||
* boundary is crossed during programming or read back (thanks to Gerard Sexton)
|
||||
* - Fixed warnings when building the AVRISP-MKII clone project with the ENABLE_XPROG_PROTOCOL compile time option disabled
|
||||
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
|
||||
* - Fixed TWI_StartTransmission() corrupting the contents of the GPIOR0 register
|
||||
|
@ -104,7 +104,7 @@
|
|||
* - Fixed Set Configuration requests not being stalled until the host has set the device's address
|
||||
* - Fixed Host mode HID class driver not sending the correct report type when HID_Host_SendReportByID() was called and the
|
||||
* HID_HOST_BOOT_PROTOCOL_ONLY compile time option is set
|
||||
* - Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occuring while the control endpoint
|
||||
* - Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occurring while the control endpoint
|
||||
* request is being processed, causing possible lockups if a USB interrupt occurs during a transfer
|
||||
* - Remove incorrect Abstract Call Management class specific descriptor from the CDC demos, bootloaders and projects
|
||||
*
|
||||
|
@ -123,7 +123,7 @@
|
|||
* - Added ADC MUX masks for the standard ADC input channels on all AVR models with an ADC, altered demos to use these masks
|
||||
* as on some models, the channel number is not identical to its single-ended ADC MUX mask
|
||||
* - New Webserver project, a RNDIS host USB webserver using the open source uIP TCP/IP network stack and FatFS library
|
||||
* - New BOARD value option BOARD_NONE (equivelent to not specifying BOARD) which will remove all board hardware drivers which
|
||||
* - New BOARD value option BOARD_NONE (equivalent to not specifying BOARD) which will remove all board hardware drivers which
|
||||
* do not adversely affect the code operation (currently only the LEDs driver)
|
||||
* - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) and LED report masks (KEYBOARD_LED_*) to the HID class driver and
|
||||
* Keyboard demos
|
||||
|
@ -154,7 +154,7 @@
|
|||
* - Fixed Benito project not resetting the target AVR automatically when programming has completed
|
||||
* - Fixed DFU bootloader programming not discarding the correct number of filler bytes from the host when non-aligned programming
|
||||
* ranges are specified (thanks to Thomas Bleeker)
|
||||
* - Fixed CDC and RNDIS host demos and class drivers - bidirectional endpoints should use two seperate pipes, not one half-duplex pipe
|
||||
* - Fixed CDC and RNDIS host demos and class drivers - bidirectional endpoints should use two separate pipes, not one half-duplex pipe
|
||||
* - Fixed Pipe_IsEndpointBound() not taking the endpoint's direction into account
|
||||
* - Fixed EEPROM and FLASH ISP programming in the AVRISP project
|
||||
* - Fixed incorrect values of USB_CONFIG_ATTR_SELFPOWERED and USB_CONFIG_ATTR_REMOTEWAKEUP tokens (thanks to Claus Christensen)
|
||||
|
@ -162,7 +162,7 @@
|
|||
* - Fixed SerialStream driver not setting stdin to the created serial stream (thanks to Mike Alexander)
|
||||
* - Fixed USB_GetHIDReportSize() returning the number of bits in the specified report instead of bytes
|
||||
* - Fixed AVRISP project not extending the command delay after each successful page/word/byte program
|
||||
* - Fixed accuracy of the SERIAL_UBBRVAL() and SERIAL_2X_UBBRVAL() macros for higher baudrates (thanks to Renaud Cerrato)
|
||||
* - Fixed accuracy of the SERIAL_UBBRVAL() and SERIAL_2X_UBBRVAL() macros for higher baud rates (thanks to Renaud Cerrato)
|
||||
*
|
||||
* \section Sec_ChangeLog091223 Version 091223
|
||||
*
|
||||
|
@ -186,8 +186,8 @@
|
|||
* - Added new NO_DEVICE_REMOTE_WAKEUP and NO_DEVICE_SELF_POWER compile time options
|
||||
*
|
||||
* <b>Changed:</b>
|
||||
* - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of keycodes
|
||||
* as this relied on non-standard OS driver behaviour to repeat key groups
|
||||
* - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of key codes
|
||||
* as this relied on non-standard OS driver behavior to repeat key groups
|
||||
* - The SCSI_Request_Sense_Response_t and SCSI_Inquiry_Response_t type defines are now part of the Mass Storage Class
|
||||
* driver common defines, rather than being defined in the Host mode Class driver section only
|
||||
* - The USB_MODE_HOST token is now defined even when host mode is not available
|
||||
|
@ -196,7 +196,7 @@
|
|||
* - All Class Drivers now return false or the "DeviceDisconnected" error code of their respective error enums when a function
|
||||
* is called when no host/device is connected where possible
|
||||
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line
|
||||
* with the rest of the library errorcodes
|
||||
* with the rest of the library error codes
|
||||
* - Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero,
|
||||
* which some devices use instead of Note Off messages (thanks to Robin Green)
|
||||
* - The CDC demos are now named "VirtualSerial" instead to indicate the demos' function rather than its implemented USB class,
|
||||
|
@ -244,7 +244,7 @@
|
|||
* - Added new stream creation function to the CDC Class drivers, to easily make standard I/O streams from CDC Class driver instances
|
||||
*
|
||||
* <b>Changed:</b>
|
||||
* - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library
|
||||
* - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for syntax errors in the library
|
||||
* - MIDI device demos now receive MIDI events from the host and display note ON messages via the board LEDs
|
||||
* - Cleanups to the Device mode Mass Storage demo application SCSI routines
|
||||
* - Changed Audio Class driver sample read/write functions to be inline, to reduce the number of cycles needed to transfer
|
||||
|
@ -257,12 +257,12 @@
|
|||
* - Changed MouseHostWithParser demos to check that the report items have a Mouse usage collection as a parent at some point,
|
||||
* to prevent Joysticks from enumerating with the demo
|
||||
* - Corrected the name of the misnamed USB_GetDeviceConfigDescriptor() function to USB_Host_GetDeviceConfigDescriptor().
|
||||
* - Keyboard LowLevel/ClassDriver demos now support multiple simultaneous keypresses (up to 6) per report
|
||||
* - Keyboard LowLevel/ClassDriver demos now support multiple simultaneous key presses (up to 6) per report
|
||||
*
|
||||
* <b>Fixed:</b>
|
||||
* - Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a
|
||||
* device ID (thanks to Andrei Krainev)
|
||||
* - Changed LUFA_VERSION_INTEGER define to use BCD values, to make comparisons eaiser
|
||||
* - Changed LUFA_VERSION_INTEGER define to use BCD values, to make comparisons easier
|
||||
* - Fixed issue in the HID Host class driver's HID_Host_SendReportByID() routine using the incorrect mode (control/pipe)
|
||||
* to send report to the attached device
|
||||
* - Fixed ClassDriver AudioOutput device demo not selecting an audio output mode
|
||||
|
@ -282,7 +282,7 @@
|
|||
* - Added new host mode class drivers and matching demos to the library for rapid application development
|
||||
* - Added flag to the HID report parser to indicate if a device has multiple reports
|
||||
* - Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and
|
||||
* USB_Device_DisableSOFEvents() macros to give bus-synchronised millisecond interrupts when in USB device mode
|
||||
* USB_Device_DisableSOFEvents() macros to give bus-synchronized millisecond interrupts when in USB device mode
|
||||
* - Added new Endpoint_SetEndpointDirection() macro for bidirectional endpoints
|
||||
* - Added new AVRISP project, a LUFA powered clone of the Atmel AVRISP-MKII programmer
|
||||
* - Added ShutDown() functions for all hardware peripheral drivers, so that peripherals can be turned off after use
|
||||
|
@ -302,10 +302,10 @@
|
|||
* - Added return values to the CDC and MIDI class driver transmit functions
|
||||
* - Optimized Endpoint_Read_Word_* and Pipe_Read_Word_* macros to reduce compiled size
|
||||
* - Added non-null function parameter pointer restrictions to USB Class drivers to improve user code reliability
|
||||
* - Added new "Common" section to the class drivers, to hold all mode-independant definitions for clarity
|
||||
* - Added new "Common" section to the class drivers, to hold all mode-independent definitions for clarity
|
||||
* - Moved SCSI command/sense constants into the Mass Storage Class driver, instead of the user-code
|
||||
* - Altered the SCSI commands in the LowLevel Mass Storage Host to save on FLASH space by reducing function calls
|
||||
* - Changed the parameters and behaviour of the USB_GetDeviceConfigDescriptor() function so that it now performs size checks
|
||||
* - Changed the parameters and behavior of the USB_GetDeviceConfigDescriptor() function so that it now performs size checks
|
||||
* and data validations internally, to simplify user code
|
||||
* - Changed HIDParser to only zero out important values in the Parsed HID Report Item Information structure to save cycles
|
||||
* - The HID report parser now always processed FEATURE items - HID_ENABLE_FEATURE_PROCESSING token now has no effect
|
||||
|
@ -314,7 +314,7 @@
|
|||
* - Add in new invalid event hook check targets to project makefiles to produce compilation errors when invalid event names
|
||||
* are used in a project
|
||||
* - The HID Report Parser now gives information on the total length of each report within a HID interface
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_* and
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_* and
|
||||
* USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so both may be used
|
||||
*
|
||||
* <b>Fixed:</b>
|
||||
|
@ -325,7 +325,7 @@
|
|||
* - Fixed HID report parser not resetting the FEATURE item count when a REPORT ID item is encountered
|
||||
* - Fixed USBtoSerial demos not reading in UDR1 when the USART receives data but the USB interface is not enumerated,
|
||||
* causing continuous USART receive interrupts
|
||||
* - Fixed misspelt event name in the Class driver USBtoSerial demo, preventing correct operation
|
||||
* - Fixed misspelled event name in the Class driver USBtoSerial demo, preventing correct operation
|
||||
* - Fixed invalid data being returned when a GetStatus request is issued in Device mode with an unhandled data recipient
|
||||
* - Added hardware USART receive interrupt and software buffering to the Benito project to ensure received data is not
|
||||
* missed or corrupted
|
||||
|
@ -348,7 +348,7 @@
|
|||
* <b>New:</b>
|
||||
* - Added new device class drivers and matching demos to the library for rapid application development
|
||||
* - Added new PrinterHost demo (thanks to John Andrews)
|
||||
* - Added USB Missle Launcher project, submitted by Dave Fletcher
|
||||
* - Added USB Missile Launcher project, submitted by Dave Fletcher
|
||||
* - Added new Benito Arduino Programmer project
|
||||
* - Added incomplete device and host mode demos for later enhancement
|
||||
* - Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%
|
||||
|
@ -375,7 +375,7 @@
|
|||
* - Added 404 Not Found errors to the webserver in the RNDIS demos to indicate invalid URLs
|
||||
*
|
||||
* <b>Changed:</b>
|
||||
* - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)
|
||||
* - Deprecated pseudo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)
|
||||
* - The device-mode CALLBACK_USB_GetDescriptor() function now has an extra parameter so that the memory space in which the requested
|
||||
* descriptor is located can be specified. This means that descriptors can now be located in multiple memory spaces within a device.
|
||||
* - Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality
|
||||
|
@ -390,7 +390,7 @@
|
|||
* the existing Pipe_SetFiniteINRequests() function
|
||||
* - Changed F_CLOCK entries in project makefiles to alias to F_CPU by default, as this is the most common case
|
||||
* - Host mode demos now use sane terminal escape codes, so that text is always readable and events/program output is visually distinguished
|
||||
* from oneanother using foreground colours
|
||||
* from one another using foreground colours
|
||||
* - Internal per-device preprocessing conditions changed to per-device series rather than per-controller group for finer-grain
|
||||
* internal control
|
||||
* - Interrupts are no longer disabled during the processing of Control Requests on the default endpoint while in device mode
|
||||
|
@ -398,13 +398,13 @@
|
|||
* - Removed SINGLE_DEVICE_CONFIGURATION compile time option in favour of the new FIXED_NUM_CONFIGURATIONS option so that the exact number
|
||||
* of device configurations can be defined statically
|
||||
* - Removed VBUS events, as they are already exposed to the user application via the regular device connection and disconnection events
|
||||
* - Renamed and altered existing events to properly seperate out Host and Device mode events
|
||||
* - Renamed and altered existing events to properly separate out Host and Device mode events
|
||||
*
|
||||
* <b>Fixed:</b>
|
||||
* - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix
|
||||
* bootloaders on some of the USB AVR devices where avr-libc erronously defines RAMPZ
|
||||
* bootloaders on some of the USB AVR devices where avr-libc erroneously defines RAMPZ
|
||||
* - Fixes to MassStorageHost for better device compatibility (increase command timeout, change MassStore_WaitForDataReceived()
|
||||
* to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while trasferring data
|
||||
* to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while transferring data
|
||||
* - Make Pipe_ConfigurePipe() mask the given endpoint number against PIPE_EPNUM_MASK to ensure the endpoint IN direction bit is
|
||||
* cleared to prevent endpoint type corruption
|
||||
* - Fixed issue opening CDC-ACM ports on hosts when the CDC device tries to send data before the host has set the line encoding
|
||||
|
@ -423,7 +423,7 @@
|
|||
* - Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered
|
||||
* - Fixed incorrect BUTTONS_BUTTON1 for the STK526 target
|
||||
* - Fixed RNDIS demos freezing when more than one connection was attempted simultaneously, causing memory corruption
|
||||
* - Fixed USBtoSerial demo receiving noise from the USART due to pullup not being enabled
|
||||
* - Fixed USBtoSerial demo receiving noise from the USART due to pull-up not being enabled
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog090605 Version 090605
|
||||
|
@ -439,7 +439,7 @@
|
|||
* interface is skipped
|
||||
* - Clarified the size of library tokens which accept integer values in the Compile Time Tokens page, values now use the smallest datatype
|
||||
* inside the library that is able to hold their defined value to save space
|
||||
* - Removed DESCRIPTOR_ADDRESS() macro as it was largely supurflous and only served to obfuscate code
|
||||
* - Removed DESCRIPTOR_ADDRESS() macro as it was largely superfluous and only served to obfuscate code
|
||||
* - Rewritten event system to remove all macros, to make user code clearer
|
||||
* - Fixed incorrect ENDPOINT_EPNUM_MASK mask preventing endpoints above EP3 from being selected (thanks to Jonathan Oakley)
|
||||
* - Removed STREAM_CALLBACK() macro - callbacks now use regular function definitions to clarify user code
|
||||
|
@ -447,10 +447,10 @@
|
|||
* - USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed
|
||||
* - Fixed incorrect PID value being used in the USBtoSerial project (thanks to Phill)
|
||||
* - Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the
|
||||
* LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs
|
||||
* LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preparation for the new USB class APIs
|
||||
* - Moved out each demos' functionality library files (e.g. Ring Buffer library) to /Lib directories for a better directory structure
|
||||
* - Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt
|
||||
* - Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition
|
||||
* - Fixed possible enumeration errors from spin-loops which may fail to exit if the USB connection is severed before the exit condition
|
||||
* becomes true
|
||||
*
|
||||
*
|
||||
|
@ -500,7 +500,7 @@
|
|||
* device descriptor
|
||||
* - Renamed functions in the HID parser to have a "USB_" prefix and the acronym "HID" in the name
|
||||
* - Fixed incorrect HID interface class and subclass values in the Mouse and KeyboardMouse demos (thanks to Brian Dickman)
|
||||
* - Capitalised the "Descriptor_Search" and "Descriptor_Search_Comp" prefixes of the values in the DSearch_Return_ErrorCodes_t and
|
||||
* - Capitalized the "Descriptor_Search" and "Descriptor_Search_Comp" prefixes of the values in the DSearch_Return_ErrorCodes_t and
|
||||
* DSearch_Comp_Return_ErrorCodes_t enums
|
||||
* - Removed "ERROR" from the enum names in the endpoint and pipe stream error code enums
|
||||
* - Renamed the USB_PowerOnErrorCodes_t enum to USB_InitErrorCodes_t, renamed the POWERON_ERROR_NoUSBModeSpecified enum value to
|
||||
|
@ -607,7 +607,7 @@
|
|||
* - Added new "dfu" and "flip" programming targets to project makefiles
|
||||
* - HID_PARSE_Sucessful enum member typo corrected to HID_PARSE_Successful
|
||||
* - Changed COLLECTION item structures in the HID descriptor parser to include the collection's Usage Page value
|
||||
* - Serial driver now sets Tx line as output, enables pullup on Rx line
|
||||
* - Serial driver now sets Tx line as output, enables pull-up on Rx line
|
||||
* - Fixed smaller USB AVRs raising multiple connection and disconnection events when NO_LIMITED_CONTROLLER_CONNECT is disabled
|
||||
* - Added HOST_DEVICE_SETTLE_DELAY_MS to give the host delay after a device is connected before it is enumerated
|
||||
* - Fixed KeyboardHostWithParser demo linking against the wrong global variables
|
||||
|
@ -724,7 +724,7 @@
|
|||
* - Fixed DFU bootloader EEPROM programming mode wiping first flash page
|
||||
* - Fixed Clear/Set Feature device standard request processing code (fixing MassStorage demo in the process)
|
||||
* - Added support for the ATMEGA16U4 AVR microcontroller
|
||||
* - Library licence changed from LGPLv3 to MIT license
|
||||
* - Library license changed from LGPLv3 to MIT license
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog151 Version 1.5.1 - Released 31st July, 2008
|
||||
|
@ -786,7 +786,7 @@
|
|||
* - Corrected OTG.h is now included when the AVR supports both Host and Device modes, for creating OTG products
|
||||
* - USB_DeviceEnumerationComplete event is now also fired when in device mode and the host has finished its enumeration
|
||||
* - Interrupt driven demos now properly restore previously selected endpoint when ISR is complete
|
||||
* - USB_HOST_TIMEOUT_MS is now overridable in the user project makefile to a custom fixed timeout value
|
||||
* - The value of USB_HOST_TIMEOUT_MS can now be overridden in the user project makefile to a custom fixed timeout value
|
||||
* - Renamed USB_Host_SOFGeneration_* macros to more friendly USB_Host_SuspendBus(), USB_Host_ResumeBus()
|
||||
* and USB_Host_IsBusSuspended()
|
||||
* - Renamed *_*_Is* macros to *_Is* to make all flag checking macros consistent, Pipe_SetInterruptFreq() is now
|
||||
|
@ -916,7 +916,7 @@
|
|||
* \section Sec_ChangeLog120 Version 1.2.0 - Released February 4th, 2008
|
||||
*
|
||||
* - Added USB_DeviceEnumerationComplete event for host mode
|
||||
* - Added new Scheduler_Init routine to preprepare the scheduler, so that tasks can be started and
|
||||
* - Added new Scheduler_Init routine to prepare the scheduler, so that tasks can be started and
|
||||
* stopped before the scheduler has been started (via Scheduler_Start)
|
||||
* - Connection events in both Device and Host mode are now interrupt-driven, allowing the USB management
|
||||
* task to be stopped when the USB is not connected to a host or device
|
||||
|
@ -935,7 +935,7 @@
|
|||
*
|
||||
* - Fixed DCONNI interrupt being enabled accidentally after a USB reset
|
||||
* - Fixed DDISCI interrupt not being disabled when a device is not connected
|
||||
* - Added workaround for powerless pullup devices causing false disconnect interrupts
|
||||
* - Added workaround for powerless pull-up devices causing false disconnect interrupts
|
||||
* - Added USB_DeviceEnumerationFailed event for Host mode
|
||||
* - AVR_HOST_GetDeviceConfigDescriptor routine no longer modifies ConfigSizePtr if a valid buffer
|
||||
* pointer is passed
|
||||
|
@ -947,8 +947,8 @@
|
|||
* started/stopped, as well as USB_InitTaskPointer(), which was breaking dual device/host USB projects
|
||||
* - Changed scheduler to use the task name rather than IDs for setting the task mode, eliminating the
|
||||
* need to have a task ID list
|
||||
* - ID transistion interrupt now raises the appropriate device/host disconnect event if device attached
|
||||
* - Fixed double VBUS change (and VBUS -) event when detatching in device mode
|
||||
* - ID transition interrupt now raises the appropriate device/host disconnect event if device attached
|
||||
* - Fixed double VBUS change (and VBUS -) event when detaching in device mode
|
||||
* - Added ability to disable ANSI terminal codes by the defining of DISABLE_TERMINAL_CODES in makefile
|
||||
* - Removed return from ConfigurePipe and ConfigureEndpoint functions - use Pipe_IsConfigured() and
|
||||
* Endpoint_IsConfigured() after calling the config functions to determine success
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
/** \page Page_TokenSummary Summary of Compile Tokens
|
||||
*
|
||||
* The following lists all the possible tokens which can be defined in a project makefile, and passed to the
|
||||
* compiler via the -D switch, to alter the LUFA library code. These tokens may alter the library behaviour,
|
||||
* compiler via the -D switch, to alter the LUFA library code. These tokens may alter the library behavior,
|
||||
* or remove features unused by a given application in order to save flash space.
|
||||
*
|
||||
*
|
||||
|
@ -28,7 +28,7 @@
|
|||
* By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
|
||||
* communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
|
||||
* Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
|
||||
* mode can be removed to save space in the compiled application by defining this token. When defined, it is still neccesary
|
||||
* mode can be removed to save space in the compiled application by defining this token. When defined, it is still necessary
|
||||
* to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
|
||||
*
|
||||
* <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
|
@ -61,7 +61,7 @@
|
|||
*
|
||||
* <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
|
||||
* keyboard and mouse might use report IDs to seperate the keyboard reports from the mouse reports. In order to determine the size of each
|
||||
* keyboard and mouse might use report IDs to separate the keyboard reports from the mouse reports. In order to determine the size of each
|
||||
* report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
|
||||
* stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
|
||||
* and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
|
||||
|
@ -83,11 +83,11 @@
|
|||
* By default, streams are transferred internally via a loop, sending or receiving one byte per iteration before checking for a bank full
|
||||
* or empty condition. This allows for multiple stream functions to be chained together easily, as there are no alignment issues. However,
|
||||
* this can lead to heavy performance penalties in applications where large streams are used frequently. When this compile time option is
|
||||
* used, bytes are sent or recevied in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
|
||||
* used, bytes are sent or received in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
|
||||
* due to the extra code required to deal with byte alignment.
|
||||
*
|
||||
* <b>USE_STATIC_OPTIONS</b>=<i>x</i> - ( \ref Group_USBManagement ) \n
|
||||
* By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
|
||||
* By default, the USB_Init() function accepts dynamic options at runtime to alter the library behavior, including whether the USB pad
|
||||
* voltage regulator is enabled, and the device speed when in device mode. By defining this token to a mask comprised of the USB options
|
||||
* mask defines usually passed as the Options parameter to USB_Init(), the resulting compiled binary can be decreased in size by removing
|
||||
* the dynamic options code, and replacing it with the statically set options. When defined, the USB_Init() function no longer accepts an
|
||||
|
@ -143,7 +143,7 @@
|
|||
* binary.
|
||||
*
|
||||
* <b>DEVICE_STATE_AS_GPIOR</b> - ( \ref Group_Device ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_DeviceState global, which indicates the current state of
|
||||
* One of the most frequently used global variables in the stack is the USB_DeviceState global, which indicates the current state of
|
||||
* the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
|
@ -161,7 +161,7 @@
|
|||
* endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.
|
||||
*
|
||||
* <b>INTERRUPT_CONTROL_ENDPOINT</b> - ( \ref Group_USBManagement ) \n
|
||||
* Some applications prefer to not call the USB_USBTask() management task reguarly while in device mode, as it can complicate code significantly.
|
||||
* Some applications prefer to not call the USB_USBTask() management task regularly while in device mode, as it can complicate code significantly.
|
||||
* Instead, when device mode is used this token can be passed to the library via the -D switch to allow the library to manage the USB control
|
||||
* endpoint entirely via USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
|
||||
* when in USB device mode.
|
||||
|
@ -181,7 +181,7 @@
|
|||
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Host mode.
|
||||
*
|
||||
* <b>HOST_STATE_AS_GPIOR</b> - ( \ref Group_Host ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_HostState global, which indicates the current state of
|
||||
* One of the most frequently used global variables in the stack is the USB_HostState global, which indicates the current state of
|
||||
* the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
* information on compile-time tuning of the library and other developer-related sections.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_TokenSummary Summary of Compile Time Tokens
|
||||
* - \subpage Page_Migration Migrating from an Older LUFA Version
|
||||
* - \subpage Page_VIDPID Allocated USB VID and PID Values
|
||||
* - \subpage Page_BuildLibrary Building as a Linkable Library
|
||||
* - \subpage Page_WritingBoardDrivers How to Write Custom Board Drivers
|
||||
* - \subpage Page_SoftwareBootloaderStart How to jump to the bootloader in software
|
||||
* - \subpage Page_SchedulerOverview Overview of the Simple LUFA Scheduler (DEPRECATED)
|
||||
* \li \subpage Page_TokenSummary - Summary of Compile Time Tokens
|
||||
* \li \subpage Page_Migration - Migrating from an Older LUFA Version
|
||||
* \li \subpage Page_VIDPID - Allocated USB VID and PID Values
|
||||
* \li \subpage Page_BuildLibrary - Building as a Linkable Library
|
||||
* \li \subpage Page_WritingBoardDrivers - How to Write Custom Board Drivers
|
||||
* \li \subpage Page_SoftwareBootloaderStart - How to jump to the bootloader in software
|
||||
* \li \subpage Page_SchedulerOverview - Overview of the Simple LUFA Scheduler (DEPRECATED)
|
||||
*/
|
||||
|
|
@ -14,11 +14,11 @@
|
|||
* and supporter. Please consider donating a small amount to support this and my future Open Source projects - All
|
||||
* donations are <i>greatly</i> appreciated.
|
||||
*
|
||||
* Note that commercial entities can remove the attribution portion of the LUFA licence by a one-time fee - see
|
||||
* Note that commercial entities can remove the attribution portion of the LUFA license by a one-time fee - see
|
||||
* \ref Page_LicenceInfo for more details (<b>Note: Please do NOT pay this in advance through the donation link below -
|
||||
* contact author for payment details.</b>).
|
||||
*
|
||||
* \image html "http://www.pledgie.com/campaigns/6927.png?skin_name=chrome"
|
||||
* <a href='http://www.pledgie.com/campaigns/6927'>Donate to this project via PayPal</a> - Thanks in Advance!
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
* LUFA applications using different settings, see the subsections below.
|
||||
*
|
||||
* Most of the included demos in the /Demos/ folder come in both ClassDriver and LowLevel varieties. If you are new
|
||||
* to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the premade USB
|
||||
* to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the pre-made USB
|
||||
* Class Drivers (\ref Group_USBClassDrivers) to simplify the use of the standard USB classes in user applications.
|
||||
*
|
||||
* For an overview of the included library applications, bootloaders and demos, see \ref Page_LibraryApps.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_ConfiguringApps How to Configure the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_CompilingApps How to Compile the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_ProgrammingApps How to Program an AVR with the Included Demos, Projects and Bootloaders
|
||||
* \li \subpage Page_ConfiguringApps - How to Configure the Included Demos, Projects and Bootloaders
|
||||
* \li \subpage Page_CompilingApps - How to Compile the Included Demos, Projects and Bootloaders
|
||||
* \li \subpage Page_ProgrammingApps - How to Program an AVR with the Included Demos, Projects and Bootloaders
|
||||
*/
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
*
|
||||
* - <b>Clean API:</b>
|
||||
* 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
|
||||
* API improvements, the API is arguably much nicer to use and easier to understand than the equivelent Atmel stack code. LUFA's
|
||||
* API improvements, the API is arguably much nicer to use and easier to understand than the equivalent Atmel stack code. LUFA's
|
||||
* API is also more complete than the Atmel stack, and contains many features to speed up application development.
|
||||
*
|
||||
* - <b>Full Hardware Support:</b>
|
||||
|
@ -43,4 +43,4 @@
|
|||
* As many people are now using LUFA, there is a community being built around it. You can get answers to your LUFA related questions
|
||||
* quickly by either emailing the library author (subject to author's schedule) or by posting to the official LUFA support mailing list.
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
/** \page Page_LibraryApps Included Library Applications
|
||||
*
|
||||
* The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory. Within this
|
||||
* directory the demos are seperated by USB mode (Device, Host, OTG) and further seperated by the use or non-use of the
|
||||
* directory the demos are separated by USB mode (Device, Host, OTG) and further separated by the use or non-use of the
|
||||
* library USB Class drivers (which abstract out the actual implementation of the USB classes to simplify development even
|
||||
* further at the expense of a loss of flexibility).
|
||||
*
|
||||
|
@ -111,4 +111,4 @@
|
|||
* - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
|
||||
*
|
||||
* </small>
|
||||
*/
|
||||
*/
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
* Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n
|
||||
* Author's Website: http://www.fourwalledcubicle.com \n
|
||||
* Development Blog: http://www.fourwalledcubicle.com/blog \n
|
||||
* Commercial Licences: http://fourwalledcubicle.com/PurchaseLUFA.php \n
|
||||
* Commercial Licenses: http://fourwalledcubicle.com/PurchaseLUFA.php \n
|
||||
*
|
||||
* \section Sec_ProjectHelp Assistance With LUFA
|
||||
* Discussion Group: http://groups.google.com/group/myusb-support-list \n
|
||||
|
@ -32,4 +32,4 @@
|
|||
* \section Sec_USBResources USB Resources
|
||||
* USB-IF Website: http://www.usb.org \n
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* \page Page_LicenceInfo Source Code Licence
|
||||
* \page Page_LicenseInfo Source Code License
|
||||
*
|
||||
* The LUFA library is currently released under the MIT licence, included below.
|
||||
* The LUFA library is currently released under the MIT license, included below.
|
||||
*
|
||||
* Commercial entities can opt out of the public disclosure clause in this license
|
||||
* for a one-time US$1500 payment. This provides a non-exclusive modified MIT licensed which
|
||||
* allows for the free use of the LUFA library, bootloaders and (where the sole copyright
|
||||
* is attributed to Dean Camera) demos without public disclosure within an organisation, in
|
||||
* is attributed to Dean Camera) demos without public disclosure within an organization, in
|
||||
* addition to three free hours of consultation with the library author, and priority support.
|
||||
* Please contact the author for more information via the address shown on on \ref Page_Resources.
|
||||
*
|
|
@ -36,10 +36,10 @@
|
|||
* and open source LUFA powered projects.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
|
||||
* - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
|
||||
* - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
|
||||
* - \subpage Page_LicenceInfo Project source licence and commercial use information
|
||||
* - \subpage Page_Donating Donating to support this project
|
||||
* - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
|
||||
* \li \subpage Page_WhyUseLUFA - What are the advantages of using LUFA?
|
||||
* \li \subpage Page_LUFAvsAtmelStack - How does LUFA compare to the Atmel USB AVR stack?
|
||||
* \li \subpage Page_AlternativeStacks - Alternative USB AVR Stacks
|
||||
* \li \subpage Page_LicenceInfo - Project source license and commercial use information
|
||||
* \li \subpage Page_Donating - Donating to support this project
|
||||
* \li \subpage Page_LibraryApps - Overview of included Demos, Bootloaders and Projects
|
||||
*/
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Projects must update their makefile SRC values accordingly.
|
||||
* - The HID Device Class driver's function signature for the CALLBACK_HID_Device_ProcessHIDReport() function has been changed, to
|
||||
* allow for a new ReportType parameter. This new parameter must be added in all user applications using the Device mode HID Class
|
||||
* Driver, but may be ingnored unless Host-to-Device FEATURE HID reports are used.
|
||||
* Driver, but may be ignored unless Host-to-Device FEATURE HID reports are used.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
|
||||
|
@ -51,7 +51,7 @@
|
|||
* <b>Host Mode</b>
|
||||
* - The MIDI Host Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* pipe bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* pipe bank is full. To override this new behavior and revert to the previous behavior, the user application may manually
|
||||
* flush the queued event(s) to the device by calling \ref MIDI_Host_Flush().
|
||||
* - The Pipe_IsEndpointBound() function now takes the endpoint's direction into account, by checking if the MSB of the endpoint's address
|
||||
* is set to denote IN endpoints. If the previous functionality where the direction is to be discounted is required, mask the endpoint
|
||||
|
@ -60,7 +60,7 @@
|
|||
* <b>Device Mode</b>
|
||||
* - The MIDI Device Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* endpoint bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* endpoint bank is full. To override this new behavior and revert to the previous behavior, the user application may manually
|
||||
* flush the queued event(s) to the host by calling \ref MIDI_Device_Flush().
|
||||
*
|
||||
* \section Sec_Migration091223 Migrating from 091122 to 091223
|
||||
|
@ -70,9 +70,9 @@
|
|||
* now named \ref SImage_Host_USBTask() and \ref SImage_Host_ConfigurePipes() respectively.
|
||||
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to \ref HOST_SENDCONTROL_DeviceDisconnected to be in
|
||||
* line with the rest of the library error codes.
|
||||
* - The HID Parser item usages no longer contain seperate minimum and maximum values, as this was a violation of the HID
|
||||
* - The HID Parser item usages no longer contain separate minimum and maximum values, as this was a violation of the HID
|
||||
* specification. Instead, the values are distributed evenly across each item as its usage value, to ensure that all items
|
||||
* can be distinguished from oneanother.
|
||||
* can be distinguished from one-another.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to
|
||||
|
@ -96,27 +96,27 @@
|
|||
* call to SPI_Init() before using the Dataflash driver
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The USB_GetDeviceConfigDescriptor() function's parameters and behaviour has changed; the user is required to
|
||||
* - The USB_GetDeviceConfigDescriptor() function's parameters and behavior has changed; the user is required to
|
||||
* preallocate the largest allowable buffer, and pass the size of the buffer to the function. This allows for a single
|
||||
* call to the function to retrieve, size check and validate the Configuration Descriptor rather than having the user
|
||||
* application perform these intermediatary steps.
|
||||
* application perform these intermediary steps.
|
||||
* - The HID report parser now requires a mandatory callback in the user code, to filter only the items the application
|
||||
* is interested in into the processed HID report item structure to save RAM. See \ref CALLBACK_HIDParser_FilterHIDReportItem().
|
||||
* - The HID report parser now always parses FEATURE and always ignores constant-data items - the HID_ENABLE_FEATURE_PROCESSING
|
||||
* and HID_INCLUDE_CONSTANT_DATA_ITEMS compile time tokens now have no effect.
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* \section Sec_Migration090810 Migrating from 090605 to 090810
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.
|
||||
* - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abstracted loop and caused much confusion.
|
||||
* User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
|
||||
* release.
|
||||
* - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
|
||||
|
@ -142,7 +142,7 @@
|
|||
* state.
|
||||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_HostState explicitly to ensure the host is
|
||||
* in the desired state instead.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* - The USB event names have been changed and their firing conditions changed to properly separate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
|
@ -153,7 +153,7 @@
|
|||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_DeviceState explicitly to ensure the device
|
||||
* is in the desired state instead.
|
||||
* - The VBUS events have been removed, as they are already exposed to the user via the USB_Connect and USB_Disconnect events.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* - The USB event names have been changed and their firing conditions changed to properly separate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions. *
|
||||
*
|
||||
* \section Sec_Migration090605 Migrating from 090510 to 090605
|
||||
|
@ -300,7 +300,7 @@
|
|||
* - The previous SPI_SendByte() functionality is now located in SPI_TransferByte(). SPI_SendByte() now discards the return byte
|
||||
* for speed, to compliment the new SPI_ReceiveByte() function. If two-way SPI transfers are required, calls to SPI_SendByte()
|
||||
* should be changed to SPI_TransferByte().
|
||||
* - The serial driver now sets the Tx line as an output explicitly, and enables the pullup of the Rx line.
|
||||
* - The serial driver now sets the Tx line as an output explicitly, and enables the pull-up of the Rx line.
|
||||
* - The Serial_Init() and SerialStream_Init() functions now take a second DoubleSpeed parameter, which indicates if the USART
|
||||
* should be initialized in double speed mode - useful in some circumstances for attaining baud rates not usually possible at
|
||||
* the given AVR clock speed.
|
||||
|
@ -405,7 +405,7 @@
|
|||
*
|
||||
* <b>Library Demos</b>
|
||||
* - The RNDIS demo application has been updated so that it is functional on Linux under earlier implementations
|
||||
* of the RNDIS specification, which had non-standard behaviour. Projects built upon the demo should upgrade
|
||||
* of the RNDIS specification, which had non-standard behavior. Projects built upon the demo should upgrade
|
||||
* to the latest code.
|
||||
* - The DFU class bootloader has had several bugs corrected in this release. It is recommended that where
|
||||
* possible any existing devices upgrade to the latest bootloader code.
|
||||
|
@ -462,7 +462,7 @@
|
|||
* appropriate. It fires in an identical manner to the previously named event, thus the only change to be made
|
||||
* is the event name itself in the user project.
|
||||
* - The USB_Descriptor_Language_t structure no longer exists in StdDescriptors.h, as this was a
|
||||
* pseudo-descriptor modelled on the string descriptor. It is replaced by the true USB_Descriptor_String_t type
|
||||
* pseudo-descriptor modeled on the string descriptor. It is replaced by the true USB_Descriptor_String_t type
|
||||
* descriptor as indicated in the USB specification, thus all device code must be updated accordingly.
|
||||
* - The names of several Endpoint macros have been changed to be more consistent with the rest of the library,
|
||||
* with no implementation changes. This means that existing code can be altered to use the new macro names
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* uint32_t Boot_Key ATTR_NO_INIT;
|
||||
*
|
||||
* #define MAGIC_BOOT_KEY 0xDC42ACCA
|
||||
* #define BOOTLOADER_START_ADDRESS ({FLASH_SIZE_BYTES} - {BOOTLOADER_SEC_SIZE_BYTES})
|
||||
* #define BOOTLOADER_START_ADDRESS (FLASH_SIZE_BYTES - BOOTLOADER_SEC_SIZE_BYTES)
|
||||
*
|
||||
* void Bootloader_Jump_Check(void) ATTR_INIT_SECTION(3);
|
||||
* void Bootloader_Jump_Check(void)
|
||||
|
@ -50,7 +50,7 @@
|
|||
* // Disable all interrupts
|
||||
* cli();
|
||||
*
|
||||
* // Wait two seconds for the USB detatchment to register on the host
|
||||
* // Wait two seconds for the USB detachment to register on the host
|
||||
* for (uint8_t i = 0; i < 128; i++)
|
||||
* _delay_ms(16);
|
||||
*
|
||||
|
@ -61,8 +61,8 @@
|
|||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Note that the bootloader magic key can be any arbitrary value. The {FLASH_SIZE_BYTES} and
|
||||
* {BOOTLOADER_SEC_SIZE_BYTES} tokens should be replaced with the total flash size of the AVR
|
||||
* Note that the bootloader magic key can be any arbitrary value. The <em>FLASH_SIZE_BYTES</em> and
|
||||
* <em>BOOTLOADER_SEC_SIZE_BYTES</em> tokens should be replaced with the total flash size of the AVR
|
||||
* in bytes, and the allocated size of the bootloader section for the target AVR.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
|
|
@ -36,11 +36,11 @@
|
|||
* requires less FLASH space than Atmel's stack, meaning more space for the user application*.
|
||||
*
|
||||
* - <b>Support:</b>
|
||||
* Since many people are now using LUFA in their own projects, you can take advantage of other's knowedge when you run
|
||||
* into difficulties or need some advice. In addition, you can also email the library author to recieve personalised
|
||||
* Since many people are now using LUFA in their own projects, you can take advantage of other's knowledge when you run
|
||||
* into difficulties or need some advice. In addition, you can also email the library author to receive personalized
|
||||
* support when you need it (subject to author's schedule).
|
||||
*
|
||||
* <small>* Atmel Stack Mouse Device Demo 4292 bytes, LUFA Mouse Low Level Device Demo 3296 bytes, under identical build
|
||||
* environments</small>
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -199,7 +199,7 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16
|
|||
XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE);
|
||||
XPROGTarget_SendByte(ReadSize - 1);
|
||||
|
||||
/* Send a LD command with indirect access and postincrement to read out the bytes */
|
||||
/* Send a LD command with indirect access and post-increment to read out the bytes */
|
||||
XPROGTarget_SendByte(PDI_CMD_LD | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE);
|
||||
while (ReadSize-- && TimeoutMSRemaining)
|
||||
*(ReadBuffer++) = XPROGTarget_ReceiveByte();
|
||||
|
@ -286,7 +286,7 @@ bool XMEGANVM_WritePageMemory(const uint8_t WriteBuffCommand, const uint8_t Eras
|
|||
XPROGTarget_SendByte(PDI_CMD_REPEAT | PDI_DATSIZE_1BYTE);
|
||||
XPROGTarget_SendByte(WriteSize - 1);
|
||||
|
||||
/* Send a ST command with indirect access and postincrement to write the bytes */
|
||||
/* Send a ST command with indirect access and post-increment to write the bytes */
|
||||
XPROGTarget_SendByte(PDI_CMD_ST | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE);
|
||||
while (WriteSize--)
|
||||
XPROGTarget_SendByte(*(WriteBuffer++));
|
||||
|
|
|
@ -256,7 +256,7 @@ static void XPROGProtocol_Erase(void)
|
|||
break;
|
||||
}
|
||||
|
||||
/* Erase the target memory, indicate timeout if ocurred */
|
||||
/* Erase the target memory, indicate timeout if occurred */
|
||||
if (!(XMEGANVM_EraseMemory(EraseCommand, Erase_XPROG_Params.Address)))
|
||||
ReturnStatus = XPRG_ERR_TIMEOUT;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ static void XPROGProtocol_Erase(void)
|
|||
else
|
||||
EraseCommand = TINY_NVM_CMD_SECTIONERASE;
|
||||
|
||||
/* Erase the target memory, indicate timeout if ocurred */
|
||||
/* Erase the target memory, indicate timeout if occurred */
|
||||
if (!(TINYNVM_EraseMemory(EraseCommand, Erase_XPROG_Params.Address)))
|
||||
ReturnStatus = XPRG_ERR_TIMEOUT;
|
||||
}
|
||||
|
|
|
@ -54,12 +54,12 @@ static uint8_t RX_Data;
|
|||
/** Initializes the software UART, ready for data transmission and reception into the global ring buffers. */
|
||||
void SoftUART_Init(void)
|
||||
{
|
||||
/* Set TX pin to output high, enable RX pullup */
|
||||
/* Set TX pin to output high, enable RX pull-up */
|
||||
STXPORT |= (1 << STX);
|
||||
STXDDR |= (1 << STX);
|
||||
SRXPORT |= (1 << SRX);
|
||||
|
||||
/* Enable INT0 for the detection of incomming start bits that signal the start of a byte */
|
||||
/* Enable INT0 for the detection of incoming start bits that signal the start of a byte */
|
||||
EICRA = (1 << ISC01);
|
||||
EIMSK = (1 << INT0);
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ USB_Descriptor_String_t PROGMEM USART_ProductString =
|
|||
.UnicodeString = L"LUFA XPLAIN Bridge"
|
||||
};
|
||||
|
||||
/** Descriptior retrieval function for the USART Bridge descriptors. This function is in turn called by the GetDescriptor
|
||||
/** Descriptor retrieval function for the USART Bridge descriptors. This function is in turn called by the GetDescriptor
|
||||
* callback function in the main source file, to retrieve the device's descriptors when in USART bridge mode.
|
||||
*/
|
||||
uint16_t USART_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
|
||||
|
|
|
@ -156,7 +156,7 @@ void SetupHardware(void)
|
|||
MCUCR |= (1 << JTD);
|
||||
MCUCR |= (1 << JTD);
|
||||
|
||||
/* Enable pullup on the JTAG TDI pin so we can use it to select the mode */
|
||||
/* Enable pull-up on the JTAG TDI pin so we can use it to select the mode */
|
||||
PORTF |= (1 << 7);
|
||||
_delay_ms(10);
|
||||
|
||||
|
|
Loading…
Reference in New Issue