eeprom.h

来自「TC35i收发短信的源代码」· C头文件 代码 · 共 82 行

H
82
字号

//const uchar ucEEPROM_BLOCK[] = {29,30};
const uchar ucEEPROM_BLOCK[] = {15};
                                            /* ex) Blnk numbers 0 is used. (The product without a ROM bank sets up 0.) */
const uchar ucEEPROM_BANK[] = {0};      

                                            /* Data length of write data */
                                            /* ex) Data length of data number 0 to 10 is 4 bytes, data length of data number 1 is */
                                            /* 4 bytes... Sets data length of individual data to be used. */
#define DATALENGTH 	4                      
                                            /* Data length of write data */
#define DATANOMAX 	9                       /* ex) 0 to 9 */
                                            /* Please comment out the product without a ROM bank. */

                                            /* Retry number for write process */
#define WRITENUM 	2                        /* ex) 2times retry */
                                            /* Retry number for erase process */
#define ERASENUM 	2                        /* ex) 2times retry */


#define EEPROM_BLOCK_NO sizeof(ucEEPROM_BLOCK)	//eeprom block number

//#define WRITE_DATA_LENGTH (((((DATALENGTH + 1) >> 2) + 1) << 2) - 1)

//#define FRAME_DATA_LENGTH 32
                                            /* Length of general-purpose buffer */
//#define BUFLENGTH 		16

#define LIB_NORMAL_END (0x0)                /* Normal completion (== Constant definitions: TRUE) */
#define LIB_BLKCHK_ERR (0x1B)               /* Blank check error */
#define LIB_BLANK_ERR (0x1E)                /* Blank error */
#define LIB_STATE_INT (0x1F)                /* State of interruption */

#define BLOCK_TO_ADDRESS(x) usBlockToAddress(x)
#define BLOCK_IS_PROHIBIT(x) ucUseProhibitionBlock(x)
#define BLOCK_IS_EFFECTIVE(x) ucEffectiveBlock(x)
#define BLOCK_IS_BLANK(x) ucBlankBlock(x)

#ifdef BANKUSE
#define SET_BANK(x) (BANK = x)
#else
#define SET_BANK(x)
#endif

/*--- RAM declarations --------------------------------------*/
//uchar ucDataBuf[BUFLENGTH];                 /* Buffer for EEPROM data manipulation */
uchar ucDataBuf[DATALENGTH+1];                 /* Buffer for EEPROM data manipulation */

struct stWordAddress
{
  ushort WriteAddress;
  uchar WriteBank;
} WordAddr;

//sreg uchar ucEntryRAM[100];
sreg uchar ucEntryRAM[60];

//Call external functions
extern void FlashStart(void);
extern void FlashEnd(void);
extern void FlashEnv(ushort EntryRAM);
extern uchar FlashBlockErase(uchar EraseBank,uchar EraseBlock);
extern uchar FlashWordWrite(struct stWordAddress *ptr,uchar WordNumber,ushort DataBufferAddress);
/*
extern uchar FlashBlockVerify(uchar VerifyBank,uchar VerifyBlock);
*/
extern uchar FlashBlockBlankCheck(uchar BlankCheckBank,uchar BlankCheckBlock);
/*
extern uchar FlashGetInfo(struct stGetInfo *ptr,ushort DataBufferAddress);
extern uchar FlashSetInfo(uchar SetInfoData);
*/
extern uchar CheckFLMD(void);
extern uchar EEPROMWrite(struct stWordAddress *ptr,uchar WordNumber,ushort DataBufferAddress);

/*dddddddddddddddddddddddd */
uchar ucEffectiveBlock(uchar *p);
uchar ucBlankBlock(uchar *p);
ushort usBlockToAddress(ushort usBlock);
uchar ucEEPROMWriteEx(uchar ucBlock,ushort usWriteAdr,ushort usWriteLen,uchar *pDataAddress);
uchar ucEEPROMWriteDrv(uchar ucBlock,ushort usWriteAdr,uchar ucWriteLen);

⌨️ 快捷键说明

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