我采用S3C2410总线直接读写外部存储器IDT7132遇到一个很奇怪的问题,请大虾们帮忙解答一下。
IDT7132是2K x 8bits Dual-Port Static RAM,我们试图用S3C2410直接读写IDT7132中2K Bytes的数据。IDT7132有地址线11条:A0~A10(原理图上接S342410的ADDR0~ADDR10);有数据线8条:I/O0~I/O7.
我们在对IDT7132按字节读写时(即逐字节读写)遇到如下问题:可以对2KBytes的数据连续写,但是无法对2Kbytes的数据连续读。比如我可以读到地址为:0、2、4、6、8、10......1996、1998中的数据,但是同时却无法正确读取到地址为:1、3、5、7、9.......1997、1999中的数据。
读写的时候我们是用C语言主程序中嵌入汇编实现的,具体程序如下:
void Main(void)
{
int j,i=0;
volatile unsigned char pp[2];
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Port_Init();
//下面是IDT7132的读写程序
for(j=0;j <200;j++)//只测试200个Bytes
{
unsigned int x=0x28000000;//用nGCS5,所以IDT7132的基地址为0x28000000
char y=0;
x=x+j;
y=y+j;
__asm
{
STRB y,[x]//把y值写入IDT7132
}
}
for( j=0;j <200;j++)
{
unsigned int x=0x28000000;//IDT7132基地址
char y;
x=x+j;
__asm
{
LDRB y,[x]//按字节读出IDT7132中的数据
}
pp[0]=y;//读出的1、3、5、7。。。。1995、1997、1999地址的数据不正确
}
}
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3XX】LPSPI参数配置说明被打赏¥21元 | |
| 在WT9932C61-TINY上实现超声波测距被打赏¥22元 | |
| 基于WT9932C61-TINY的环境构建及OLED屏驱动测试被打赏¥20元 | |
| 【S32K3XX】Core-to-Core 中断使用被打赏¥21元 | |
| 「AI编程记录--含源码」用一晚上的时间写一个esp32的示波器被打赏¥19元 | |
| STM32C0116DK开发探索记(3)被打赏¥30元 | |
| STM32C0116DK开发探索记(2)被打赏¥24元 | |
| STM32C0116DK开发探索记(1)被打赏¥29元 | |
| 谨防极海G32M3101电机评估板易跌落的陷阱被打赏¥24元 | |
| 【全网首拆】M5STACK ATOM系列开发板拆解 / AtomS3R-CAM摄像头更换方法(提高10倍像素)被打赏¥26元 | |
我要赚赏金
