各位用过S3C4510的朋友: 用S3C4510B CPU (uCLinux)扩展一外部设备,用外部I/O Bank2 地址3fd8020,当用C编程读其地址时,用示波器观察nECS2和nOE 时,发现:
1个读操作,出现4个nECS2和4个nOE:
____ _ _ _ _______________ nECS2 \____/ \____/ \____/ \____/ ______ ____ ____ ____ _________________ nOE \_/ \_/ \_/ \_/
工作频率:50MHz,nECS2负脉冲宽度是150ns,间隔55ns.
此时的端口宽度设的是32位,我以为是它的问题,改成16位位宽时, 脉冲竟变成了8个,改成8位位宽时,脉冲是16个,我干脆将DS2设 成00,结果读3fd8020时,脉冲一直持序下去不停了,程序也退不 出来了。
更糟的是:如果连序读该地址,后序的语句好象并未产生nECS2信 号,要延时一段时间后才能再产生nECS2!!!!! 程序大致如下:
void xdelay(int k) { while(k>0) { k--; } }
.... k=200000; for(i=0;i<256;i++) { ubuf[i]=MyPort; <=MyPort是我的端口3fd8020 xdelay(k); } .... 上面程序中的k设小了就不行,也就是说,不延时就可能只产生4个 nECS2脉冲.
看4510B的datasheet文件,不应出现这样的现象啊,请大家帮我 看看是不是哪里设错了?