📄 ffile.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 + -