OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3331|回复: 0

SRAM和TFT LCD的FSMC冲突问题

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-8-28
在线时间
10 小时
发表于 2020-8-28 11:02:43 | 显示全部楼层 |阅读模式
关注原子哥很久了,第一次来发帖子,有点紧张,就像黄花大闺女要嫁人似的(捂脸大笑)。
哈哈哈哈。。。

和大家讨论个问题。硬件是基于原子哥的探索者F4开发板。

环境:同时使用TFT LCD和1M的外部SRAM(以下简称SRAM),实时操作系统使用FreeRTOS,将FreeRTOS的内存全部定义在SRAM中,大小为1024*1024Byte,使用heap_4内存管理。

现象:系统上电后能正常运行,但是正常运行一段时间后,程序就硬件异常了,这段时间的长度是随机的,有时是几十秒,有时是几分钟。我通过调试打断点的方式定位到问题是操作SRAM时引起的。因为整个FreeRTOS的内存都放在外部SRAM中,所以FreeRTOS会在切换线程的时候会去频繁的操作SRAM,而我实际调试中也发现每次硬件异常都是出现在线程切换的时候,对线程栈操作失败(栈数据异常)而导致的。
排除法测试结果:
        1、单独使用外部SRAM去跑FreeRTOS连续跑了24小时以上,程序正常。
        2、单独使用TFT LCD显示,不使用外部SRAM,连续运行24小时以上,程序正常。
        3、LCD只在初始化时调用了显示,其它时候无视LCD的存在,现象依旧,仍然会出现硬件异常。
        4、先初始化SRAM的FSMC总线,再初始化LCD的FSMC总线,现象更明显了,出现硬件异常的时间更短了,正常运行一小会儿就出问题了(系统已全部初始化完成)。
        5、先初始化LCD的FSMC,再初始化SRAM的FSMC,现象依旧存在,不曾有改善。

下面贴代码吧!各位志同道合的朋友若看见了此贴还请稍作停留,帮忙分析一下,在下感激不尽,三克油。

1.png 2.png 3.png 5.png 6.png



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 11:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表