打印

供chineser,tsx1983和其他关心STM32外部SRMA使用的网友参考

[复制链接]
3648|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
barboon|  楼主 | 2008-10-31 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
回复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
沙发
tsx1983| | 2008-10-31 14:16 | 只看该作者

感谢楼主

感谢楼主的奉献。能不能提供一个MDK下的例子呢?IAR从来没用过,也没有IAR下的仿真器

使用特权

评论回复
板凳
tsx1983| | 2008-10-31 16:47 | 只看该作者

请问楼主

除了按照说明设置之外,楼主有没有自己设置其它的地方?
就是用外扩RAM有哪些要特别注意的地方?

我也是完全按照Firmware 2.0 FSMC的SRAM Datamemory例程readme.txt来设置的。但结果不好使。MDK下的。

使用特权

评论回复
地板
barboon|  楼主 | 2008-10-31 17:07 | 只看该作者

我没有用过MDK

所以说不上还需要注意些什么

stm32f10x_vector.s中
开头
DATA_IN_ExtSRAM  EQU     0
需要改为
DATA_IN_ExtSRAM  EQU     1
不知道楼上改了吗?


如果已经试过了,不知道楼上不好使到底出现了哪些错误信息,什么表现?

有没有用我在顶楼的代码试一下?

使用特权

评论回复
5
tsx1983| | 2008-10-31 19:17 | 只看该作者

回楼主

我的设置:stm32f10x_vector.s中
DATA_IN_ExtSRAM  EQU     1
 __initial_sp    EQU 0x20000000 + Stack_Size

工程Option->Target选项IRAM1 uncheck
                       RAM1 Checked   0x68000000,0x40000
               Use microLIB Checked 

现象是进FAULT了,黑屏

使用特权

评论回复
6
tsx1983| | 2008-10-31 19:18 | 只看该作者

现在试不了

现在试不了,正在外面呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

223

帖子

0

粉丝