求助,在5502中SDRAM的写入过程要用210ns,如何提升速度

[复制链接]
4713|12
 楼主| ljtianya 发表于 2008-7-10 15:40 | 显示全部楼层 |阅读模式
在TMS320VC5502中,对SDRAM写操作,居然要210ns,简直无法干活,请教前辈,怎样解决这个问题?我对EMIF的相关寄存器进行设置,如WRITE SETUP 、WRITE STROBE 、WRITE HOLD ,对写操作消耗时间一点都没变化,很郁闷呀,在论坛上有说这是5502本身问题,在操作EMIF时自动插入了很多时钟周期,而且不能改它,请教前辈如何解决这个问题,有否可能在50~80ns完成?我看过有资料说5502只支持最高为100MHZ的EMIF频率,SDRAM频率再高也上不去吗,是否是这样?很急呀,请指点!谢谢!
 楼主| ljtianya 发表于 2008-7-11 11:04 | 显示全部楼层

请各位前辈帮帮忙

这样的描述应该清楚了吧,请指点。谢谢!
 楼主| ljtianya 发表于 2008-7-14 13:47 | 显示全部楼层

自己顶下

100MHZ的EMIF速度,为何要200多ns才完成一次SDRAM操作?
luhuaren 发表于 2008-7-14 14:08 | 显示全部楼层

re

要看你配置的外部总线的速度
 楼主| ljtianya 发表于 2008-7-14 15:39 | 显示全部楼层

补充点

这个系统的一些参数是这样的:SDRAM&nbsp;时钟100MHZ&nbsp;,EMIF时钟&nbsp;100MHZ,设置如下程序的,希望得到前辈们的指点。<br /><br />把程序代码也贴出来:这是合众达的5502开发板的测试例程,因为在我的程序里SDRAM消耗太多时间,所以单独用这个来测试SDRAM操作速度。<br /><br />#include&nbsp;&ltcsl.h&gt<br />#include&nbsp;&ltcsl_pll.h&gt<br />#include&nbsp;&ltcsl_emif.h&gt<br />#include&nbsp;&ltcsl_chip.h&gt<br />#include&nbsp;&ltcsl_emifBhal.h&gt<br />#include&nbsp;&ltstdio.h&gt<br /><br />#define&nbsp;&nbsp;GPIODIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;ioport&nbsp;Uint16*)(0x3400))<br />#define&nbsp;&nbsp;GPIODATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;ioport&nbsp;Uint16*)(0x3401))<br /><br />#define&nbsp;DataLength&nbsp;1000<br />Uint16&nbsp;i;<br /><br />#pragma&nbsp;DATA_SECTION&nbsp;(SourData,&quot;.sourdata&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />Uint32&nbsp;&nbsp;&nbsp;&nbsp;SourData[DataLength];<br /><br />/*SDRAM的EMIF设置*/<br />EMIF_Config&nbsp;MyEmifConfig&nbsp;=&nbsp;{<br />EMIF_GBLCTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EMIF&nbsp;Global&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_GBLCTL1_NOHOLD_HOLD_ENABLED,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Hold&nbsp;enable<br />&nbsp;&nbsp;EMIF_GBLCTL1_EK1HZ_EK1EN,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;High-Z&nbsp;control<br />&nbsp;&nbsp;EMIF_GBLCTL1_EK1EN_ENABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT1&nbsp;Enable<br />&nbsp;&nbsp;),<br />EMIF_GBLCTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EMIF&nbsp;Global&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_GBLCTL2_EK2RATE_4XCLK,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT2&nbsp;Rate<br />&nbsp;&nbsp;EMIF_GBLCTL2_EK2HZ_EK2EN,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EK2HZ&nbsp;=&nbsp;0,&nbsp;ECLKOUT2&nbsp;is&nbsp;driven&nbsp;with&nbsp;value&nbsp;specified&nbsp;by&nbsp;EKnEN&nbsp;during<br />&nbsp;&nbsp;EMIF_GBLCTL2_EK2EN_ENABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT2&nbsp;Enable&nbsp;(enabled&nbsp;by&nbsp;default)<br />&nbsp;&nbsp;),&nbsp;<br />EMIF_CE1CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_CE1CTL1_TA_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL1_READ_STROBE_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL1_MTYPE_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL1_WRITE_HOLD_MSB_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL1_READ_HOLD_DEFAULT<br />&nbsp;&nbsp;),<br />EMIF_CE1CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_SETUP_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_STROBE_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_HOLD_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE1CTL2_READ_SETUP_DEFAULT<br />&nbsp;&nbsp;),<br />EMIF_CE0CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_CE0CTL1_TA_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE0CTL1_READ_STROBE_OF(2),<br />&nbsp;&nbsp;EMIF_CE0CTL1_MTYPE_32BIT_SBSRAM,<br />&nbsp;&nbsp;EMIF_CE0CTL1_WRITE_HOLD_MSB_DEFAULT,<br />&nbsp;&nbsp;EMIF_CE0CTL1_READ_HOLD_OF(2)<br />&nbsp;&nbsp;),<br />EMIF_CE0CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_SETUP_OF(2),<br />&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_STROBE_OF(2),<br />&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_HOLD_OF(2),<br />&nbsp;&nbsp;EMIF_CE0CTL2_READ_SETUP_OF(2)<br />&nbsp;&nbsp;),<br />EMIF_CE2CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_CE2CTL1_TA_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Not&nbsp;use&nbsp;for&nbsp;SDRAM&nbsp;(asynchronous&nbsp;memory&nbsp;types&nbsp;only)<br />&nbsp;&nbsp;EMIF_CE2CTL1_READ_STROBE_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL1_MTYPE_32BIT_SDRAM,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;32-bit-wide&nbsp;SDRAM<br />&nbsp;&nbsp;EMIF_CE2CTL1_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL1_READ_HOLD_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;),<br />EMIF_CE2CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_SETUP_OF(5),&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_STROBE_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_HOLD_OF(5),&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL2_READ_SETUP_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;),<br />EMIF_CE3CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_CE3CTL1_TA_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Not&nbsp;use&nbsp;for&nbsp;SDRAM&nbsp;(asynchronous&nbsp;memory&nbsp;types&nbsp;only)<br />&nbsp;&nbsp;EMIF_CE3CTL1_READ_STROBE_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;EMIF_CE2CTL1_MTYPE_32BIT_SDRAM,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;32-bit-wide&nbsp;SDRAM<br />&nbsp;&nbsp;EMIF_CE3CTL1_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;EMIF_CE3CTL1_READ_HOLD_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;),<br />EMIF_CE3CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_SETUP_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_STROBE_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;EMIF_CE3CTL2_READ_SETUP_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;),<br />EMIF_SDCTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_SDCTL1_TRC_OF(5),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Specifies&nbsp;tRC&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles.<br />&nbsp;&nbsp;EMIF_SDCTL1_SLFRFR_DISABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Auto-refresh&nbsp;mode&nbsp;<br />&nbsp;&nbsp;),<br />EMIF_SDCTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;0x11,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;4&nbsp;banks,11&nbsp;row&nbsp;address,&nbsp;8&nbsp;column&nbsp;address<br />&nbsp;&nbsp;EMIF_SDCTL2_RFEN_ENABLED,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Refresh&nbsp;enabled<br />&nbsp;&nbsp;EMIF_SDCTL2_INIT_INIT_SDRAM,<br />&nbsp;&nbsp;EMIF_SDCTL2_TRCD_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Specifies&nbsp;tRCD&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles<br />&nbsp;&nbsp;EMIF_SDCTL2_TRP_OF(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Specifies&nbsp;tRP&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles<br />&nbsp;&nbsp;),<br />0x61B,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Refresh&nbsp;Control&nbsp;Register&nbsp;1<br />0x0100,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Refresh&nbsp;Control&nbsp;Register&nbsp;2<br />EMIF_SDEXT1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Extension&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;EMIF_SDEXT1_R2WDQM_1CYCLE,<br />&nbsp;&nbsp;EMIF_SDEXT1_RD2WR_3CYCLES,<br />&nbsp;&nbsp;EMIF_SDEXT1_RD2DEAC_1CYCLE,<br />&nbsp;&nbsp;EMIF_SDEXT1_RD2RD_1CYCLE,<br />&nbsp;&nbsp;EMIF_SDEXT1_THZP_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;tPROZ2=2<br />&nbsp;&nbsp;EMIF_SDEXT1_TWR_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;EMIF_SDEXT1_TRRD_2CYCLES,<br />&nbsp;&nbsp;EMIF_SDEXT1_TRAS_OF(4),<br />&nbsp;&nbsp;EMIF_SDEXT1_TCL_3CYCLES<br />&nbsp;&nbsp;),<br />EMIF_SDEXT2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Extension&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;EMIF_SDEXT2_WR2RD_0CYCLES,<br />&nbsp;&nbsp;EMIF_SDEXT2_WR2DEAC_1CYCLE,<br />&nbsp;&nbsp;0,<br />&nbsp;&nbsp;EMIF_SDEXT2_R2WDQM_1CYCLE<br />&nbsp;&nbsp;),<br />EMIF_CE1SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />EMIF_CE0SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />EMIF_CE2SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />EMIF_CE3SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />EMIF_CESCR_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE&nbsp;Size&nbsp;Control&nbsp;Register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;};<br /><br />main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Uint16&nbsp;Errcount&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;初始化CSL库&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CSL_init();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;EMIF为全EMIF接口*/<br />&nbsp;&nbsp;&nbsp;&nbsp;CHIP_RSET(XBSR,0x0001);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置系统的运行速度为300MHz&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PLL_setFreq(1,&nbsp;0xF,&nbsp;0,&nbsp;1,&nbsp;3,&nbsp;2,&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;初始化DSP的外部SDRAM&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;EMIF_config(&MyEmifConfig);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;向SDRAM中写入数据&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltDataLength;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SourData&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errcount&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;读出SDRAM中的数据,并判断是否成功&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltDataLength;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&nbsp;!=&nbsp;SourData)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errcount++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(Errcount&nbsp;!=&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;SEED_DEC5502&nbsp;SDRAM&nbsp;操作失败
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;SEED_DEC5502&nbsp;SDRAM&nbsp;操作成功
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />GPIODIR=0xff;<br /><br />while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIODATA=0x10;<br />&nbsp;&nbsp;&nbsp;&nbsp;SourData[10]=&nbsp;0x05;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个操作用了210ns,太长了<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIODATA=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
lianshumou 发表于 2008-7-15 08:49 | 显示全部楼层

几点需要注意

1.SDRAM的随机操作本来就不快!&nbsp;<br />2.如果在赶上刷新周期那就更慢了!&nbsp;<br />3.你的程序是在SDRAM里的吧,&nbsp;如果你的程序代码和你要操作的地址不在一个bank,那bank切换又是很耗时的一个操作!
 楼主| ljtianya 发表于 2008-7-15 11:02 | 显示全部楼层

程序是BOOT到片上RAM运行的

程序是BOOT到片上RAM运行的,我测试过程序10个NOP运行时间是33&nbsp;ns,应该证明5502是运行在300MHZ的内核速度。<br /><br />在程序中有个错误:<br />&nbsp;/*&nbsp;设置系统的运行速度为300MHz&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PLL_setFreq(1,&nbsp;0xF,&nbsp;0,&nbsp;1,&nbsp;3,&nbsp;2,&nbsp;0);<br /><br />改成这个:<br />&nbsp;/*&nbsp;设置系统的运行速度为300MHz&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PLL_setFreq(1,&nbsp;0xF,&nbsp;0,&nbsp;1,&nbsp;3,&nbsp;1,&nbsp;0);<br />或者这个:<br />&nbsp;/*&nbsp;设置系统的运行速度为300MHz&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PLL_setFreq(1,&nbsp;0xF,&nbsp;0,&nbsp;1,&nbsp;3,&nbsp;0,&nbsp;0);<br /><br />SourData[10]=&nbsp;0x05;<br />运行时间就变成170ns,难道SYSCLK3对EMIF有影响?SDRAM的时钟用的是外部输入时钟。<br /><br />如果SDRAM速度上不去,换SBSRAM是否可行?<br /><br />这个系统是用来做500万像素的摄像头芯片图象数据采集的,因为这个速度太慢了,做不下去。说明点,只是采集图象数据,不用去显示。<br /><br />是否真的是5502的本身速度无法满足这么快,这个方案无法实现?真的谢谢大家!<br /><br />
renpingjun 发表于 2008-7-15 17:56 | 显示全部楼层

???

搞不懂,我的5502的EMIF&nbsp;执行一个赋值才CLOCK=2,是不是很低了??怎么和上面说的相差那么多?我还200M主频,也就10ns的事情,你的怎么这样呢?<br />我们都是从一个地方搞的源代码,你看看我的<br />extern&nbsp;void&nbsp;EMIF_init(void)<br />{<br />/*SDRAM的EMIF设置*/<br />&nbsp;&nbsp;&nbsp;&nbsp;EMIF_Config&nbsp;MyEmifConfig&nbsp;=&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EMIF&nbsp;Global&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL1_NOHOLD_HOLD_DISABLED,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Hold&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL1_EK1HZ_EK1EN,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;High-Z&nbsp;control<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL1_EK1EN_ENABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT1&nbsp;Enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EMIF&nbsp;Global&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL2_EK2RATE_1XCLK,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT2&nbsp;Rate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL2_EK2HZ_EK2EN,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EK2HZ&nbsp;=&nbsp;0,&nbsp;ECLKOUT2&nbsp;is&nbsp;driven&nbsp;with&nbsp;value&nbsp;specified&nbsp;by&nbsp;EKnEN&nbsp;during<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_GBLCTL2_EK2EN_ENABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECLKOUT2&nbsp;Enable&nbsp;(enabled&nbsp;by&nbsp;default)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_TA_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_READ_STROBE_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_MTYPE_16BIT_ASYNC,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_WRITE_HOLD_MSB_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_READ_HOLD_DEFAULT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_SETUP_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_STROBE_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL2_WRITE_HOLD_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL2_READ_SETUP_DEFAULT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL1_TA_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL1_READ_STROBE_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1CTL1_MTYPE_16BIT_SDRAM,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL1_WRITE_HOLD_MSB_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL1_READ_HOLD_DEFAULT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_SETUP_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_STROBE_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL2_WRITE_HOLD_DEFAULT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0CTL2_READ_SETUP_DEFAULT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_TA_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Not&nbsp;use&nbsp;for&nbsp;SDRAM&nbsp;(asynchronous&nbsp;memory&nbsp;types&nbsp;only)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_READ_STROBE_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_MTYPE_32BIT_SDRAM,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;32-bit-wide&nbsp;SDRAM<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_READ_HOLD_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_SETUP_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_STROBE_DEFAULT,//&nbsp;Write&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL2_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL2_READ_SETUP_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL1_TA_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Not&nbsp;use&nbsp;for&nbsp;SDRAM&nbsp;(asynchronous&nbsp;memory&nbsp;types&nbsp;only)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL1_READ_STROBE_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2CTL1_MTYPE_32BIT_SDRAM,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;32-bit-wide&nbsp;SDRAM<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL1_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL1_READ_HOLD_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Space&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_SETUP_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_STROBE_DEFAULT,//&nbsp;Write&nbsp;strobe&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL2_WRITE_HOLD_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;hold&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3CTL2_READ_SETUP_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;setup&nbsp;width<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL1_TRC_OF(6),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Specifies&nbsp;tRC&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL1_SLFRFR_DISABLED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Auto-refresh&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x15,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;4&nbsp;banks,12&nbsp;row&nbsp;address,&nbsp;8&nbsp;column&nbsp;address&nbsp;by&nbsp;rpj&nbsp;080709<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL2_RFEN_ENABLED,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Refresh&nbsp;enabled<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL2_INIT_INIT_SDRAM,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL2_TRCD_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1&nbsp;Specifies&nbsp;tRCD&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDCTL2_TRP_OF(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1&nbsp;Specifies&nbsp;tRP&nbsp;value&nbsp;of&nbsp;the&nbsp;SDRAM&nbsp;in&nbsp;EMIF&nbsp;clock&nbsp;cycles<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x61B,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Refresh&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0300,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Refresh&nbsp;Control&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Extension&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_R2WDQM_1CYCLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_RD2WR_3CYCLES,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_RD2DEAC_1CYCLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_RD2RD_1CYCLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_THZP_OF(1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;tPROZ2=2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_TWR_OF(0),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_TRRD_2CYCLES,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_TRAS_OF(4),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT1_TCL_2CYCLES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT2_RMK(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SDRAM&nbsp;Extension&nbsp;Register&nbsp;2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT2_WR2RD_0CYCLES,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT2_WR2DEAC_1CYCLE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_SDEXT2_R2WDQM_1CYCLE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE1SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE1&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE0SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE0&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE2SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE2&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CE3SEC1_DEFAULT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE3&nbsp;Secondary&nbsp;Control&nbsp;Register&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMIF_CESCR_DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CE&nbsp;Size&nbsp;Control&nbsp;Register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*配置系统的EMIF接口*/<br />&nbsp;&nbsp;&nbsp;&nbsp;EMIF_config(&MyEmifConfig);<br />}<br /><br /><br />//EMIF&nbsp;SYSCLK3&nbsp;GROUP<br />&nbsp;&nbsp;&nbsp;&nbsp;PLLDIV3&nbsp;=&nbsp;0x8000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Divider&nbsp;3&nbsp;enabled,&nbsp;EMIF=SYSCLK3=PLLOUT&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PLLDIV3&nbsp;|=&nbsp;0x0001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Divide&nbsp;by&nbsp;2(200M&nbsp;/2=100M)=10ns
 楼主| ljtianya 发表于 2008-7-15 20:02 | 显示全部楼层

按照renpingjun的设置,效果还是一样,真郁闷

问下renpingjun大哥,我照足你的方式,效果还是一样,170ns,请问下您的SDRAM&nbsp;&nbsp;CLK是从SYSCLK3给出的吗?我的是ECLKIN&nbsp;100MHZ给的,难道还有其他相关的寄存器没设置到?<br /><br />我把CMD文件也贴完出来:<br />MEMORY<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MMR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0000000h,&nbsp;length&nbsp;=&nbsp;00000c0h&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPRAM&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;00000c0h,&nbsp;length&nbsp;=&nbsp;0000040<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VECS&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0000100h,&nbsp;length&nbsp;=&nbsp;0000100h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DARAM0&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0000200h,&nbsp;length&nbsp;=&nbsp;0007E00h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DARAM1&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0008000h,&nbsp;length&nbsp;=&nbsp;0008000h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CE0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0010000h,&nbsp;length&nbsp;=&nbsp;03f0000h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;对应ZBTRAM空间&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FLASH&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0400000h,&nbsp;length&nbsp;=&nbsp;0100000h&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Flash&nbsp;空间&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTEND&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0500000h,&nbsp;length&nbsp;=&nbsp;0300000h&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;状态/控制寄存器、UARTA、UARTB、USB、和扩展总线所对应的空间&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CE2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0800000h,&nbsp;length&nbsp;=&nbsp;0400000h&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;SDRAM&nbsp;空间*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CE3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0c00000h,&nbsp;length&nbsp;=&nbsp;03f8000h&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;SDRAM&nbsp;空间*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDROM&nbsp;&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0ff8000h,&nbsp;length&nbsp;=&nbsp;07f00h&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;片上ROM空间&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RESET_VECS&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0ffff00h,&nbsp;length&nbsp;=&nbsp;00100h&nbsp;&nbsp;/*&nbsp;reset&nbsp;vector&nbsp;*/<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;<br />SECTIONS<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.vectors&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;VECS&nbsp;&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;interrupt&nbsp;vector&nbsp;table&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cinit&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.text&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sourdata&nbsp;:&nbsp;&nbsp;&nbsp;{}&nbsp;&gt&nbsp;CE2&nbsp;&nbsp;&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.RD5620dat&nbsp;:&nbsp;&nbsp;{}&nbsp;&gt&nbsp;CE0&nbsp;&nbsp;&nbsp;PAGE&nbsp;0<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stack&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM0&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sysstack:&nbsp;{}&nbsp;&gt&nbsp;DARAM0&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sysmem&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM0&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.data&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.bss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.const&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&gt&nbsp;DARAM1&nbsp;PAGE&nbsp;0<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.csldata:&nbsp;&nbsp;{}&nbsp;&gt&nbsp;DARAM0&nbsp;&nbsp;&nbsp;PAGE&nbsp;0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dmaMem:&nbsp;&nbsp;&nbsp;{}&nbsp;&gt&nbsp;DARAM0&nbsp;PAGE&nbsp;0<br />}<br />
 楼主| ljtianya 发表于 2008-7-16 10:25 | 显示全部楼层

