⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d_loader.h

📁 乐高机器人的源码,开发平台是IAR_for_AVR.
💻 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 + -