📄 common.h
字号:
/*************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* source\common.h 1.0 */
/* */
/* DESCRIPTION : Nand.c header file */
/* - Flash Command */
/* - Host PC interface command */
/* - Registers define */
/* */
/* DATA STRUCTURES */
/* */
/* FUNCTIONS : */
/* */
/* CPU DEPENDENCES */
/* */
/* Made by Song Seun Keun */
/* */
/* Copyrigth (C) 2001 AIJISYSTEM CO.,LTD */
/*************************************************************************/
#define uchar unsigned char
#define uint unsigned int
#define ushort unsigned short
#define ulong unsigned long
#define RESET_CTRL (ulong)0xff
#define READ_STATUS (ulong)0x70
#define READ_FLAG (ulong)0x00000001 // spare area
#define PROGRAM_FIRST (ulong)0x80
#define PROGRAM_SECOND (ulong)0x10
#define ERASE_CMD_FIRST (ulong)0x60
#define ERASE_CMD_SECOND (ulong)0xD0
#define ID_CMD (ulong)0x90
#define WRITE_RESET (ulong)0x00
#define READ (ulong)0x00
#define ERASE_CONFIRM (uchar)0xD0
#define STATUS_CMD (ulong)0x00000006
#define RESET_CMD (ulong)0x00000007
#define READ_CMD (ulong)0x50
/* Nand Flash Registers */
#define rNFCONF (*(volatile unsigned *)0x4E000000) //NAND Flash configuration
#define rNFCONT (*(volatile unsigned *)0x4E000004) //NAND Flash control
#define rNFCMD (*(volatile unsigned *)0x4E000008) //NAND Flash command
#define rNFADDR (*(volatile unsigned *)0x4E00000C) //NAND Flash address
#define rNFDATA (*(volatile unsigned char *)0x4E000010) //NAND Flash data
#define rNFSTAT (*(volatile unsigned *)0x4E000020) //NAND Flash operation status
/* 2410 Hardware Configure */
// HCLK=100Mhz
#define TACLS 7 // 1-clk(0ns)
#define TWRPH0 7 // 3-clk(25ns)
#define TWRPH1 7 // 1-clk(10ns) //TACLS+TWRPH0+TWRPH1>=50ns
#define FPROGRAM 0
#define FERASEALL 1
#define FERASESEC 2
#define FREADID 3
#define FREADMEM 4
#define FWRITE_BIB 5
#define FINIT 6
#define BUFFER_SIZE 0x100000
typedef struct {
ulong Command;
ulong Result;
ulong Reserved1[4];
ulong Reserved2;
ulong TargetAddr;
ulong Length;
ulong Reserved3;
ulong Reserved4;
ulong Reserved5;
ulong Reserved6;
ulong Reserved7;
ulong Reserved8;
uchar Buf[BUFFER_SIZE];
volatile uchar BadBlockTable[4095];
} FLASH_INFO;
// flash.c
extern void Main(void);
extern void Program(void);
extern void EraseAll(void);
extern void EraseSector(void);
extern void ReadChipID(void);
extern int BlankCheck(ulong *targetP,ulong targetSize);
extern int Verification(ulong *targetP, ulong limit, ulong *srcAddr);
extern int OneBlockErase(ulong targetAddr);
extern int WriteChar(uchar *data, ulong page_addr);
extern int ReadChar(uchar *data, ulong targetAddr, ulong size);
extern void ReadMem(void);
extern void InitFlash(void);
extern int Bad_Block_Check(ulong block);
extern ulong PrepareBlock(void);
extern void FlashConfig(void);
extern void NF_Reset(void);
extern void NF_CHECKID(void);
extern void MMU_Init(void);
extern void MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr);
extern __inline void MMU_DisableMMU(void);
extern __inline void MMU_SetTTBase(int base);
extern __inline void MMU_SetDomain(int domain);
extern __inline void MMU_DisableDCache(void);
extern __inline void MMU_DisableICache(void);
extern __inline void MMU_CleanInvalidateDCacheIndex(ulong index);
extern __inline void MMU_InvalidateICache(void);
extern __inline void MMU_InvalidateTLB(void);
extern __inline void MMU_EnableMMU(void);
extern __inline void MMU_EnableDCache(void);
extern __inline void MMU_EnableICache(void);
extern __inline void MMU_SetProcessId(ulong pid);
extern __inline void MMU_EnableAlignFault(void) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -