您好,
使用EMIF1 CS3 16位ASRAM,
执行write-write-read-write,但实际结果是write-read-write-write。
*(UINT16 *) 0x30万=0x0005;0005;
*(UINT16 *) 0x30.0001万=0x0006;0006;
*(UINT16 *) 0x30.0002万=0x0007;0007;
用于(j=0;j<10;j++);
*(UINT16 *) 0x30.0007万=0x0005;0005;
*(UINT16 *) 0x30.0008万=0x0006;0006;
TestDat =*(UINT16 *) 0x30.0006万;
*(UINT16 *) 0x30.0009万=0x0007;0007;
黄色:EM1CS3,蓝色:EM1WE
执行write-write-nop读写,实际结果将正确。
*(UINT16 *) 0x30万=0x0005;0005;
*(UINT16 *) 0x30.0001万=0x0006;0006;
*(UINT16 *) 0x30.0002万=0x0007;0007;
用于(j=0;j<10;j++);
*(UINT16 *) 0x30.0007万=0x0005;0005;
*(UINT16 *) 0x30.0008万=0x0006;0006;
ASM (" NOP");
TestDat =*(UINT16 *) 0x30.0006万;
*(UINT16 *) 0x30.0009万=0x0007;0007;
为什么EMIF1“读取”在“写入”一次之前执行?
谢谢!
此致,
西门