Commit 8f981b5f authored by Dean Camera's avatar Dean Camera
Browse files

Better documentation for the ANSI terminal escape codes header.

Organise the current version changelog better to group core and non-core changes together.
parent 8f7437dd
...@@ -63,143 +63,159 @@ ...@@ -63,143 +63,159 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Macros: */ /* Macros: */
#if !defined(DISABLE_TERMINAL_CODES) #if !defined(DISABLE_TERMINAL_CODES)
/** Creates an ANSI escape sequence with the payload specified by "c". /** Creates an ANSI escape sequence with the specified payload.
* *
* \param[in] c Payload to encode as an ANSI escape sequence, a ESC_* mask. * \param[in] EscapeSeq Payload to encode as an ANSI escape sequence, a ESC_* mask.
*/ */
#define ANSI_ESCAPE_SEQUENCE(c) "\33[" c #define ANSI_ESCAPE_SEQUENCE(EscapeSeq) "\33[" EscapeSeq
#else #else
#define ANSI_ESCAPE_SEQUENCE(c) #define ANSI_ESCAPE_SEQUENCE(EscapeSeq)
#endif #endif
/** \name Text Display Modifier Escape Sequences */ /** \name Text Display Modifier Escape Sequences */
//@{ //@{
/** Turns on bold so that any following text is printed to the terminal in bold. */ /** Turns on bold so that any following text is printed to the terminal in bold. */
#define ESC_BOLD_ON ANSI_ESCAPE_SEQUENCE("1m") #define ESC_BOLD_ON ANSI_ESCAPE_SEQUENCE("1m")
/** Turns on italics so that any following text is printed to the terminal in italics. */ /** Turns on italics so that any following text is printed to the terminal in italics. */
#define ESC_ITALICS_ON ANSI_ESCAPE_SEQUENCE("3m") #define ESC_ITALICS_ON ANSI_ESCAPE_SEQUENCE("3m")
/** Turns on underline so that any following text is printed to the terminal underlined. */ /** Turns on underline so that any following text is printed to the terminal underlined. */
#define ESC_UNDERLINE_ON ANSI_ESCAPE_SEQUENCE("4m") #define ESC_UNDERLINE_ON ANSI_ESCAPE_SEQUENCE("4m")
/** Turns on inverse so that any following text is printed to the terminal in inverted colours. */ /** Turns on inverse so that any following text is printed to the terminal in inverted colours. */
#define ESC_INVERSE_ON ANSI_ESCAPE_SEQUENCE("7m") #define ESC_INVERSE_ON ANSI_ESCAPE_SEQUENCE("7m")
/** Turns on strikethrough so that any following text is printed to the terminal with a line through the /** Turns on strikethrough so that any following text is printed to the terminal with a line through the
* center. * center.
*/ */
#define ESC_STRIKETHROUGH_ON ANSI_ESCAPE_SEQUENCE("9m") #define ESC_STRIKETHROUGH_ON ANSI_ESCAPE_SEQUENCE("9m")
/** Turns off bold so that any following text is printed to the terminal in non bold. */ /** Turns off bold so that any following text is printed to the terminal in non bold. */
#define ESC_BOLD_OFF ANSI_ESCAPE_SEQUENCE("22m") #define ESC_BOLD_OFF ANSI_ESCAPE_SEQUENCE("22m")
/** Turns off italics so that any following text is printed to the terminal in non italics. */ /** Turns off italics so that any following text is printed to the terminal in non italics. */
#define ESC_ITALICS_OFF ANSI_ESCAPE_SEQUENCE("23m") #define ESC_ITALICS_OFF ANSI_ESCAPE_SEQUENCE("23m")
/** Turns off underline so that any following text is printed to the terminal non underlined. */ /** Turns off underline so that any following text is printed to the terminal non underlined. */
#define ESC_UNDERLINE_OFF ANSI_ESCAPE_SEQUENCE("24m") #define ESC_UNDERLINE_OFF ANSI_ESCAPE_SEQUENCE("24m")
/** Turns off inverse so that any following text is printed to the terminal in non inverted colours. */ /** Turns off inverse so that any following text is printed to the terminal in non inverted colours. */
#define ESC_INVERSE_OFF ANSI_ESCAPE_SEQUENCE("27m") #define ESC_INVERSE_OFF ANSI_ESCAPE_SEQUENCE("27m")
/** Turns off strikethrough so that any following text is printed to the terminal without a line through /** Turns off strikethrough so that any following text is printed to the terminal without a line through
* the center. * the center.
*/ */
#define ESC_STRIKETHROUGH_OFF ANSI_ESCAPE_SEQUENCE("29m") #define ESC_STRIKETHROUGH_OFF ANSI_ESCAPE_SEQUENCE("29m")
//@} //@}
/** \name Text Colour Control Sequences */ /** \name Text Colour Control Sequences */
//@{ //@{
/** Sets the foreground (text) colour to black. */ /** Sets the foreground (text) colour to black. */
#define ESC_FG_BLACK ANSI_ESCAPE_SEQUENCE("30m") #define ESC_FG_BLACK ANSI_ESCAPE_SEQUENCE("30m")
/** Sets the foreground (text) colour to red. */ /** Sets the foreground (text) colour to red. */
#define ESC_FG_RED ANSI_ESCAPE_SEQUENCE("31m") #define ESC_FG_RED ANSI_ESCAPE_SEQUENCE("31m")
/** Sets the foreground (text) colour to green. */ /** Sets the foreground (text) colour to green. */
#define ESC_FG_GREEN ANSI_ESCAPE_SEQUENCE("32m") #define ESC_FG_GREEN ANSI_ESCAPE_SEQUENCE("32m")
/** Sets the foreground (text) colour to yellow. */ /** Sets the foreground (text) colour to yellow. */
#define ESC_FG_YELLOW ANSI_ESCAPE_SEQUENCE("33m") #define ESC_FG_YELLOW ANSI_ESCAPE_SEQUENCE("33m")
/** Sets the foreground (text) colour to blue. */ /** Sets the foreground (text) colour to blue. */
#define ESC_FG_BLUE ANSI_ESCAPE_SEQUENCE("34m") #define ESC_FG_BLUE ANSI_ESCAPE_SEQUENCE("34m")
/** Sets the foreground (text) colour to magenta. */ /** Sets the foreground (text) colour to magenta. */
#define ESC_FG_MAGENTA ANSI_ESCAPE_SEQUENCE("35m") #define ESC_FG_MAGENTA ANSI_ESCAPE_SEQUENCE("35m")
/** Sets the foreground (text) colour to cyan. */ /** Sets the foreground (text) colour to cyan. */
#define ESC_FG_CYAN ANSI_ESCAPE_SEQUENCE("36m") #define ESC_FG_CYAN ANSI_ESCAPE_SEQUENCE("36m")
/** Sets the foreground (text) colour to white. */ /** Sets the foreground (text) colour to white. */
#define ESC_FG_WHITE ANSI_ESCAPE_SEQUENCE("37m") #define ESC_FG_WHITE ANSI_ESCAPE_SEQUENCE("37m")
/** Sets the foreground (text) colour to the terminal's default. */ /** Sets the foreground (text) colour to the terminal's default. */
#define ESC_FG_DEFAULT ANSI_ESCAPE_SEQUENCE("39m") #define ESC_FG_DEFAULT ANSI_ESCAPE_SEQUENCE("39m")
/** Sets the text background colour to black. */ /** Sets the text background colour to black. */
#define ESC_BG_BLACK ANSI_ESCAPE_SEQUENCE("40m") #define ESC_BG_BLACK ANSI_ESCAPE_SEQUENCE("40m")
/** Sets the text background colour to red. */ /** Sets the text background colour to red. */
#define ESC_BG_RED ANSI_ESCAPE_SEQUENCE("41m") #define ESC_BG_RED ANSI_ESCAPE_SEQUENCE("41m")
/** Sets the text background colour to green. */ /** Sets the text background colour to green. */
#define ESC_BG_GREEN ANSI_ESCAPE_SEQUENCE("42m") #define ESC_BG_GREEN ANSI_ESCAPE_SEQUENCE("42m")
/** Sets the text background colour to yellow. */ /** Sets the text background colour to yellow. */
#define ESC_BG_YELLOW ANSI_ESCAPE_SEQUENCE("43m") #define ESC_BG_YELLOW ANSI_ESCAPE_SEQUENCE("43m")
/** Sets the text background colour to blue. */ /** Sets the text background colour to blue. */
#define ESC_BG_BLUE ANSI_ESCAPE_SEQUENCE("44m") #define ESC_BG_BLUE ANSI_ESCAPE_SEQUENCE("44m")
/** Sets the text background colour to magenta. */ /** Sets the text background colour to magenta. */
#define ESC_BG_MAGENTA ANSI_ESCAPE_SEQUENCE("45m") #define ESC_BG_MAGENTA ANSI_ESCAPE_SEQUENCE("45m")
/** Sets the text background colour to cyan. */ /** Sets the text background colour to cyan. */
#define ESC_BG_CYAN ANSI_ESCAPE_SEQUENCE("46m") #define ESC_BG_CYAN ANSI_ESCAPE_SEQUENCE("46m")
/** Sets the text background colour to white. */ /** Sets the text background colour to white. */
#define ESC_BG_WHITE ANSI_ESCAPE_SEQUENCE("47m") #define ESC_BG_WHITE ANSI_ESCAPE_SEQUENCE("47m")
/** Sets the text background colour to the terminal's default. */ /** Sets the text background colour to the terminal's default. */
#define ESC_BG_DEFAULT ANSI_ESCAPE_SEQUENCE("49m") #define ESC_BG_DEFAULT ANSI_ESCAPE_SEQUENCE("49m")
//@} //@}
/** \name Cursor Positioning Control Sequences */ /** \name Cursor Positioning Control Sequences */
//@{ //@{
/** Sets the cursor position to the given line and column. */ /** Saves the current cursor position so that it may be restored with \ref ESC_CURSOR_POS_RESTORE. */
#define ESC_CURSOR_POS(L, C) ANSI_ESCAPE_SEQUENCE(#L ";" #C "H") #define ESC_CURSOR_POS_SAVE ANSI_ESCAPE_SEQUENCE("s")
/** Moves the cursor up the given number of lines. */ /** Restores the cursor position to the last position saved with \ref ESC_CURSOR_POS_SAVE. */
#define ESC_CURSOR_UP(L) ANSI_ESCAPE_SEQUENCE(#L "A") #define ESC_CURSOR_POS_RESTORE ANSI_ESCAPE_SEQUENCE("u")
/** Moves the cursor down the given number of lines. */ /** Sets the cursor position to the given line and column.
#define ESC_CURSOR_DOWN(L) ANSI_ESCAPE_SEQUENCE(#L "B") *
* \param[in] Line Line number to position the cursor at
* \param[in] Column Column number to position the cursor at
*/
#define ESC_CURSOR_POS(Line, Column) ANSI_ESCAPE_SEQUENCE(#Line ";" #Column "H")
/** Moves the cursor to the right the given number of columns. */ /** Moves the cursor up the given number of lines.
#define ESC_CURSOR_FORWARD(C) ANSI_ESCAPE_SEQUENCE(#C "C") *
* \param[in] Lines Number of lines to move the cursor position
*/
#define ESC_CURSOR_UP(Lines) ANSI_ESCAPE_SEQUENCE(#Lines "A")
/** Moves the cursor to the left the given number of columns. */ /** Moves the cursor down the given number of lines.
#define ESC_CURSOR_BACKWARD(C) ANSI_ESCAPE_SEQUENCE(#C "D") *
* \param[in] Lines Number of lines to move the cursor position
*/
#define ESC_CURSOR_DOWN(Lines) ANSI_ESCAPE_SEQUENCE(#Lines "B")
/** Saves the current cursor position so that it may be restored with \ref ESC_CURSOR_POS_RESTORE. */ /** Moves the cursor to the right the given number of columns.
#define ESC_CURSOR_POS_SAVE ANSI_ESCAPE_SEQUENCE("s") *
* \param[in] Columns Number of columns to move the cursor position
*/
#define ESC_CURSOR_FORWARD(Columns) ANSI_ESCAPE_SEQUENCE(#Columns "C")
/** Restores the cursor position to the last position saved with \ref ESC_CURSOR_POS_SAVE. */ /** Moves the cursor to the left the given number of columns.
#define ESC_CURSOR_POS_RESTORE ANSI_ESCAPE_SEQUENCE("u") *
* \param[in] Columns Number of columns to move the cursor position
*/
#define ESC_CURSOR_BACKWARD(Columns) ANSI_ESCAPE_SEQUENCE(#Columns "D")
//@} //@}
/** \name Miscellaneous Control Sequences */ /** \name Miscellaneous Control Sequences */
//@{ //@{
/** Resets any escape sequence modifiers back to their defaults. */ /** Resets any escape sequence modifiers back to their defaults. */
#define ESC_RESET ANSI_ESCAPE_SEQUENCE("0m") #define ESC_RESET ANSI_ESCAPE_SEQUENCE("0m")
/** Erases the entire display, returning the cursor to the top left. */ /** Erases the entire display, returning the cursor to the top left. */
#define ESC_ERASE_DISPLAY ANSI_ESCAPE_SEQUENCE("2J") #define ESC_ERASE_DISPLAY ANSI_ESCAPE_SEQUENCE("2J")
/** Erases the current line, returning the cursor to the far left. */ /** Erases the current line, returning the cursor to the far left. */
#define ESC_ERASE_LINE ANSI_ESCAPE_SEQUENCE("K") #define ESC_ERASE_LINE ANSI_ESCAPE_SEQUENCE("K")
//@} //@}
#endif #endif
......
...@@ -8,101 +8,107 @@ ...@@ -8,101 +8,107 @@
* *
* \section Sec_ChangeLogXXXXXX Version XXXXXX * \section Sec_ChangeLogXXXXXX Version XXXXXX
* <b>New:</b> * <b>New:</b>
* - Added new SCSI_ASENSE_NOT_READY_TO_READY_CHANGE constant to the Mass Storage class driver, to indicate when a previously * - Core:
* not ready removable medium has now become ready for the host's use (thanks to Martin Degelsegger) * - Added new SCSI_ASENSE_NOT_READY_TO_READY_CHANGE constant to the Mass Storage class driver, to indicate when a previously
* - Moved the Pipe and Endpoint stream related code to two new USB library core source files EndpointStream.c and PipeStream.c * not ready removable medium has now become ready for the host's use (thanks to Martin Degelsegger)
* - Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number * - Moved the Pipe and Endpoint stream related code to two new USB library core source files EndpointStream.c and PipeStream.c
* - Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application * - Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number
* handling of USB Start of Frame events while in USB Host mode * - Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application
* - Added new PRNT_Host_BytesReceived(), PRNT_Host_ReceiveByte(), PRNT_Host_SendByte() and PRNT_Host_Flush() functions to the * handling of USB Start of Frame events while in USB Host mode
* Print Host Class driver * - Added new PRNT_Host_BytesReceived(), PRNT_Host_ReceiveByte(), PRNT_Host_SendByte() and PRNT_Host_Flush() functions to the
* - Added class specific descriptor alternative struct type defines with standard USB-IF element naming * Print Host Class driver
* - Added new project makefile template to the library and moved board driver stub files into in a new "CodeTemplates" directory * - Added class specific descriptor alternative struct type defines with standard USB-IF element naming
* - Added board hardware driver support for the Olimex AVR-USB-162 development board (thanks to Steve Fawcett) * - Added new project makefile template to the library and moved board driver stub files into in a new "CodeTemplates" directory
* - Added board hardware driver support for the Kernel Concepts USBFOO development board * - Added board hardware driver support for the Olimex AVR-USB-162 development board (thanks to Steve Fawcett)
* - Added board hardware driver support for the Linnix UDIP development board * - Added board hardware driver support for the Kernel Concepts USBFOO development board
* - Added board hardware driver support for the Busware BUI development board * - Added board hardware driver support for the Linnix UDIP development board
* - Added board hardware driver support for the Arduino Uno development board * - Added board hardware driver support for the Busware BUI development board
* - Added board hardware driver support for the Busware CUL V3 868MHZ radio board (thanks to Dirk Tostmann) * - Added board hardware driver support for the Arduino Uno development board
* - Added board hardware driver support for the Blackcat USB JTAG board (thanks to the PSGroove team) * - Added board hardware driver support for the Busware CUL V3 868MHZ radio board (thanks to Dirk Tostmann)
* - Added board hardware driver support for the Maximus board (thanks to the PSGroove team) * - Added board hardware driver support for the Blackcat USB JTAG board (thanks to the PSGroove team)
* - Added board hardware driver support for the Minimus board (thanks to the PSGroove team) * - Added board hardware driver support for the Maximus board (thanks to the PSGroove team)
* - Added board hardware driver support for the Adafruit U4 breakout board * - Added board hardware driver support for the Minimus board (thanks to the PSGroove team)
* - Added default test tone generation mode to the Device mode AudioInput demos * - Added board hardware driver support for the Adafruit U4 breakout board
* - Added new NO_CLASS_DRIVER_AUTOFLUSH compile time option to disable automatic flushing of interfaces when the USB management * - Added new NO_CLASS_DRIVER_AUTOFLUSH compile time option to disable automatic flushing of interfaces when the USB management
* tasks for each driver is called * tasks for each driver is called
* - Added standard keyboard HID report scancode defines (thanks to Laszlo Monda) * - Added standard keyboard HID report scancode defines (thanks to Laszlo Monda)
* - Added new Pipe_GetBusyBanks(), Endpoint_GetBusyBanks() and Endpoint_AbortPendingIN() functions * - Added new Pipe_GetBusyBanks(), Endpoint_GetBusyBanks() and Endpoint_AbortPendingIN() functions
* - Added new NO_BLOCK_SUPPORT, NO_EEPROM_BYTE_SUPPORT, NO_FLASH_BYTE_SUPPORT and NO_LOCK_BYTE_WRITE_SUPPORT compile time options to the * - Library Applications:
* CDC class bootloader * - Added default test tone generation mode to the Device mode AudioInput demos
* - Added new XCK_RESCUE_CLOCK_ENABLE compile time option to the AVRISP-MKII clone programmer project (thanks to Tom Light) * - Added new NO_BLOCK_SUPPORT, NO_EEPROM_BYTE_SUPPORT, NO_FLASH_BYTE_SUPPORT and NO_LOCK_BYTE_WRITE_SUPPORT compile time options to the
* CDC class bootloader
* - Added new XCK_RESCUE_CLOCK_ENABLE compile time option to the AVRISP-MKII clone programmer project (thanks to Tom Light)
* *
* <b>Changed:</b> * <b>Changed:</b>
* - Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions * - Core:
* depending of if the given bank size is a compile time constant, as the compiler does a better job of optimizing * - Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions
* with basic code * depending of if the given bank size is a compile time constant, as the compiler does a better job of optimizing
* - Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints * with basic code
* - Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant * - Changed the signature of the CALLBACK_USB_GetDescriptor() callback function so that the descriptor pointer is const, to remove
* SCSI_Codes.h file as these values are part of the MassStorage Class Driver * the need for extra casting inside the callback (thanks to Jonathan Kollasch)
* - Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel * - Reduced HOST_DEVICE_SETTLE_DELAY_MS to 1000ms down from 1500ms to improve device compatibility while in USB Host mode
* does not exist on these chips (thanks to Marco) * - Removed the EVENT_USB_InitFailure() event, not specifying a USB mode correctly now defaults to UID selection mode
* - Changed all Device mode LowLevel demos and Device Class drivers so that the control request is acknowledged and any data * - Renamed and moved class driver common constant definitions to make the naming scheme more uniform
* transferred as quickly as possible without any processing inbetween sections, so that long callbacks or event handlers will * - Moved the USB mode specifier constants into a new enum, so that they are semantically related to one another
* not break communications with the host by exceeding the maximum control request stage timeout period * - Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for
* - Changed the signature of the CALLBACK_USB_GetDescriptor() callback function so that the descriptor pointer is const, to remove * the given endpoint
* the need for extra casting inside the callback (thanks to Jonathan Kollasch) * - Better algorithm to extract and convert the internal device serial number into a string descriptor (if present)
* - Reduced HOST_DEVICE_SETTLE_DELAY_MS to 1000ms down from 1500ms to improve device compatibility while in USB Host mode * - All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included
* - Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible * - The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called
* to free up the Start of Frame flag for interrupt use in the user application * - Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library
* - All project makefiles now correctly clean intermediate build files from assembly and C++ sources (thanks to Daniel Czigany) * request handlers, not afterwards
* - Removed the EVENT_USB_InitFailure() event, not specifying a USB mode correctly now defaults to UID selection mode * - Library Applications:
* - Renamed and moved class driver common constant definitions to make the naming scheme more uniform * - Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints
* - Changed default value for the reset polarity parameter in the AVRISP-MKII project so that it defaults to active low drive * - Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant
* - Changed configuration descriptor parser for all host mode projects and class drivers to ensure better compatibility with devices * SCSI_Codes.h file as these values are part of the MassStorage Class Driver
* - Moved the USB mode specifier constants into a new enum, so that they are semantically related to one another * - Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel
* - Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for * does not exist on these chips (thanks to Marco)
* the given endpoint * - Changed all Device mode LowLevel demos and Device Class drivers so that the control request is acknowledged and any data
* - Better algorithm to extract and convert the internal device serial number into a string descriptor (if present) * transferred as quickly as possible without any processing inbetween sections, so that long callbacks or event handlers will
* - All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included * not break communications with the host by exceeding the maximum control request stage timeout period
* - All LowLevel demos changed to use the constants and types defined in the USB class drivers * - Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible
* - Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer * to free up the Start of Frame flag for interrupt use in the user application
* - The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called * - All project makefiles now correctly clean intermediate build files from assembly and C++ sources (thanks to Daniel Czigany)
* - Rescue clock of the AVRISP-MKII moved to the AVR's OCR1A pin, so that the clock can be generated at all times * - Changed default value for the reset polarity parameter in the AVRISP-MKII project so that it defaults to active low drive
* - Changed ClassDriver MIDI demos to process all incomming events in a loop until the bank becomes empty rather than one at a time * - Changed configuration descriptor parser for all host mode projects and class drivers to ensure better compatibility with devices
* - Changed LowLevel MIDI demos to only clear the incomming event bank once it has become empty to support packed event packets * - All LowLevel demos changed to use the constants and types defined in the USB class drivers
* - Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library * - Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer
* request handlers, not afterwards * - Rescue clock of the AVRISP-MKII moved to the AVR's OCR1A pin, so that the clock can be generated at all times
* - Changed ClassDriver MIDI demos to process all incomming events in a loop until the bank becomes empty rather than one at a time
* - Changed LowLevel MIDI demos to only clear the incomming event bank once it has become empty to support packed event packets
* *
* <b>Fixed:</b> * <b>Fixed:</b>
* - Fixed USB_GetHIDReportItemInfo() function modifying the given report item's data when the report item does not exist * - Core:
* within the supplied report of a multiple report HID device * - Fixed USB_GetHIDReportItemInfo() function modifying the given report item's data when the report item does not exist
* - Fixed MassStorage based demos and projects resetting the SCSI sense values before the command is executed, leading to * within the supplied report of a multiple report HID device
* missed SCSI sense values when the host retrieves the sense key (thanks to Martin Degelsegger) * - Fixed critical pipe/endpoint memory allocation issue where the bank memory address space could be silently overlapped
* - Fixed critical pipe/endpoint memory allocation issue where the bank memory address space could be silently overlapped * in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger)
* in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger) * - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev)
* - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control * - Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts
* request handler * - Fixed USB_Host_ClearPipeStall() incorrectly determining the endpoint direction from the currently selected pipe
* - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value * - Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode
* - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev) * - Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests
* - Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts * - Fixed incorrect command name for EEPROM memory programming in the makefile dfu-ee target
* - Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2 * - Fixed incorrect LEDs_ChangeLEDs() function in the Benito board LED driver
* - Fixed USB_Host_ClearPipeStall() incorrectly determining the endpoint direction from the currently selected pipe * - Fixed incorrect USB_DeviceState value when unconfiguring the device without an address set
* - Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode * - Fixed SPI driver not explicitly setting /SS and MISO pins as inputs when SPI_Init() is called
* - Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests * - Fixed random enumeration failure while in device mode due to interrupts causing the Set Address request to exceed maximum timings
* - Fixed incorrect command name for EEPROM memory programming in the makefile dfu-ee target * - Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface was not configured
* - Fixed BootloaderCDC project failing on some operating systems due to removed Line Encoding options (thanks to Alexey Belyaev) * - Fixed MIDI class driver send routines silently discarding packets if the endpoint or pipe is busy (thanks to Robin Green)
* - Fixed incorrect LEDs_ChangeLEDs() function in the Benito board LED driver * - Library Applications:
* - Fixed incorrect USB_DeviceState value when unconfiguring the device without an address set * - Fixed MassStorage based demos and projects resetting the SCSI sense values before the command is executed, leading to
* - Fixed broken FLASH/EEPROM programming in the AVRISP-MKII clone project when writing in non-paged mode and the polling byte cannot be used * missed SCSI sense values when the host retrieves the sense key (thanks to Martin Degelsegger)
* - Fixed SPI driver not explicitly setting /SS and MISO pins as inputs when SPI_Init() is called * - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control
* - Fixed ISR definition conflict in the XPLAIN bridge between the software UART and the AVRISP-MKII ISP modules * request handler
* - Fixed random enumeration failure while in device mode due to interrupts causing the Set Address request to exceed maximum timings * - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value
* - Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface was not configured * - Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2
* - Fixed MIDI class driver send routines silently discarding packets if the endpoint or pipe is busy (thanks to Robin Green) * - Fixed BootloaderCDC project failing on some operating systems due to removed Line Encoding options (thanks to Alexey Belyaev)
* - Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full * - Fixed broken FLASH/EEPROM programming in the AVRISP-MKII clone project when writing in non-paged mode and the polling byte cannot be used
* - Fixed broken input in the MagStripe reader project due to an incorrect HID report descriptor * - Fixed ISR definition conflict in the XPLAIN bridge between the software UART and the AVRISP-MKII ISP modules
* - Fixed incorrect PollingIntervalMS values in the demo/project/bootloader endpoint descriptors (thanks to MCS Electronics) * - Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full
* - Fixed AVRISP-MKII clone project not starting the target's program automatically after exiting TPI programming mode * - Fixed broken input in the MagStripe reader project due to an incorrect HID report descriptor
* - Fixed incorrect PollingIntervalMS values in the demo/project/bootloader endpoint descriptors (thanks to MCS Electronics)
* - Fixed AVRISP-MKII clone project not starting the target's program automatically after exiting TPI programming mode
* *
* \section Sec_ChangeLog100807 Version 100807 * \section Sec_ChangeLog100807 Version 100807
* <b>New:</b> * <b>New:</b>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment