📄 hpi16.c
字号:
//====================================================================
// File Name : HPI16.c
// Function : S3C2440 communicate with DSP6713
// Program : Kong, In Wook (KIW)
// Date : May 30, 2002
// Version : 0.0
// History
// 0.0 : Programming start (May 30,2002) -> KIW
// Arrangement source code(8/01/2002)-> SOP
// Edited for SMDK2440(07/07/2003) -> Junon
//====================================================================
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "HPI16.h"
void HPIC_Write(short data);
long HPIC_Read(void);
void HPIA_Write(long data);
long HPIA_Read(void);
void HPID_AUTO_Write(long data);
long HPID_AUTO_Read(void);
void HPID_FIX_Write(long data);
long HPID_FIX_Read(void);
void HPI16_Test(void);
void HPIC_Write(short data)
{
HPI16_HPIC_WL=data;
HPI16_HPIC_WH=data;
}
long HPIC_Read(void)
{
long data=0;
long datah=0;
data=HPI16_HPIC_RL;
datah=HPI16_HPIC_RH;
data=data+(datah<<16);
return(data);
}
void HPIA_Write(long data)
{
HPI16_HPIA_WL=data&0xffff;
HPI16_HPIA_WH=data>>16;
}
long HPIA_Read(void)
{
long data=0;
long datah=0;
data=HPI16_HPIA_RL;
datah=HPI16_HPIA_RH;
data=data+(datah<<16);
return(data);
}
void HPID_AUTO_Write(long data)
{
HPI16_HPID_AUTO_WL=data&0xffff;
HPI16_HPID_AUTO_WH=data>>16;
}
long HPID_AUTO_Read(void)
{
long data=0;
long datah=0;
data=HPI16_HPID_AUTO_RL;
datah=HPI16_HPID_AUTO_RH;
data=data+(datah<<16);
return(data);
}
void HPID_FIX_Write(long data)
{
HPI16_HPID_FIX_WL=data & 0xffff;
HPI16_HPID_FIX_WH=data>>16;
}
long HPID_FIX_Read(void)
{
long data=0;
long datah=0;
data=HPI16_HPID_FIX_RL;
datah=HPI16_HPID_FIX_RH;
data=data+(datah<<16);
return(data);
}
void HPI16_Test(void)
{
long i=0xfffff;
// long j=0;
int HPIC_Initialize=0x5;//清除hint
// long HPIC_Data_Read=0;
long Data_Read_Addr=0x80000000;
long Data_Write_Addr=0x80000000;
//long Data_Auto_Addr=0x80000000;
long HPID_Data_Read=0;
long HPID_Data_Write=0xaa55aa55;
rBWSCON=rBWSCON|(1<<18)|(0x01<<16);//enable bank4 nWAIT,16 bit DATA BUS 16.12,08.1
//rBWSCON=rBWSCON|(1<<22)|(0x01<<20);//enable bank5 nWAIT,16 bit DATA BUS
//rBANKCON4=(0x10<<13)|(0x10<<11)|(0x101<<8)|(0x11<<6);
rBANKCON4=(0x10<<13)|(0x100<<8)|(0x11<<6);
//rBANKCON5=(0x10<<13)|(0x100<<8)|(0x11<<6);
Uart_Printf("Communicating with DSP6713,Wating......\n");
ChangeRomCacheStatus(RW_NCNB);
//rINTMSK=BIT_ALLMSK;// 10.17.1007.LZY
//rGPBDAT=rGPBDAT&0xfffffffe;
rGPGDAT=rGPBDAT&0xfffffffe;
HPIC_Write(HPIC_Initialize);//HWOB=1;first low
//Uart_Printf("Write:%x to HPIC\n",HPIC_Initialize);
//Uart_Printf("Write Data:%8x TO Address:%8X;\n", HPID_Data_Write,Data_Write_Addr);
Uart_Printf("Read Data From Address:%8X;\n ",Data_Read_Addr);
HPIA_Write(Data_Read_Addr);
//HPIA_Write(Data_Auto_Addr);
while(i--)
{
//HPID_AUTO_Write(0x55aa55aa);
/*HPID_Data_Read=HPID_AUTO_Read();
Uart_Printf(":%8x;\n",HPID_Data_Read);*/
HPIA_Write(Data_Write_Addr);
HPID_FIX_Write(HPID_Data_Write);
HPIA_Write(Data_Read_Addr);
HPID_Data_Read=HPID_FIX_Read();
Uart_Printf(":%8x;\n ",HPID_Data_Read);
Data_Write_Addr+=0x4;
Data_Read_Addr+=0x4;
i=i+2;
i=i-2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -