stud1 发表于 2011-12-13 10:05:29

使用外部SDRAM出现的问题

最近在试着用RT-Thread,用的LPC2478,扩展个2MB的SDRAM,有成功挂上的没?请教下要修改哪些地方,我只修改了options和启动文件里EMC接口,还有其他地方要修改的吗?想不出还有什么地方需要修改,请指教。
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_704162VDZQB1.jpg
(原文件名:options.jpg)

点击此处打开 ourdev_704163IDEFO5.jpg(文件大小:1.04M,只有400K以内的图片才能直接显示) (原文件名:start_rvds.jpg)
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_704165DPJXJ1.jpg
(原文件名:EMC.jpg)

Achin 发表于 2011-12-19 00:33:21

EMCDyanmicRASCAS0那里你怎么配置的?
SDRAM的模式寄存器你是怎么配置的?
有没有禁用镜像映射?
找一些SDRAM配置的例程看看,不要太依赖Keil的这个wizard啦

stud1 发表于 2011-12-21 10:16:49

调试SDRAM有个心得:先不使用外部RAM空间,但要写SDRAM驱动时序,完全调试好了,在启动代码里
                IMPORT__main
                IMPORTSDRAMInit          ;

             BL                SDRAMInit       ;进入main之前就初始化SDRAM
                LDR   R0, =__main
                BX      R0
省得为汇编代码闹心。

rafd 发表于 2011-12-21 10:50:30

支持

xuzhenglim 发表于 2012-2-12 20:39:00

我也是这样弄的.另外如果要 MDKz知道你挂接了SDRAM,需要自己修改sct,把这部分内存加入连接脚本。这样当你设定大于64K内存的数组时也不会有问题的。

xuzhenglim 发表于 2012-2-12 20:42:38

我也是这样弄的.另外如果要 MDKz知道你挂接了SDRAM,需要自己修改sct,把这部分内存加入连接脚本。这样当你设定大于64K内存的数组时也不会有问题的。

xuzhenglim 发表于 2012-2-12 20:49:53

你的连接脚本不要用MDK自带的。因为那样MDK会默认把SDRAM放在IRAM前面,而由于这个原因,系统根本启动不了。更别说运行到SDRAM的初始化程序了。。
我用的配置如下:
LR_IROM1 0x00000000 0x00080000{    ; load region size_region
    ER_IROM1 0x00000000 0x00080000{; load address = execution address
      *.o (RESET, +First)
      *(InRoot$$Sections)
      .ANY (+RO)
    }

    RW_IRAM1 0x10000000 0x00010000{; RW data
      startup_LPC177x_8x.o (STACK)
      startup_LPC177x_8x.o (HEAP)
      .ANY (+RW +ZI)
    }

    RW_IRAM2 0x20000000 0x00008000{
      .ANY (+RW +ZI)
    }

    RW_ESDRAM 0xA0000000 0x0200000{
      .ANY (+RW +ZI)
    }
}

要注意自己写脚本的时候需要在flash区域加上      startup_LPC177x_8x.o (STACK)
      startup_LPC177x_8x.o (HEAP)
这部分是表示要把这些放在前面。
用MDK自动生成的会自动加入这个,但是受动编的可没这么智能 ,此外,这个是LPC1788,2478因为架构原因,可能放的不是这两个,而是别的。
页: [1]
查看完整版本: 使用外部SDRAM出现的问题