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:
parent
f1076ac4d6
commit
86e6ed7f31
6 changed files with 89 additions and 58 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue