请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320VC5509A 你(们)好 我的主板 HX-5509a 有问题。 当我在0x10000范围内写入 SDRAM 时、SDRAM 中的数据是正确的。 但是 、当我增大缓冲区的大小 时、数据不正确并停留在循环中。
有什么建议吗? 以下是代码(程序在 第一段时间卡在中):
#include #include #include #include uint16 x; uint32 y; CSLbool b; long int datacount = 0; int databuffer[1000]={0}; int * sourceaddr、* deminaddr; pll_Config MyConfig ={ 0、//IAI:PLL 使用进入 空闲模式之前正在进行的相同过程进行锁定 、1/IOB: 如果 PLL 指示锁相中断、 //它切换到其旁路模式并重新启动 PLL 锁相 //序列 24、// PLL 乘法值;乘以24乘 以1//除以2 PLL 除法值; 它可以是 PLL 分频值 //(当 PLL 被启用时),也可以是旁路模式分频值 //(如果 PLL 乘法值被设置为1) }; EMIF_Config emiffig ={ 0x221、//EGCR: MEMFREQ = 00、存储器的时钟频率等于 CPU 频率 // WPE = 0、对于写入布置、当我们调试 EMIF // MEMCEN = 1时、存储器时钟反映在 CLKMEM 引脚 上// NOHOLD = 1、HOLD 请求不被识别 EMIF 0xFFFF、//EMI_RST:对该寄存器的任何写入都将复位 EMIF 状态机 0x3FFF、//ce0_1:ce0空间控制寄存器1 // MTYPE = 011、同步 DRAM (SDRAM)、16位数据总线宽度 0xFFFF、//ce0_2:ce0空间控制寄存器2 0x00FF、/ce3 = 0xFFF/ ce3;ce0:/ce3:0xFFF0 CE0空间控制寄存器1 0xFFFF、//CE1_2:CE0空间控制寄存器2 0x00FF、//CE1_3:CE0空间控制寄存器3 0x3FFF、//CE2_1:CE0空间控制寄存器1 0xFFFF、//CE2_2:CE0空间控制寄存器2 0x00FF、//CE2_3 :CE0空间控制寄存器1 0xFFFF、CE3:CE0 CE0空间控制寄存器2 0x00FF、//CE3_3:CE0空间控制寄存器3 0x2911、//SDc1:SDRAM 控制寄存器1 // TRC = 8 // SDSIZE = 0;SDWID = 0 // RFEN = 1 // tRCD = 2 // TRP = 2 0x0410,//SDPER: SDRAM 周期寄存 器// 7ns * 4096 0x07FF、//SDINIT:SDRAM 初始化寄存器 //对该寄存器进行任何写操作以初始化所有 CE 空间, //在硬件复位或 C55x 器 件上电后执行此操作0x0131 // SDC2:SDRAM 控制寄存器2 // SDACC = 0; // TMRD = 01; // tras = 0101; // TAC5V2ACTV = 0001; }; main () { CSL_init (); chip_RSET (XBSR、0x0a01); PLL_CONFIG (&MyConfig); EMIF_CONFIG (&emiffount); int i = 0; sourceaddr =(int *) 0x0250000; deminaddr =(int *) 0x0260000; long int s = 100000; for (i=0;i<1000;i++) databuffer[i]=0; while (datacig