This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
好像不是上面的问题了。。我用DSP给FPGA发送数据(一个启动信号bit1)
//启动信号
PFPGA=(int *)(FPGA_baseAddr+4*(FPGA_writeAddr+CHANNEL_SYS+FPGA_restAddr));
*PFPGA=0x0;
运行完这一句后,DSP内存里原来的数据和SDRAM里的数据值都被改变了,然后PFPGA指针不再指向0xA00004000,而是变成0x0000FFF8和刷新后变成0x00380038这两个值。。就是说DSP给FPGA发送数据后,DSP内存受到影响了。感觉不是硬件问题,其他例程都好好的。为什么啊
/* EMIF配置 */
*(int *)EMIF_GCTL = 0x00003060;/* EMIF global control register */
*(int *)EMIF_CE1 = 0xFFFFFF23; /* CE1 - 16-bit asynch access */
*(int *)EMIF_CE0 = 0xFFFFFF30; /* CE0 - SDRAM */
*(int *)EMIF_CE2 = 0x3233C823; /* CE2 - 32-bit asynch on daughterboard */
*(int *)EMIF_CE3 = 0xFFFFFF13; /* CE3 - 32-bit asynch on daughterboard */
*(int *)EMIF_SDRAMCTL = 0x57117000; /* SDRAM control register (100 MHz)*/
*(int *)EMIF_SDRAMTIMING = 0x0000061a; /* SDRAM Timing register */
SDRAM是128M大小
DSP可以给FPGA发送数据也能发送启动信号,但是这时候不能从SDRAM中读数据,我单步调试的时候出现错误
PFPGA=(int *)(FPGA_baseAddr+4*(FPGA_writeAddr+CHANNEL_NO3+NAV_HEAD));
*PFPGA=20-CNT_1ms[2];
//启动信号
PFPGA=(int *)(FPGA_baseAddr+4*(FPGA_writeAddr+CHANNEL_SYS+FPGA_restAddr));
*PFPGA=0x0;
//发送导航电文
PFPGA=(int *)(FPGA_baseAddr+4*(FPGA_writeAddr+CHANNEL_NO3+NAV_DATA)); //以上可以正常运行
for(j=1500+CNT_20ms[2];j<37500;j++)
{
temp0=bits[2][j];
temp0=temp0-48;
*PFPGA=temp0;
}
这段代码中单步运行到temp0=bits[2][j]出现错误,bits是在SDRAM 0x80000000地址的大数组,还是不能读SDRAM。。。之前也有读FLASH数据的程序,也是同样的错误
begin
if((TCE2n==0)&&(TEA==20'h01310)&&(TSDWEn==0))
fifo_in13<=TED[0];
end
always@(posedge TECLKOUT)
begin
if((TCE2n==0)&&(TEA==20'h01000)&&(TSDWEn==0))
reset1<=TED[0];
end
reg [15:0] delay_nav13;
always@(posedge TECLKOUT)
begin
if((TCE2n==0)&&(TEA==20'h01320)&&(TSDWEn==0))
delay_nav13<=TED[15:0];
end
这是部分FPGA程序