之前有朋友问国产DSP EMIF接口的问题,那就简单介绍一下。EMIF是外部存储器和片内其它单元间的接口。总的来说,FT-M6678 EMIF接口与C6678的EMIF相差不大,从整体特性来说总线宽度支持32位,兼容16位核8位。寄存器上稍有调整,CSL调用方式不太一样,整体来说比较简单。
4个区域EMIF映射地址范围如下:
从代码角度来说,FT-M6678开始时需要启动EMIF的PSC:
PSC_Open_Clk("EMIF32",0);
然后初始化EMIF各个接口即可:
/*******************************************************************************
*函数名:InitEmif()
*功 能: EMIF初始化
*参 数: 无
*******************************************************************************/
void InitEmif()
{
RCSR=RCSR | 0x40000000;//EMIF功能扩展,包括32位
AWCCR=0xf0000480; //CE1配置为同步存储器,CE2配置为异步存储器。
A2CR=0x0000000A; //CE1配置为32位SBSRAM
A3CR=0x04222112; //CE2配置为32位ASRAM
}
关键寄存器就只有这几个:
设置完就可以使用了,较为简单。