diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-02-23 07:08:17 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-02-23 07:08:17 +0000 |
commit | 9991321321d30ca9383d795ea7e796098c92045f (patch) | |
tree | cd3bd40eef421cc83c9d63e58f5def8a233acab6 /Demos/MassStorage/DataflashManager.h | |
parent | c1a1b6eeecb375259968ef6d989833312047f2d8 (diff) | |
download | lufa-9991321321d30ca9383d795ea7e796098c92045f.tar.gz lufa-9991321321d30ca9383d795ea7e796098c92045f.tar.bz2 lufa-9991321321d30ca9383d795ea7e796098c92045f.zip |
Moved all source to the trunk directory.
Diffstat (limited to 'Demos/MassStorage/DataflashManager.h')
-rw-r--r-- | Demos/MassStorage/DataflashManager.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Demos/MassStorage/DataflashManager.h b/Demos/MassStorage/DataflashManager.h new file mode 100644 index 000000000..a0c43c39c --- /dev/null +++ b/Demos/MassStorage/DataflashManager.h @@ -0,0 +1,71 @@ +/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2009.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+*/
+
+/*
+ Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, and distribute this software
+ and its documentation for any purpose and without fee is hereby
+ granted, provided that the above copyright notice appear in all
+ copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ *
+ * Header file for DataflashManager.c.
+ */
+
+#ifndef _DATAFLASH_MANAGER_H
+#define _DATAFLASH_MANAGER_H
+
+ /* Includes: */
+ #include <avr/io.h>
+
+ #include "MassStorage.h"
+ #include "Descriptors.h"
+
+ #include <LUFA/Common/Common.h> // Function Attribute, Atomic, Debug and ISR Macros
+ #include <LUFA/Drivers/USB/USB.h> // USB Functionality
+ #include <LUFA/Drivers/Board/Dataflash.h> // Dataflash chip driver
+
+ /* Preprocessor Checks: */
+ #if (DATAFLASH_PAGE_SIZE % 16)
+ #error Dataflash page size must be a multiple of 16 bytes.
+ #endif
+
+ /* Defines: */
+ /** Total number of bytes of the storage medium, comprised of one or more dataflash ICs. */
+ #define VIRTUAL_MEMORY_BYTES ((uint32_t)DATAFLASH_PAGES * DATAFLASH_PAGE_SIZE * DATAFLASH_TOTALCHIPS)
+
+ /** Block size of the device. This is kept at 512 to remain compatible with the OS despite the underlying
+ * storage media (Dataflash) using a different native block size.
+ */
+ #define VIRTUAL_MEMORY_BLOCK_SIZE 512
+
+ /** Total number of blocks of the virtual memory for reporting to the host as the device's total capacity. */
+ #define VIRTUAL_MEMORY_BLOCKS (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
+
+ /* Function Prototypes: */
+ void DataflashManager_WriteBlocks(const uint32_t BlockAddress, uint16_t TotalBlocks);
+ void DataflashManager_ReadBlocks(const uint32_t BlockAddress, uint16_t TotalBlocks);
+ void DataflashManager_ResetDataflashProtections(void);
+
+#endif
|