STM32F429中在freertos基础工程里增加sdram的功能后,对sdram初...

2019-12-10 18:05发布

用的是正点原子的阿波罗f429的开发板,sdram.c和sdram.h用的都是原子例程里的,工程用的是基于freertos的基础例程,freertos的mdk工程烧录进开发板是运行正常的,在main函数里对sdram进行初始化后就死机了进入了hardfault,请问有知道这是什么原因的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
dragonFANG
1楼-- · 2019-12-12 04:59
jueenkay 发表于 2019-10-23 16:37
需要在连接脚本文件里面添加SDRAM的信息吧

你好,你说的连接脚本文件能说的具体一点吗?
ZMHCISS
2楼-- · 2019-12-12 09:26
初始化里的写保护那个是不是要换成这一句,     hsram.Init.WriteOperation     = FSMC_WRITE_OPERATION_ENABLE;
dragonFANG
3楼-- · 2019-12-12 13:30
ZMHCISS 发表于 2019-10-23 19:39
初始化里的写保护那个是不是要换成这一句,     hsram.Init.WriteOperation     = FSMC_WRITE_OPERATION_EN ...

试过也是不行
dragonFANG
4楼-- · 2019-12-12 16:48
 精彩回答 2  元偷偷看……
jjl3
5楼-- · 2019-12-12 17:07
你的问题和我去年碰到的问题貌似同一个问题,都是在使用bank5,6时配置FMC死机.
cube配置时没问题,自己写就会死机.在网上搜索没发现别人有类似问题.
所以我后来把cube配置的程序和自己的程序一行一行的比较单步运行,终于发现了问题.
用cube配置时,即时SDRAM是连接在FMC_Bank2_SDRAM上,它也会读一下FMC_Bank1_SDRAM的寄存器,
而自己写驱动时认为SDRAM是连接在FMC_Bank2_SDRAM上,没有对FMC_Bank1_SDRAM寄存器有任何操作,
这样就会死机.感觉这是一个bug, 反映给STM32的FAE, 他们似乎也不在意.楼主可试一下是不是这个原因.
jueenkay
6楼-- · 2019-12-12 21:28
dragonFANG 发表于 2019-10-23 19:26
你好,你说的连接脚本文件能说的具体一点吗?

MDK用的比较少,具体的我也不怎么了解,atmel studio上是在链接脚本里面把SDRAM段定义出来;你找一下OBJ目录下有没有.sct文件,添加起始地址和长度之后试试。

一周热门 更多>