现在使用C6748,EMIFA数据总线为16位,将FPGA挂载到EMIFA的CS4的空间上,,我怎么给FPGA给一个32位数呢?
#define CS4_ADRS 0x64000000
void main(void)
{
*((UINT16 *)CS4_ADRS+0x022A) = 0x11111111;
}
直接像上面的测试程序可以吗?
Shine:
c6748 EMIFA的数据总线只有16位,所以只能发送16位宽的数据。
jie tian2:
回复 Shine:
嗯,还有一点不明白,我之前将FPGA挂载在C6747的EMIFA上,而且C6747的EMIFA也是16的数据总线,DSP为什么可以直接给一个32位的数呢????
Shine:
回复 jie tian2:
你是指的32位数分两次16bit位宽发送?
jie tian2:
回复 Shine:
嗯,之前使用16位宽的C6747的EMIFA时,dsp可以直接给到一个地址上一个32位数,他应该是分两次发送的,但我并没做什么动作;而同样16位宽的C6748一次性只能给16位的数,这个不太理解???
Shine:
回复 jie tian2:
c6747 EMIFA和C6748 EMIFA一样也是16bit的。你在c6747上是怎么操作的?
jie tian2:
回复 Shine:
嗯,都是16位的。我在C6747上的操作如下:
*((unsigned volatile int*)CH1_CODE_NCO_FREQ6)=0Xaaaa1111; 完全可以给到一个地址上一个32位数,而且在数据总线上也可以看到高16,低16位数据轮流发送;
而现在C6748只能给一个16位的数,如果想发送32位数,必须分两次,比如:
*((unsigned volatile int*)CH1_CODE_NCO_FREQ6)=0Xaaaa;
*((unsigned volatile int*)CH1_CODE_NCO_FREQ6)=0X1111;
这是为什么?????