本人刚刚才学DSP,用的是c6713,它的EMIF口与FPGA相连,现将FPGA配置一个UART,也即是通过EMIF的ce3空间向FPGA发8位并行数据,经过FPGA的UART的并/串,串/并转换后得到8位原始并行数据,然后DSP再读取这8位数据,现经示波器测得数据线上这8位数据是对的,我是通过B0003800地址来向FPGA发数的,最终也是通过这个B0003800地址来读取这8位数据,我想问的是DSP从FPGA读取的数据在CCS中怎么看啊?我在ccs中的memory,看B0003800地址里面的值,但是有问题.不知怎么看这数据,不知DSP能不能直接读取FPGA输出来的数,退请高人指点,谢谢!
首先谢谢你的回答,你读取的是FPGA的数据,用的是SBSRAM?大哥是什么意思啊小弟不是很懂,在板子上6713通过ce0与SBSRAM也是连起来了,它的开始地址是0x80000000,我写的部份程序如下:
extern Uint32 *startadd2;
Uint32 *startadd2=(Uint32*)0xB0003800;
extern Uint32 *startadd3;
Uint32 *startadd3=(Uint32*)0x80000000;
extern Uint32 *startadd4;
*startadd2=0xffffffaa;
void GPIO5(void)
{
cnt++;
IRQ_disable(IRQ_EVT_GPINT6);
if(cnt%2)
*startadd2=0xffffff55;
else
*startadd2=0xffffffaa;
if(cnt>3)
{
IRQ_disable(IRQ_EVT_GPINT5);
}
IRQ_enable(IRQ_EVT_GPINT6);
}
interrupt void int5(void)
{
GPIO5();
return;
}
void GPIO6(void)
{
i++;
*startadd3=*startadd2;
if(i>4)
{
GPIO_close(hGpio);
IER &=0x0002;
}
}
interrupt void int6(void)
{
GPIO6();
return;
}
GPIO5和GPIO6分别是一个DSP向FPGA写程序和DSP向FPGA进行读程序,我是想把FPGA的数据读出来最后写到外部的SBSRAM里去,整个过程是这样的:DSP先发一个并行的数据到FPGA,到UART并串后引起DSP中断再接着向FPGA写个数据,而过后DSP读出UART串并后的并行数据,也就是*startadd2=0xffffffaa;先写个数据到FPGA后产生GPIO5中断,写 *startadd2=0xffffff55;然后引起GPIO5中断,读取第一个数 *startadd2=0xffffffaa;依次这样读下去,读与写的地址是一样的,都是用的是0xb0003800,用示波器测得串并后最后出来的数据是对的,加断点后,每中断写一个数据,也立即读出来了,也就是*startadd2=0xffffff55;后在CCS中的memory 中可看到0xb0003800为0xffffff55,但马上接着就被读出去了,在0x80000000就可看到55,应该是它的前一个数,并且发的第一个数*startadd2=0xffffffaa;在0x80000000始终看不到,请问各位大哥,是不是我的读程序有问题啊?刚接触DSP不是很懂啊,andy0821
仁兄,你那个i=*(int)(0xB );能不能具体写明白点啊?谢谢了!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |