📄 d_loader.h
字号:
//
// Date init 14.12.2004
//
// Revision date $Date:: 16-05-06 8:27 $
//
// Filename $Workfile:: d_loader.h $
//
// Version $Revision:: 39 $
//
// Archive $Archive:: /LMS2006/Sys01/Main/Firmware/Source/d_loader.h $
//
// Platform C
//
#ifndef D_LOADER
#define D_LOADER
#define STARTOFFILETABLE (0x13FF00L)
#define STARTOFUSERFLASH (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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -