回复chineser 请看附件的例子: 由于上传附件大小的限制,我去掉了其中Firware Library的部分,使用的时候注意加上。
所有堆栈都放在外部SRAM,同时开辟了一个500K的数组,在对其进行读写的同时,刷新LCD的显示 在STM3210E-EVAL,IAR EWARM 5.20上测试通过。
在STM3210E-EVAL上使用外部SRAM和LCD是不会引起冲突的。
回复tsx1983和其他关心这个问题的网友
使用um0549,也就是板子自带的Demo程序,同时将堆栈放在外部SRAM的确是有问题的。
原因是在Demo程序的某个地方,考虑到I2S应用的冲突,关闭的FSMC的时钟,这样就导致访问外部SRAM出错。
如果要在堆栈放在外部SRAM的情况下,运行该Demo,是需要作修改的。
另一个需要注意的地方是,在文件stm32f10x_vector.c中, 需要去掉#define DATA_IN_ExtSRAM的注释。 这样,在初始化的时候,会执行对FSMC使用外部SRAM进行配置的代码。
在应用程序的其他地方,也需要注意不要扰乱FSMC这部分的配置。 相关链接:https://bbs.21ic.com/upfiles/img/200712/2007121612912541.zip |