补充点

我用的是合众达的开发板:SEED-DEC5502&nbsp;v1.0&nbsp;7.820.071&nbsp;&nbsp;200701&nbsp;这是版本信息。<br />SDRAM的型号是:StarRam&nbsp;4MX32T2&nbsp;没找着这个芯片的手册,合众达也没给过。<br />DSP型号:<br />TMS&nbsp;&nbsp;&nbsp;300<br />320VC5502PGF<br />CA-6CA3CDW<br /><br />同样的板,同样的程序,不同样的结果,真是邪门了。<br />
renpingjun 发表于 2008-7-16 17:15 | 显示全部楼层

我们硬件不一样

我是直接使用SYSCLK3进行EMIF配置时钟输出的,在ECLKOUT1上输出的。<br /><br />20M-200M------SYSCLK1(HIGHT&nbsp;PERIPH)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---/4-SYSCLK2(LOW&nbsp;PERIPH)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---/2-SYSCLK3(EMIF)(需要通过选择EMIFCLKS=0选择输出)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------CORECLK
 楼主| ljtianya 发表于 2008-7-16 17:36 | 显示全部楼层

寄存器设置都一样了

除了外围硬件不同,寄存器设置都一样,那它至少能跑出这样的速度才行呀,难道这款开发板只能是这样了?5502的系统寄存器也没见哪个影响EMIF速度的呀。试试改用SYSCLK3作为SDRAM的CLK看看。非常感谢renpingjun!
 楼主| ljtianya 发表于 2008-8-25 17:00 | 显示全部楼层

有哪位大哥测试过

有哪位大哥测试过:<br />单独运行:<br />while(1)<br />{<br />GPIODATA=0x01;<br />GPIODATA=0x00;<br />}<br />就一个拉高拉低输出,用示波器测量得到的波形,高电平部分竟然用时33ns;<br />一个检测输入IO状态<br />while(1)<br />{<br />if((GPIODATA&nbsp;&&nbsp;0x01)==0x01)<br />breka;<br />}<br />(相当于while((GPIODATA&nbsp;&&nbsp;0x01)==0x00);但我一般用上面那个写法,从汇编看,后面的用法要多两条汇编指令)<br />完成这个用了79ns,怎么会用这么长时间?<br />不知道这些用时是不是正常的,因为SDRAM操作速度跟不上,我做很不少速度上的测试,就发现了这些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

76

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部