This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好:
我正在尝试从0x00100000到0x00100008访问 CS2区域中的地址。 按照 技术参考手册、EMIF 已配置为异步模式。 对于读取/写入16位字、A0被连接至 EMxBA1、[A7:A1]被连接至[A6:A0]。 但是、从逻辑分析仪(Signaltap II)中可以看到28377d 的输出地址不正确。 CS2信号保持为1。 RNW 为0。 惊叹于1。 此外、CCS 中监控的指针是正确的。 这很奇怪。
我附加了我的代码。 有人可以给我一个提示吗? 非常感谢。
#include "F28x_Project.h" void main (void) { InitSysCtrl (); EALLOW; ClkCfgRegs.PERCLKDIVSEL.bit.EMIF1CLKDIV = 1;// PLLSYSCLK Regfor EMIF EDIS; InitGpio ();EALLOC=CLKDIV1.133 ;GPIO1.1/2;GPIO1.GPIO=GPIO1.GPIO1.bit.GPIO1.CMP1.133 ;GPIO1.GPIO1.GPIO1.GPIO1.CMO1.CMP1.CMP1.CMO1.CMP1.CMP1.CMP1.133 //CS2 rd WE GpioCtrlRegs.GPBMUX1.bit.GPIO32=2;//CS0低电平启用 GpioCtrlRegs.GPBMUX1.bit.GPIO34=2;/CS2低电平启用 GpioBMlRegs.GPUX1.bit.GPIO33=2;/GPUX2=314./GPioBMBO.GPIO2=2.GPBMBO.GPUX1.bit.GPIO2=315.G/2.GPIO1.bit.GPIO2=3.G/2.GPIO1.bit.GPIO1.bit.GPIO1.bit.GPIO2=3.nW/GPO1.bit.GPIO1.bit.GPIO1.bit 低电平启用 //addr GpioCtrlRegs.GPCMUX2.bit.GPIO92=3;//EM1BA1 GpioCtrlRegs.GPBMUX1.bit.GPIO38=2;//A0 GpioRegs.BMBIMUX1.bit.GPIO39=2;//A1 Gpio1.bit.GPIO2=GPIO1.GPIO2=GPBMUX1.GPIO1.GPIO1.bit.GPIO1.GPIO1.GPIO1.GPIO1.bit.GPIO2=GPIO1.GPIO1.GPIO2=GPIO1.GPIO1.GPIO1.GPIO1.GPIO1.GPIO1.GPIO1.bit.GPIO //A3 GpioCtrlRegs.GPBMUX1.bit.GPIO44=2;//A4 GpioCtrlRegs.GPBMUX1.bit.GPIO45=2;//A5 GpioCtrlRegs.GPBMUX1.bit.GPIO46=2;//A6 GpioRegs.GPUX2.GPIO2=GPUX2.GPIO2=GPBMUX2.G/2=GPIO4.BMUX2.G47=GPTX2.G2.GPTX2.GPTX2.GPTX2.GPTX1.bit.GPIO4.GPTX2.GPTX2.GPTX2.GPTX2. //A8 GpioCtrlRegs.GPBMUX2.bit.GPIO49=2;//A9 GpioCtrlRegs.GPBMUX2.bit.GPIO50=2;//A10 GpioCtrlRegs.GPBMUX2.bit.GPIO51=2;// A11 GpioRegs.GPIO2=GPBM2=GPIO12.G52 位 GPM2=GPIO12.G12=GPIO12.GDPX2.G2=GPIO12.G2=GPIO12.G2=GPIO12.G12=GPIO12.GDPX2.GPIO12.G12=GPIO12.G12=GPIO12.GCLA12.G //A13 GpioCtrlRegs.GPCMUX2.bit.GPIO87=2;//A14 GpioCtrlRegs.GPCMUX2.bit.GPIO88=2;//A15 GpioCtrlRegs.GPCMUX2.bit.GPIO89=2;// A16 GpioX2=Gpio91.GPCMUX2.GPCM2=Gpio91.GPCM2=GPCMB.GPCMU91.GPCM2=GPCMB.GPCMB.GPCMG.CLGPCM2=GPCMB.GPCMG.CLGPCM2=GPCMG.GPCMG.G //A18 //GpioCtrlRegs.GPCMUX2.bit.GPIO92=2;//A19 //数据 GpioCtrlRegs.GPCMUX1.bit.GPIO69=2; GpioCtrlRegs.GPCMUX1.bit.GPIO70=2; GpioCtrl72=2.Gpio1.Gpit.GPCMUX1=2.Gpio71;GpioMIP1=2.Gpit.GPCMUX1.GPCM1=2.Gpit.GPCMUX1.GPCM2=2.Gpit.GPCM1=2.GPCM1=2.Gp GpioCtrlRegs.GPCMUX1.bit.GPIO73=2; GpioCtrlRegs.GPCMUX1.bit.GPIO74=2; GpioCtrlRegs.GPCMUX1.bit.GPIO75=2; GpioCtrlRegs.GPCMUX1.bit.GPIO76=2;GpioCtrl.GPIO77=2 ;GpioCtrlRegs.GPCMUX1.bit.GPIO77=2 GpioCtrlRegs.GPCMUX1.bit.GPIO78=2; GpioCtrlRegs.GPCMUX1.bit.GPIO79=2; GpioCtrlRegs.GPCMUX2.bit.GPIO80=2; GpioCtrlRegs.GPCMUX2.bit.GPIO81=2;Gpio8=2=Gpio2=GpioCtrlRegs.GPCMU82=2;GPIO82=2 GpioCtrlRegs.GPCMUX2.bit.GPIO83=2; GpioCtrlRegs.GPCMUX2.bit.GPIO85=2; EDIS; Emif1Regs.ASYNC_CS2_CR.ALL =(EMIF_ASYNC_ASIZE_16 |// 16位内存 EMIF_ASYNC_4 | EMIF_ASYNC_RHOLD_8 | EMIF_ASYNC_RSTROBE_64 | EMIF_ASYNC_RSETUP_16 | EMIF_ASYNC_WHOLD_8 | EMIF_ASYNC_WSTROBE_64 | EMIF_ASYNC_WSETUP_16 | EMIF_ASYNC_EW_DISABLE | EMIF_ASYNC_SS_DISABLE); DINT; InitPieCtrl (); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EINT; int i; uint16 * ExRamStart =(uint16*) 0x00100000; 对于(i=0;i<0x0008;i++) { *(ExRamStart+I)=0x6666; } while (1) { GpioDataRegs.GPECLEAR.bit.GPIO133=1; DELAY_US (50000); GpioDataRegs.GPESET.BIO133=1; DELAY_US (50000); } }
您好、Vivek:
非常感谢您的回复。 我们可以在本帖子中对此进行讨论。 上一个帖子有一些错误、我无法删除该帖子。
我非常仔细地检查了连接。 我可以在 GPIO 模式下切换该引脚。 我可以从示波器看到切换。
此外、我检查了 SignalTap 的结果、在执行 for 循环时、没有任何数据总线(0000h)。 然而、当 for 循环完成时、最后一个值被放置在数据总线上(6666h)。
我期待您的反馈。
非常感谢