|
| 出处:21ic 时间: 2007-06-16 |
|
yuqiong 发布于 2007-6-13 21:23:00 我用的芯片是LPC2292,内部16kRAM已经不够我使用了,于是我选择扩展一片16位的64K外部RAM。可是由于疏忽,在设计电路图的时候并没有像书上介绍的那样用ARM的A1~A16地址线和RAM的A0~A15相连,并没有空出ARM的A0地址线 ,而是 直接一一 相连。为解决 这个问题,我打算把外部的16位RAM当8位的使,于是我在设置寄存器的时候将BCFG0寄存器(我采用BANK0,即CS0做片选)的值由 原来的0x1000ffef,改为0x0000fbef,但是运行的时候出现取数据终止错误。不知道是不是我这种方法和设置有问题。还有我的加载文件是在mem.c.scf(因为我采用的是片内FLASH调试)基础上改的,源文件是 ROM_LOAD 0x0 { ROM_EXEC 0x00000000 { Startup.o (vectors, +First) * (+RO) }
IRAM 0x40000000 { Startup.o (MyStacks) * (+RW,+ZI) }
HEAP +0 UNINIT { Startup.o (Heap) } STACKS 0x40004000 UNINIT { Startup.o (Stacks) } } 我直接将 STACKS 0x40004000 UNINIT { Startup.o (Stacks) } 改成 STACKS 0x8000000 UNINIT { Startup.o (Stacks) } 这样是不是有问题?
springshib 发布于 2007-6-16 11:36:00 将CPU的A0线割断,将A16飞到RAM的A0上去,RAM的地址线随便接的,没关系
|
| 【关闭】 【打印】 |
|
|
|
|