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

使用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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版