?? bf53x.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 + -