1
0

Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning, no need to call Dataflash_ToggleSelectedChipCS() afterwards.

Added new DATAFLASH_CHIP_MASK() macro to the Dataflash driver, which returns the Dataflash select mask for the given chip index.

Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%.
This commit is contained in:
Dean Camera
2009-06-29 09:30:06 +00:00
parent f1076ac4d6
commit 86e6ed7f31
6 changed files with 89 additions and 58 deletions

View File

@@ -75,6 +75,18 @@
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
#if !defined(__DOXYGEN__)
#define __GET_DATAFLASH_MASK2(x, y) x ## y
#define __GET_DATAFLASH_MASK(x) __GET_DATAFLASH_MASK2(DATAFLASH_CHIP,x)
#endif
/* Retrieves the Dataflash chip select mask for the given Dataflash chip index.
*
* \param index Index of the dataflash chip mask to retrieve
*/
#define DATAFLASH_CHIP_MASK(index) __GET_DATAFLASH_MASK(index)
/* Pseudo-Function Macros: */
#if defined(__DOXYGEN__)
/** Determines the currently selected dataflash chip.
@@ -149,7 +161,7 @@
#else
#error The selected board does not contain a dataflash IC.
#endif
/* Inline Functions: */
/** Initializes the dataflash driver (including the SPI driver) so that commands and data may be
* sent to an attached dataflash IC.
@@ -183,6 +195,7 @@
Dataflash_ToggleSelectedChipCS();
Dataflash_SendByte(DF_CMD_GETSTATUS);
while (!(Dataflash_ReceiveByte() & DF_STATUS_READY));
Dataflash_ToggleSelectedChipCS();
}
/** Selects a dataflash IC from the given page number, which should range from 0 to

View File

@@ -38,6 +38,10 @@
* - Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command
* - Fixed USB_Host_SendControlRequest() not re-suspending the USB bus when initial device ready-wait fails
* - Fixed USB Pad regulator not being disabled on some AVR models when the USB_OPT_REG_DISABLED option is used
* - Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning,
* no need to call Dataflash_ToggleSelectedChipCS() afterwards
* - Added new DATAFLASH_CHIP_MASK() macro to the Dataflash driver, which returns the Dataflash select mask for the given chip index
* - Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%
*
*
* \section Sec_ChangeLog090605 Version 090605

View File

@@ -12,23 +12,25 @@
* or post your suggestion as an enhancement request to the project bug tracker.
*
* <b>Targeted for This Release:</b>
* - Make new host class drivers
* - Document new host class drivers
* - Convert Host mode demos to class drivers
* - Re-enable Host mode Class driver builds after completion
* - Add standardized descriptor names to class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
* - Update Host mode Class Driver demo .txt files
* - Host Mode Class Drivers
* -# Make new host class drivers
* -# Document new host class drivers
* -# Convert Host mode demos to class drivers
* -# Re-enable Host mode Class driver builds after completion
* -# Update Host mode Class Driver demo .txt files
* - Add standardized descriptor names to device and host class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
* - Debug mode for pipe/endpoint calls
* - Test and document new FAST_STREAM_TRANSFERS compile time option
*
* <b>Targeted for Future Releases:</b>
* - Remake AVRStudio project files
* - Detailed overviews of how each demo works
* - Master LUFA include file
* - Add detailed overviews of how each demo works
* - Master LUFA include file rather than per-module includes
* - Stream reads - return number of bytes not read?
* - Add multiple-report HID demo to the library
* - Add dual role Mouse Host/Keyboard Device demo to the library
* - Add hub support to match Atmel's stack
* - Port LUFA to the AVR32 UC3B series microcontrollers
* - Port LUFA to the Atmel ARM7 series microcontrollers
* - Port LUFA to other architectures
* -# AVR32 UC3B series microcontrollers
* -# Atmel ARM7 series microcontrollers
*/

View File

@@ -259,7 +259,7 @@
Scheduler_TotalTasks = TotalTasks;
}
static inline void Scheduler_GoSchedule(const uint8_t TotalTasks) ATTR_NO_RETURN ATTR_ALWAYS_INLINE;
static inline void Scheduler_GoSchedule(const uint8_t TotalTasks) ATTR_NO_RETURN ATTR_ALWAYS_INLINE ATTR_DEPRECATED;
static inline void Scheduler_GoSchedule(const uint8_t TotalTasks)
{
Scheduler_InitScheduler(TotalTasks);