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

📄 ffile.h

📁 ATmega103、ATmega128做的开发板web server源码
💻 H
字号:
/******************************************************************
* ffile.h:
* 
* Copyright (c) 2001 Atmel Corporation.
* All Rights Reserved.
*
* You are autorized to use, copy and distribute this software only at 
* a single site (the term "site" meaning a single company location). 
* This copyright notice must be included in any copy, modification 
* or portion of this software merged into another program.
* 
* This software is licenced solely for use with Atmel AVR micro 
* controller family. The software may not be modified to execute on 
* any other microcontroller architectures
*
* This software is provided "as is"; Without warranties either express
* or implied, including any warranty regarding merchantability, 
* fitness for a particular purpose or noninfringement. 
*
* In no event shall Atmel or its suppliers be liable for any special, 
* indirect,incidential or concequential damages resulting from the 
* use or inability to use this software.
*
* Revision history:
*
* January 17, 2001:   Version 1.0   Created by JB
* July 13, 2001		  Version 1.2     JB
* 					- Changed to IAR compiler V2.25
*					- Renamed flash file functions to avoid conflict with 
*					  standard file I/O names	
*					- Bug fixes in HTTP
*					- Speed optimization in TCP 
*
*
*******************************************************************/

/*File header offset*/
#define FILE_ID_l       0
#define FILE_ID_h       1
#define FILE_NAME       2
#define FILE_EXT        10
#define FILE_SIZE_ll    13
#define FILE_SIZE_lh    14
#define FILE_SIZE_hl    15
#define FILE_SIZE_hh    16
#define FILE_NUM_PAGES_l     17
#define FILE_NUM_PAGES_h     18

/*File system info: Media Status Table */
#define FILE_MST_STATUS              0
#define FILE_MST_FREE_SPACE          1
#define FILE_MST_FREE_SPACE_l        1
#define FILE_MST_FREE_SPACE_h        2
#define FILE_MST_DEALLOCATED_SPACE   3
#define FILE_MST_DEALLOCATED_SPACE_l 3
#define FILE_MST_DEALLOCATED_SPACE_h 4
#define FILE_MST_DEALLOCATED_NEXT	 6
#define FILE_MST_DEALLOCATED_NEXT_l  6
#define FILE_MST_DEALLOCATED_NEXT_h  7
#define FILE_MST_FILE_ID_NEXT 	     8
#define FILE_MST_FILE_ID_NEXT_l      8
#define FILE_MST_FILE_ID_NEXT_h      9
#define FILE_MST_LAST_PAGE	         10
#define FILE_MST_LAST_PAGE_l         10
#define FILE_MST_LAST_PAGE_h         11
#define FILE_MST_DEALLOCATED_PTRS    12
#define FILE_MST_DEALLOCATED_PAGES   44

/*starting address in EEPROM*/
#define FILE_MST_BASE        100

#define FILE_MAX_OPEN_FILES  3
#define FILE_OK              0
#define FILE_RECLAIM         1
#define FILE_FNULL           0xffff     //"Flash null pointer"
#define FILE_UNFILE_LOCKED   0
#define FILE_LOCKED          1

typedef enum {FILE_READ, FILE_WRITE, FILE_READY} STATUS;

typedef struct file__type 
{
  unsigned int file_id;
  char file_name[8];
  char file_ext[3];
  unsigned long count;
  unsigned long file_size;
  STATUS status;
  unsigned int start_page;
  unsigned int end_page;
  char buffer[256];
}FFILE;

typedef struct dir_type 
{
  unsigned char state;
  unsigned char fileNr;
  unsigned int pageNr;
  char dirEntry[80];
}DIR;

FFILE *ffopen(char *filename, char type);
char ffclose(FFILE *stream);
char ffget(FFILE *stream);
void ffput(FFILE *stream, const char data);
char ffdelete(char *filename);
void fformat(void);
int ffread(FFILE *stream, char *buffer, int size);
int ffreadln(FFILE *stream, char *buffer, int size);
int ffwrite(FFILE *stream, char *buffer, int size);
char ffeof(FFILE *stream);
char ffinit(void);
int ffindFile(char *filename, char *fileext);
DIR *opendir(void);
char *readdir(DIR *_dir);
char *readwdir(DIR *_dir);
void rewinddir(DIR *_dir);
char closedir(DIR *_dir);
void saveMST(void);  // saveMST could be removed after debug.
void reclaim(void);
void longToAscii(unsigned long number,char * buffer);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -