📄 msdef.h
字号:
/************************************************************
* Moudle Name :msdef.h
* Author :ZhangJianjun
* Create Date :2002-06-06
* Version :1.0
* Description :Definitions of Sony Memory stick funcition and macro for S1C33209
* Revision Hostory:
* Remark :
************************************************************/
#ifndef __MSDEF_H__
#define __MSDEF_H__
#define _SWAP(x) (((x>>8) & 0x00FF) | ((x<<8) & 0xFF00))
#define CRC16_CODE 0x8005
//Memory stick pins
/*******************
Memory stick 209
VSS(1) ------- GND
BS(2) ------- P00 //Serial protocol bus state signal
VCC(3) ------- VCC
SDIO(4) ------- P01 //Serial protocol data signal
RESERVE(5)
INS(6) //Stick insertion/extraction detect-terminal
RESERVE(7)
SCLK(8) ------- P02 //Serial protocol clock signal
VCC(9) ------- VCC
VSS(10) ------- GND
************************************/
#define MEMSTICK_BS 0x01
#define MEMSTICK_SDIO 0x02
#define MEMSTICK_SCLK 0x04
#define UMEMSTICK_BS 0xfe
#define UMEMSTICK_SDIO 0xfd
#define UMEMSTICK_SCLK 0xfb
//#define INIT_R9 asm("xld %r9,0x402d1") //0x402d1 is address of P0 I/O port data reg
//#define SET_BS asm("bset [%r9],0")
//#define CLR_BS asm("bclr [%r9],0")
#define SET_BS ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)|MEMSTICK_BS) )
#define CLR_BS ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)&UMEMSTICK_BS) )
#define SET_SDIO ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)|MEMSTICK_SDIO) )
#define CLR_SDIO ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)&UMEMSTICK_SDIO) )
//#define SET_SDIO asm("bset [%r9],1")
//#define CLR_SDIO asm("bclr [%r9],1")
#define SDIO_OUT ( SetReg8(IO_IOC0_ADDR,GetReg8(IO_IOC0_ADDR)|MEMSTICK_SDIO) )
#define SDIO_IN ( SetReg8(IO_IOC0_ADDR,GetReg8(IO_IOC0_ADDR)&UMEMSTICK_SDIO) )
#define GET_SDIO ( GetReg8(IO_P0D_ADDR)&MEMSTICK_SDIO )
#define SET_SCLK ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)|MEMSTICK_SCLK) )
#define CLR_SCLK ( SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR)&UMEMSTICK_SCLK) )
//#define SET_SCLK asm("bset [%r9],2")
//#define CLR_SCLK asm("bclr [%r9],2")
//Memory stick Transfer Protocol Command (TPC)
#define READ_PAGE_DATA 0x2d //Transfer from PageBuffer
#define READ_REG 0x4b //Read register
#define GET_INT 0x78 //Read INT Register
#define WRITE_PAGE_DATA 0xd2 //Transfer to Pagebuffer
#define WRITE_REG 0xb4 //Write register
#define SET_RW_REG_ADRS 0x87 //Address setting of RAED_REG WRITE_REG
#define SET_CMD 0xe1 //Set CMD
//CMD
#define RESET_CMD 0x3c
#define RESET_CMD_CRC 0x0088
#define CLEAR_BUF_CMD 0xc3
#define BLOCK_READ_CMD 0xaa
#define BLOCK_WRITE_CMD 0x55
#define BLOCK_ERASE_CMD 0x99
#define BLOCK_END 0x33
#define ResetMemStick() SendCMD(RESET_CMD)
#define ClearMemStickBuf() SendCMD(CLEAR_BUF_CMD)
#define MEMSTICK_INS 0x08 // zjj add 2002-7-18 19:18
#define UMEMSTICK_INS 0xF7 // zjj add 2002-7-18 19:18
#define GET_INS ( GetReg8(IN_K6D_ADDR)&MEMSTICK_INS ) // zjj add 2002-7-18 19:18
//#define SET_LED SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR) & 0xef)
//#define CLR_LED SetReg8(IO_P0D_ADDR,GetReg8(IO_P0D_ADDR) | 0x10)
#define SET_LED SetReg8(IO_P2D_ADDR,GetReg8(IO_P2D_ADDR) & 0xFE)
#define CLR_LED SetReg8(IO_P2D_ADDR,GetReg8(IO_P2D_ADDR) | 0x01)
#define MS_POWER_ON SetReg8(IO_P1D_ADDR,GetReg8(IO_P1D_ADDR) & 0xBF)
#define MS_POWER_OFF SetReg8(IO_P1D_ADDR,GetReg8(IO_P1D_ADDR) | 0x40)
extern int InitMemStick(void);
int M_ReadSectors(unsigned char* Buffer, unsigned long StartSec, unsigned long Sectors);
int M_WriteSectors(unsigned char* Buffer, unsigned long StartSec, unsigned long Sectors);
void SleepMS(void);
void WakeupMS(void);
extern void SleepMSAll();
#endif
//End of moudle
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -