aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/d_loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/d_loader.h')
-rw-r--r--AT91SAM7S256/Source/d_loader.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/AT91SAM7S256/Source/d_loader.h b/AT91SAM7S256/Source/d_loader.h
new file mode 100644
index 0000000..0279631
--- /dev/null
+++ b/AT91SAM7S256/Source/d_loader.h
@@ -0,0 +1,99 @@
+//
+// Date init 14.12.2004
+//
+// Revision date $Date:: 28-03-07 14:54 $
+//
+// Filename $Workfile:: d_loader.h $
+//
+// Version $Revision:: 40 $
+//
+// Archive $Archive:: /LMS2006/Sys01/Main/Firmware/Source/d_loader.h $
+//
+// Platform C
+//
+
+#ifndef D_LOADER
+#define D_LOADER
+
+#define STARTOFFILETABLE (0x13FF00L)
+#define STARTOFUSERFLASH (0x121400L)//(0x11F000L)
+#define SIZEOFUSERFLASH (STARTOFFILETABLE - STARTOFUSERFLASH)
+
+#define SIZEOFFLASH 262144L
+#define SECTORSIZE 256L
+#define SECTORSIZESHIFT 8
+#define NOOFSECTORS (SIZEOFFLASH/SECTORSIZE)
+#define HEADERFIXEDSIZE (FILENAME_SIZE + 4 + 4 + 4 + 2 + 2)
+#define FILENAME_SIZE (FILENAME_LENGTH + 1)
+
+#define FULLNAME 1
+#define NAME 2
+#define EXTENTION 3
+#define WILDCARD 4
+
+/* Enum related to HandleTable Status */
+enum
+{
+ FREE,
+ BUSY,
+ DOWNLOADING,
+ SEARCHING,
+ DLERROR
+};
+
+/* Enum related to HandleTable WriteBufNo */
+enum
+{
+ FREEBUFNO = 0xFF
+};
+
+
+/* Constants related to filetype */
+enum
+{
+ SYSTEMFILE = 0x01,
+ DATAFILE = 0x02,
+ LINEAR = 0x04,
+ NONLINEAR = 0x08
+};
+
+typedef struct
+{
+ UBYTE FileName[FILENAME_SIZE];
+ ULONG FileStartAdr;
+ ULONG FileSize;
+ ULONG DataSize;
+ UWORD CheckSum;
+ UWORD FileType;
+ UWORD FileSectorTable[SIZEOFUSERFLASH/SECTORSIZE];
+}FILEHEADER;
+
+void dLoaderInit(void);
+__ramfunc UWORD dLoaderWritePage(ULONG Flash_Address, UWORD Size, ULONG *pBuf);
+UWORD dLoaderInsertPtrTable(const UBYTE *pAdr, UWORD Handle);
+UWORD dLoaderCreateFileHeader(ULONG FileSize, UBYTE *pName, UBYTE LinearState, UBYTE FileType);
+UWORD dLoaderWriteData(UWORD Handle, UBYTE *pBuf, UWORD *pLen);
+UWORD dLoaderCloseHandle(UWORD Handle);
+UWORD dLoaderOpenRead(UBYTE *pFileName, ULONG *pLength);
+UWORD dLoaderRead(UBYTE Handle, UBYTE *pBuf, ULONG *pLength);
+UWORD dLoaderDelete(UBYTE *pFile);
+UWORD dLoaderFind(UBYTE *pFind, UBYTE *pFound, ULONG *pFileLength, ULONG *pDataLength, UBYTE Session);
+UWORD dLoaderFindNext(UWORD Handle, UBYTE *pFound, ULONG *pFileLength, ULONG *pDataLength);
+UWORD dLoaderDeleteFilePtr(UWORD Handle);
+void dLoaderDeleteAllFiles(void);
+UWORD dLoaderGetFilePtr(UBYTE *pFileName, UBYTE *pPtrToFile, ULONG *pFileLength);
+void dLoaderCopyFileName(UBYTE *pDst, UBYTE *pSrc);
+UWORD dLoaderOpenAppend(UBYTE *pFileName, ULONG *pAvailSize);
+void dLoaderCpyToLower(UBYTE *pDst, UBYTE *pSrc, UBYTE Length);
+UWORD dLoaderCheckName(UBYTE *pName, UBYTE *pSearchStr, UBYTE SearchType);
+void dLoaderInsertSearchStr(UBYTE *pDst, UBYTE *pSrc, UBYTE *pSearchType);
+ULONG dLoaderReturnFreeUserFlash(void);
+UWORD dLoaderRenameFile(UBYTE Handle, UBYTE *pNewName);
+UWORD dLoaderCheckFiles(UBYTE Handle);
+
+
+
+
+void dLoaderExit(void);
+
+#endif