生产了一个板子,直接用DM9000的16位总线接口,裸机调试时,FPGA收到6410的数据库后,再把这个数据在发送回去,用示波器看DATA0~15的电压变化正常,6410发到总线的数据和电平波形一致,但是在读取总线数据时,只能读取低八位的数据,高八位被低八位自动覆盖,例如,我发送0xEEFF到总线,电平正常,但是只能读到0xFFFF,不清楚什么原因
static U16 FPGA_io(int data)
{
*(volatile int *)FPGA_BASE = data; //向总线写入数据
return *(volatile U16 *)(FPGA_BASE+FPGA_DATA_OFFSET); //从总线读出数据
}
static void testBUS(int x)
{
U16 tmp=FPGA_io(0xEEFF); //原来是变量x,后来发现一直输出ERROR,才用0xEEFF看现象
//Uart_SendString("\r\ni = ");
Uart_SendByte(x);
Uart_SendByte(x>>8);
//Uart_SendString(" get = ");
Uart_SendByte(tmp);
Uart_SendByte(tmp>>8);
//Uart_SendString(" FPGABUS STATUS = ");
// if(tmp-x)
// Uart_SendString("ERROR\r\n");
// else Uart_SendString("OK\r\n");
}