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

📄 ecc.h

📁 COG-VP12864液晶屏驱动代码及对应RTC实例
💻 H
字号:
/*
********************************************************
// Copyright (c)2004 Ark Pioneer Microelectronics Ltd.,
// All Rights Reserved
//
// Filename:ecc.h
// Version:1.0
// Created:2004.02.16   By: Philip
*********************************************************
*/

#ifndef _ECC_H_
#define _ECC_H_

#include "config.h"

#define ECC_REG_OFFSET		0xBFF28C00

//allocate to store result of ecc operation (Error address and error mask)
//just for test
#define ECC_TEMP_OFFSET         0xa0500000
#define ECC_RESULT_OFFSET       0xa0500010

/*----------------------------------------------------------------
    USB ECC control
----------------------------------------------------------------*/
// for ECC_CTL_REG register
#define ECC_RESET               0x01
#define ECC_512_MODE            0x00      //bit1 = 0
#define ECC_520_MODE            0x02      //bit1 = 1

// bit7: ecc done; bit6: error flag
#define ECC_DONE_FIND_ERR       0xa0
#define ECC_DONE_NO_ERR         0x80
#define bmECC_DONE              bmBIT7

#define EXT_DATA_LEN            0x08

enum eEccModeSelect {
    mode512,
    mode520
};
typedef enum eEccModeSelect eMode_t;

typedef struct _DATA_TO_MODIFY
{
    WORD DataSerialNumber[3];   // serial number of the data to modify
    WORD LengthToModify;        // how many BYTEs to modify 
} DATA_TO_MODIFY, *PDATA_TO_MODIFY;


/*----------------------------------------------------------------
    Declaration
----------------------------------------------------------------*/
extern void ram512_init(void);
extern void EccStart(enum eEccModeSelect eMode);
extern void WaitEccEnd(void);
extern void ecc_test(void);
extern BOOLEAN ModifyData(PBYTE RamStart, PDATA_TO_MODIFY Mdf);

extern void fun(WORD funn, PWORD outres); 
extern WORD parameter();
/*----------------------------------------------------------------
    USB ECC Registers (32-bits width, but only low-8-bits valid)
----------------------------------------------------------------*/
#define ECC_CTL_REG		(ECC_REG_OFFSET + 0x000)
#define SFR_0_LOW  		(ECC_REG_OFFSET + 0x004)	
#define SFR_0_HIGH 		(ECC_REG_OFFSET + 0x008)
#define SFR_1_LOW       (ECC_REG_OFFSET + 0x00c)
  
#define SFR_1_HIGH 		(ECC_REG_OFFSET + 0x010)
#define SFR_2_LOW       (ECC_REG_OFFSET + 0x014)
#define SFR_2_HIGH      (ECC_REG_OFFSET + 0x018)
#define SFR_3_LOW       (ECC_REG_OFFSET + 0x01c)
  
#define SFR_3_HIGH 		(ECC_REG_OFFSET + 0x020)
#define SFR_4_LOW       (ECC_REG_OFFSET + 0x024)
#define SFR_4_HIGH      (ECC_REG_OFFSET + 0x028)
#define SFR_5_LOW       (ECC_REG_OFFSET + 0x02c)
  
#define SFR_5_HIGH 		(ECC_REG_OFFSET + 0x030)
#define SFR_6_LOW       (ECC_REG_OFFSET + 0x034)
#define SFR_6_HIGH      (ECC_REG_OFFSET + 0x038)
#define SFR_7_LOW       (ECC_REG_OFFSET + 0x03c)

#define SFR_7_HIGH 		(ECC_REG_OFFSET + 0x040)
#define SFR_8_LOW       (ECC_REG_OFFSET + 0x044)
#define SFR_8_HIGH      (ECC_REG_OFFSET + 0x048)
#define SFR_9_LOW       (ECC_REG_OFFSET + 0x04c)
  
#define SFR_9_HIGH 		(ECC_REG_OFFSET + 0x050)
#define SFR_10_LOW      (ECC_REG_OFFSET + 0x054)
#define SFR_10_HIGH     (ECC_REG_OFFSET + 0x058)
#define SFR_11_LOW      (ECC_REG_OFFSET + 0x05c)

#define SFR_11_HIGH		(ECC_REG_OFFSET + 0x060)
#define SFR_12_LOW      (ECC_REG_OFFSET + 0x064)
#define SFR_12_HIGH     (ECC_REG_OFFSET + 0x068)
#define SFR_13_LOW      (ECC_REG_OFFSET + 0x06c)

#define SFR_13_HIGH		(ECC_REG_OFFSET + 0x070)
#define SFR_14_LOW      (ECC_REG_OFFSET + 0x074)
#define SFR_14_HIGH     (ECC_REG_OFFSET + 0x078)
#define SFR_15_LOW      (ECC_REG_OFFSET + 0x07c)

#define SFR_15_HIGH		(ECC_REG_OFFSET + 0x080)
#define SFR_16_LOW      (ECC_REG_OFFSET + 0x084)
#define SFR_16_HIGH     (ECC_REG_OFFSET + 0x088)
#define SFR_17_LOW      (ECC_REG_OFFSET + 0x08c)
 
#define SFR_17_HIGH		(ECC_REG_OFFSET + 0x090)
#define SFR_18_LOW      (ECC_REG_OFFSET + 0x094)
#define SFR_18_HIGH     (ECC_REG_OFFSET + 0x098)
#define PAR_0           (ECC_REG_OFFSET + 0x09c)

#define PAR_1			(ECC_REG_OFFSET + 0x0a0)      
#define PAR_2           (ECC_REG_OFFSET + 0x0a4)
#define PAR_3           (ECC_REG_OFFSET + 0x0a8)
#define PAR_4           (ECC_REG_OFFSET + 0x0ac)

#define PAR_5			(ECC_REG_OFFSET + 0x0b0)      
#define PAR_6           (ECC_REG_OFFSET + 0x0b4)
#define PAR_7           (ECC_REG_OFFSET + 0x0b8)

#endif      

⌨️ 快捷键说明

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