📄 psd913f2.h
字号:
/* psd913f2.h - Register and bit definitons for the PSD913F2 device
-1/6/00, msr
>> New release.
*/
#include <map913f2.h> // include the definition of your system memory map
// Select which functions within psd913f2.c that you would like to include into your
// compile session by defining the associated compiler directive. defined = include,
// not defined = do not include
// Module: flash_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_W_W_P
// Module: flash_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_W_W_T
// Module: flash_erase_bulk
// Erases the entire Flash memory (all sectors).
//#define _F_E_B
// Module: flash_reset
// Resets the main Flash memory to Read Array mode.
//#define _F_R
// Module: flash_read_id
// Reads the Flash Identifier byte from main Flash memory.
//#define _F_R_I
// Module: flash_read_sector_protect
// Reads individual Flash sector protection status.
//#define _F_R_S_P
// Module: flash_boot_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_B_W_W_P
// Module: flash_boot_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_B_W_W_T
// Module: flash_boot_erase_bulk
// Erases the Flash boot memory (all sectors).
//#define _F_B_E_B
// Module: flash_boot_reset
// Resets the Flash boot memory to Read Array mode.
//#define _F_B_R
// Module: flash_boot_read_id
// Reads the Flash Identifier byte from boot Flash memory.
//#define _F_B_R_I
// Module: flash_boot_read_sector_protect
// Reads Flash boot sector protection status and PSD security bit.
//#define _F_B_R_S_P
typedef struct // general structure of 8 bit register allowing bit access
{
unsigned char bit0 : 1;
unsigned char bit1 : 1;
unsigned char bit2 : 1;
unsigned char bit3 : 1;
unsigned char bit4 : 1;
unsigned char bit5 : 1;
unsigned char bit6 : 1;
unsigned char bit7 : 1;
} Register;
typedef union // allow bit or byte access to registers
{
char byte;
Register bits;
} Mix_Reg;
//******************* PSD9XXFX register addresses ************************
#define DATAIN_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x00))
#define DATAIN_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x01))
#define DATAIN_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x10))
#define DATAIN_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x11))
#define DATAOUT_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x04))
#define DATAOUT_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x05))
#define DATAOUT_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x12))
#define DATAOUT_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x13))
#define DIRECTION_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x06))
#define DIRECTION_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x07))
#define DIRECTION_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x14))
#define DIRECTION_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x15))
#define DRIVE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x08))
#define DRIVE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x09))
#define DRIVE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x16))
#define DRIVE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x17))
#define OUTENABLE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0C))
#define OUTENABLE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0D))
#define OUTENABLE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1A))
#define OUTENABLE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1B))
#define CONTROL_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x02))
#define CONTROL_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x03))
#define IMC_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0A))
#define IMC_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0B))
#define IMC_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x18))
#define OMC_AB (*(volatile Mix_Reg*)(PSD_REG_BASE+0x20))
#define OMC_BC (*(volatile Mix_Reg*)(PSD_REG_BASE+0x21))
#define OMCMASK_AB (*(Mix_Reg*)(PSD_REG_BASE+0x22))
#define OMCMASK_BC (*(Mix_Reg*)(PSD_REG_BASE+0x23))
#define MAINPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC0))
#define ALTPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC2))
#define JTAG (*(volatile Mix_Reg*)(PSD_REG_BASE+0xC7))
#define PMMR0 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB0))
#define PMMR2 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB4))
#define PAGE (*(volatile Mix_Reg*)(PSD_REG_BASE+0xE0))
#define VM (*(Mix_Reg*)(PSD_REG_BASE+0xE2))
//****************** PSD9XXFX control register bit definitions *********
//PSD PORTA
#define PA0 bit0
#define PA1 bit1
#define PA2 bit2
#define PA3 bit3
#define PA4 bit4
#define PA5 bit5
#define PA6 bit6
#define PA7 bit7
//PSD PORTB
#define PB0 bit0
#define PB1 bit1
#define PB2 bit2
#define PB3 bit3
#define PB4 bit4
#define PB5 bit5
#define PB6 bit6
#define PB7 bit7
//PSD PORTC
#define PC0 bit0
#define PC1 bit1
#define PC2 bit2
#define PC3 bit3
#define PC4 bit4
#define PC5 bit5
#define PC6 bit6
#define PC7 bit7
//PSD PORTD
#define PD0 bit0
#define PD1 bit1
#define PD2 bit2
//PSD JTAG
#define JEN bit0 // JTAG enable
//PSD PMMR0
#define APD_ENABLE bit1
#define PLD_TURBO bit3
#define PLD_ARRAY_CLK bit4
#define PLD_MCELL_CLK bit5
//PSD PMMR2
#define PLD_CNTL0 bit2
#define PLD_CNTL1 bit3
#define PLD_CNTL2 bit4
#define PLD_ALE bit5
#define PLD_DBE bit6
//PSD VM
#define SRAM_CODE bit0
#define EE_CODE bit1
#define FL_CODE bit2
#define EE_DATA bit3
#define FL_DATA bit4
#define PIO_EN bit7
// Flash parameters
#define NVM_DATA_POLL 0x80 // flash status "data poll" bit at DQ7
#define NVM_DATA_TOGGLE 0x40 // flash status "toggle poll" bit at DQ6
#define NVM_ERROR 0x20 // flash status "error" bit at DQ5
// Misc.
#define TRUE 0x01
#define FALSE 0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -