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

📄 bf53x.h

📁 adi bf54x 通过spi接口读取memory程序
💻 H
字号:
#ifndef __BF533_H__
#define __BF533_H__
//this bf53x.h file is used to flash game player pcb
#include <cdefBF533.h>
#include <stdio.h>

#define SCL		0x0001		// PF0
#define SDA		0x0002		// PF1
#define SCLK		0x0001		// PF0
#define SDATA		0x0002		// PF1


#define CLR_PF(pf) ((*pFIO_FLAG_C = pf))
#define SET_PF(pf) ((*pFIO_FLAG_S = pf))
#define READ_PF_STAT(pf) ((pf = *pFIO_FLAG_D))
#define SDA	0x0002
#define SCL 0x0001


#define TIMOD_TX  0x0001
#define TIMOD_RX  0xFFFc
#define SLAVE     0x0010
#define MASTER    0x1000
#define MISO     0x0020
#define SPI_EN    0x4000


//--------------------------------------------------------------------------//
// system interrupt Support													//
//--------------------------------------------------------------------------//
#define PF#x (1<<x)
#define EDUKIT_INT 		PF5

#define IRQ_PFx (EDUKIT_INT)

#define TIMOD_T 0x0001
#define TIMOD_R 0x0000
#define TIMOD_TDMA 0x0011
#define TIMOD_RDMA 0x0010	

//--------------------------------------------------------------------------//
// platform Support															//
//--------------------------------------------------------------------------//
static inline void udelay(volatile int ms)
{
	volatile int i;
	while(ms--)
		for(i=6; i>0; i--);
}


static inline void delay(int ms)
{
	while(ms--)
		udelay(1);
}

////////////////////////////////////////////
//EZKIT  LED Ctrl
/////////////////////////////////////////////
#define pFlashA_PortA_Dir	(volatile unsigned char *)0x20270006
#define pFlashA_PortA_Data	(volatile unsigned char *)0x20270004
// addresses for Port B in Flash A
#define pFlashA_PortB_Dir	(volatile unsigned char *)0x20270007
#define pFlashA_PortB_Data	(volatile unsigned char *)0x20270005


//--------------------------------------------------------------------------//
// LED Support																//
//--------------------------------------------------------------------------//
#define		LED4	(0x1)
#define		LED5	(0x2)
#define		LED6	(0x4)	
#define		LED7	(0x8)
#define		LED8	(0x10)
#define		LED9	(0x20)
										// Set Port B of FLASH to outputs (LEDs)		
inline	void	Setup_LEDs()	{ 		*pFlashA_PortB_Dir = 0x3f;	 }
inline  void    Leda_Off()      {		*pFlashA_PortB_Data = 0;  }
inline 	void	Led4_On()		{		*pFlashA_PortB_Data |= LED4; }
inline 	void	Led4_Off()		{		*pFlashA_PortB_Data &= ~LED4; }
inline 	void	Led5_On()		{		*pFlashA_PortB_Data |= LED5; }
inline 	void	Led5_Off()		{		*pFlashA_PortB_Data &= ~LED5; }
inline 	void	Led6_On()		{		*pFlashA_PortB_Data |= LED6; }
inline 	void	Led6_Off()		{		*pFlashA_PortB_Data &= ~LED6; }
inline 	void	Led7_On()		{		*pFlashA_PortB_Data |= LED7; }
inline 	void	Led7_Off()		{		*pFlashA_PortB_Data &= ~LED7; }
inline 	void	Led8_On()		{		*pFlashA_PortB_Data |= LED8; }
inline 	void	Led8_Off()		{		*pFlashA_PortB_Data &= ~LED8; }
inline 	void	Led9_On()		{		*pFlashA_PortB_Data |= LED9; }
inline 	void	Led9_Off()		{		*pFlashA_PortB_Data &= ~LED9; }
										
inline	void	Led_On(short LED) {		*pFlashA_PortB_Data |= 0x1<<(LED-4);	}
inline	void	Led_Off(short LED){		*pFlashA_PortB_Data &= ~(0x1<<(LED-4));	}

//////////////////////////////////////////
//LED  END
//////////////////////////////////////////



static inline void Init_IIC(void)
{
	*pFIO_DIR	= 0x0010;
	*pFIO_INEN	= 0x0100;
}

//--------------------------------------------------------------------------//
// SD card Support															//
//--------------------------------------------------------------------------//





#define SPISS PF2
#define ASSERT_CS(x)		(*pSPI_FLG = x)
#define DEASSERT_CS(x)		(*pSPI_FLG = x<<8)




//////////////////////////////////////////////////////////
//
//
//                       CPLD 映射
//    
//                
/////////////////////////////////////////////////////////

/************************************************************/
/*               define base addresses	                 				   	*/
/************************************************************/
#define PCMCIABaseAddr		0x20340000
#define DM9000BaseAddr      0x20320000
#define IDECS0BaseAddr      0x20300000
#define pIDECS0BaseAddr		(volatile unsigned short *)IDECS0BaseAddr

#define pIDECS1BaseAddr		(volatile unsigned short *)0x20310000

#define pDM9000BaseAddr		(volatile unsigned short *)DM9000BaseAddr

#define pUSBCSBaseAddr		(volatile unsigned short *)0x20330000

#define pPCMCIABaseAddr		(volatile unsigned short *)PCMCIABaseAddr
#define pNAND_BaseaAddr		(volatile unsigned short *)0x203f0000



#define  NAND_CLE		0x200    
#define  NAND_ALE		0x100 
#define  NAND_CE		0x400
#define  NAND_RDY		0x800

/************************************************************/
/*               I/O  write              				   	*/
/************************************************************/

#define  pCtrOut_Flag_OE      (volatile unsigned char *)0x20350000


#define  MOTOR_OE           0x01
#define  TFT_245_OE         0x02
#define  CMOS_245_OE        0x04
#define  PS2_Mouse_OE       0x08
#define  PS2_Key_OE         0x10
#define  LED_OE             0x20
#define  ADG704_OE          0x40
#define  IRDA_SD            0x80



#define  pCtrIner_Flag_OE      (volatile unsigned char *)0x20360000

#define   MOUSE_SW_OE   	0x01
#define   KEY_SW_OE       0x02
#define   LEDCS             0x04
#define   SPI_OE             0x08
#define   ADSSW             0x10

#define  PCM_SWICH_OE  0x10
#define PCMCIA_MEM_MODE	 0x00
#define PCMCIA_PIO_MODE	 0x08


#define pCtrOut_Flag_A      (volatile unsigned char *)0x20370000

#define  MOTOR_A          0x01
#define  MOTOR_B          0x02
#define  MOTOR_C          0x04
#define  MOTOR_D          0x08
#define     MOUSE_DIR     0x10
#define     KEY_DIR       0x20
#define  CMOS_RST         0x40





#define pCtrOut_Flag_B     (volatile unsigned char *)0x20380000

#define   SPI_A0     0x01
#define   SPI_A1     0x02
#define   SPI_A2     0x04
#define   PCM_A    0x08
#define   LED_A0     0x20
#define   LED_A1     0x40


#define pLED_DAT_OUT     (volatile unsigned char *)0x20390000


#define pCtrOut_Flag_C     (volatile unsigned char *)0x203A0000

#define     USB_D_SUS          0x01
#define     USB_H_SUS          0x02
#define     KEY_OUT_CLK      0x04
#define     MOUSE_OUT_CLK    0x08
#define     KEY_SW           0x10
#define     MOUSE_SW         0x20
#define     ADG_SET          0x40
#define     AD_LDAC          0x80





/************************************************************/
/*               I/O  read               				   	*/
/************************************************************/




#define pCtrIn_Int_A      (volatile unsigned char *)0x203c0000

#define   ISP1362_INT2    0x01
#define   ISP1362_INT1    0x02
#define   PCMCIA_INT    0x04
#define   DM9000_INT     0x08
#define   ADDA_INT      0x10
#define   ADS_INT        0x20
#define   CAN_INT        0x40
#define   KEY_INT        0x80


#define pCtrIn_Int_B       (volatile unsigned char *)0x203d0000

#define  DMB_INT0   0x01
#define  DMB_INT1   0x02
#define  Mouse_INT   0x04
#define  Keyy_INT    0x08
#define  ADS_BUSY   0x10
#define  DM9000_IOWAIT  0x20
#define  PCMCIA_WAIT    0x40
#define  PCMCIA_CD      0x80


////////////////////////////////////////////////////
/////////////////// CPLD END//////////////////////////
////////////////////////////////////////////////////
//UARTbps
#define  UART_9600bps		351

//KEYBOARD
static inline void keyboard_enable(void)
{
	 *pCtrIner_Flag_OE =0xff&&(~SPI_OE);
 	 *pCtrOut_Flag_B =SPI_A2;
}
//TSP_CPLD	
static inline void InitTSP_CPLD(void)
{	
  *pCtrIner_Flag_OE =(0xff&(~SPI_OE)&(~ADSSW)); //SPI_switc 允许 
  *pCtrOut_Flag_B  =(SPI_A0|SPI_A1);//0x01; // 选择CAN_SPISS

}
//TFT_CPLD
static inline void Init_TFT_CPLD(void)  
{
	*pCtrOut_Flag_OE  =0xff&(~TFT_245_OE);	// 0xef;
    *pCtrOut_Flag_A =ADG_SET; 			//0x40;
    delay(200);	
}
//MOUSE_CPLD
static inline void Init_MOUSE_CPLD(void)
{
	*pCtrIner_Flag_OE =(0xff&(~MOUSE_SW_OE));//MOUSE_SW_OE=0
	*pCtrOut_Flag_OE =(0xff&(~PS2_Mouse_OE));//245_OE=0;
}
//KEY_CPLD
static inline void init_KEY_CPLD(void)
{
	*pCtrOut_Flag_OE  =(0xff&(~PS2_Key_OE ));//245_OE=0;
	*pCtrIner_Flag_OE =(0xff&(~KEY_SW_OE));//KEY_SW_OE=0
	*pCtrOut_Flag_C   = KEY_SW ;//KEY_SW=1
	delay(200);
}
//LED_CPLD
static inline void init_LED_CPLD(void)
{  
    *pCtrOut_Flag_OE &=(0xff&(~LED_OE));
}
//UART_CPLD
static inline void init_UART_CPLD(void)
{
	*pCtrOut_Flag_OE  &= (0xff&(~IRDA_SD));		//置低IRDA的SD脚
}
//CMOS_CPLD
static inline void Init_CMOS_CPLD(void)
 { 
	*pCtrOut_Flag_OE=~CMOS_245_OE; //CMOS_OE 245 允许 ADG_OE=1
	*pCtrOut_Flag_C  =~ADG_SET; //ADG SET =0; 	
}
//CMOS_PPI_SET
static inline void Init_FLASH_PPISET(void)
{
	*pFlashA_PortA_Dir  = 0xFF;
	*pFlashA_PortA_Data = 0x20; //EXTERN PPICLK ENABLE
}
//CAN_CPLD
static inline void init_CAN_CPLD(void)
{
	*pCtrIner_Flag_OE =(~SPI_OE)|ADSSW ; //SPI_switc 允许 
 	*pCtrOut_Flag_B   =SPI_A0;//0x01; // 选择CAN_SPISS
}

//NANDFLASH FLAG_SET

/****************************************************************************
* 名称 : Set_CE
* 功能 : 控制CE线
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static inline void Set_CE(bool state)
{
	if(!state)
	{	
		*pFIO_FLAG_C =  NAND_CE;
	}
	else
	{
		*pFIO_FLAG_S |= NAND_CE;
	}

}
/****************************************************************************
* 名称 : Set_CLE
* 功能 : 控制CLE线
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static inline void Set_CLE(bool state)
{
	if(!state)
	{
		*pFIO_FLAG_C =  NAND_CLE;
	}
	else
	{
		*pFIO_FLAG_S |= NAND_CLE;	
	}

}
/****************************************************************************
* 名称 : Set_ALE
* 功能 : 控制ALE线
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static inline void Set_ALE(bool state)
{
	if(!state)
	{
		*pFIO_FLAG_C =  NAND_ALE;
	}
	else
	{
		*pFIO_FLAG_S |= NAND_ALE;	
	}
}
#endif 











⌨️ 快捷键说明

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