我编写的程序在内部FLASH中运行,变量缓冲与堆栈等放到内部SRAM中时程序运行正常,加入SDRAM初始化,定义个指针指向SDRAM,对SDRAM进行读写操作时数据都正确。我修改ICF文件将堆栈与变量放在SDRAM中,或者将堆栈放在内部SRAM,变量缓冲等放在SDRAM中,结果都不正确。比如:我做了个USB接口和并口的读写程序,在内部SRAM中时,电脑发送的数据与板子接收的数据一致。但只要缓冲等放到SDRAM中时就发现接收的数据不正确了。
程序量小时,还能与运行,程序量(包括变量和缓冲数据量大时),程序就进入异常终止中断——死机了。我改过延时时间也是没效。程序有时还是能跑起来的,所以SDRAM的硬件和软件应该不会有太致命的毛病吧
===================================
不知有没有哪位大侠遇到过同样或类似的问题,请指点一二。 |