你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用sdram进行开发,Malloc后死机进入hardfault

[复制链接]
电小龙 提问时间:2019-10-29 11:25 /
用阿波罗stm32f429igt6的开发板,想用板上的sdram进行内存管理,加入了freertos的基本工程,测过freertos没问题,现在只要初始化内存管理my_mem_init后就会死机,有人遇到过这种问题吗?后来用jlink仿真看到,运行到mymemset这个函数就死机了,如图见此函数。


未命名1572319341.png
收藏 评论17 发布时间:2019-10-29 11:25

举报

17个回答
电小龙 回答时间:2019-10-29 14:12:50
mikecai 发表于 2019-10-29 13:33
1)可能您的内存有问题,先检查硬件,换个SDRAM试一下 或 换个可运行您的代码环境,确认一下内存分配代码是 ...

硬件没问题,首先是正点原子的开发板,而且我烧录他们的参考例程是可以的,不过参考例程里是裸奔的。内存地址分配的我检查了下,也没有超,开发板上的SDRAM是32M的。如下图
未命名1572329445.png
未命名1572329478.png
未命名1572329671.png
电小龙 回答时间:2019-10-30 17:07:27
安 发表于 2019-10-30 16:58
好久以前用的F1的产品,我先找找有没有以前的工程。你用的是KEIL吗?注意一下KEIL里面定义的RAM空间范围。 ...

用的是KEIL,用的是F4的,您说的KEIL里面定义的RAM空间范围有什么规定啊,我没有听过呢
电小龙 回答时间:2019-10-30 11:08:09
安 发表于 2019-10-30 08:44
楼主,注意一下获取静态变量时不要超过任务的堆栈大小,我之前遇到过类似问题,因为我定义数组超出了任务堆 ...

我用的基础例程,里面只有LED闪灯的任务,应该没涉及到这些内容吧、、
电小龙 回答时间:2019-10-29 11:29:02
会不会跟freertos有关呢,但是屏蔽掉箭头处的两个函数就不死机了,测试freertos是没问题的、、C:\Users\Fanglong\Desktop\未命名1572319589.png
未命名1572319589.png
慎微 回答时间:2019-10-29 13:33:37
1)可能您的内存有问题,先检查硬件,换个SDRAM试一下 或 换个可运行您的代码环境,确认一下内存分配代码是否可行;2)内存不够分配,分配地址过大。
电小龙 回答时间:2019-10-29 14:18:53
我之前觉得是freertos中分配了写内存给它用,所以我后来将分配的内部RAM改小还是不行
慎微 回答时间:2019-10-30 08:29:01
那您进行多任务内存分配时,是否先加信号量或互斥量,分配后释放信号量或互斥量,以避免资源争抢?
废鱼 回答时间:2019-10-30 08:44:36
楼主,注意一下获取静态变量时不要超过任务的堆栈大小,我之前遇到过类似问题,因为我定义数组超出了任务堆栈后,进入的错误中断。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

电小龙 回答时间:2019-10-30 11:04:08
mikecai 发表于 2019-10-30 08:29
那您进行多任务内存分配时,是否先加信号量或互斥量,分配后释放信号量或互斥量,以避免资源争抢? ...

freertos基础例程里只有一个LED灯的闪烁任务,还没有加信号量或互斥量
废鱼 回答时间:2019-10-30 14:54:36
楼主,请问一下工程配置中的RAM地址范围是否有进行修改?我之前用过SRAM,未发生过类似问题。
电小龙 回答时间:2019-10-30 16:31:29
安 发表于 2019-10-30 14:54
楼主,请问一下工程配置中的RAM地址范围是否有进行修改?我之前用过SRAM,未发生过类似问题。 ...

麻烦看一下,我没有动过RAM地址,你看下截图、、
未命名1572424234.png
未命名1572424256.png
废鱼 回答时间:2019-10-30 16:58:41
好久以前用的F1的产品,我先找找有没有以前的工程。你用的是KEIL吗?注意一下KEIL里面定义的RAM空间范围。
废鱼 回答时间:2019-10-30 17:27:43
在KEIL的工程配置中,target页面,IRAM2配置为你的SRAM空间地址。我记得是这样操作的,我找到以前的测试工程看一下。
电小龙 回答时间:2019-10-30 19:44:29
安 发表于 2019-10-30 17:27
在KEIL的工程配置中,target页面,IRAM2配置为你的SRAM空间地址。我记得是这样操作的,我找到以前的测试工 ...

我现在是这样配置target的,麻烦您帮忙看下、、
未命名1572435831.png
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版