📄 psd834f2.h
字号:
/* psd834f2.h - Register and bit definitons for the PSD834F2 device
- 12/20/99, msr
>> New release. Incorporates all prior revisions.
- 1/6/00, msr
>> Deleted register PMMR1
*/
/*---------------------------------------------------------------------------
Copyright (c) 2002 ST Microelectronics
This example demo code is provided as is and has no warranty,
implied or otherwise. You are free to use/modify any of the provided
code at your own risk in your applications with the expressed limitation
of liability (see below) so long as your product using the code contains
at least one uPSD products (device).
LIMITATION OF LIABILITY: NEITHER STMicroelectronics NOR ITS VENDORS OR
AGENTS SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
--------------------------------------------------------------------------*/
#include <map834f2.h> // include the definition of your system memory map
// Select which functions within psd834f2.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;
//******************* PSD8XXFX 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))
//****************** PSD8XXFX 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 + -