求香主:关于STM32动态内存分配及链表实现问题

[复制链接]
8197|13
 楼主| 微兮兮 发表于 2013-3-19 19:38 | 显示全部楼层 |阅读模式
本帖最后由 微兮兮 于 2013-3-19 19:41 编辑

现在需要在STM32上实现链表,但是申请链表空间后出现无限多个next,而且会进到hardware default里,这就是说我的链表越界了,但这跟我在PC机上实现的链表完全不同。有人跟我说是STM32内存管理的问题,是不是内存分配机制不同导致下面的内存分配的结果不同!??
如果是的话,我该怎么改动才能实现链表。妹子跪求香主!!!!!!!!!!:'(
程序如下:
[img]file:///C:\Users\clariss_yan\AppData\Roaming\Tencent\Users\648571259\QQ\WinTemp\RichOle\Z9_{H}(GS[~V_`C(%Z{V$82.jpg[/img]


未命名.jpg
未命名.jpg
未命名.jpg
airwill 发表于 2013-3-19 19:53 | 显示全部楼层
本帖最后由 airwill 于 2013-3-20 16:09 编辑

实现 链表 是没有问题的.
遇到 hardware default 说明软件里错误. 用调试器好好跟踪一下
hawksabre 发表于 2013-3-19 20:53 | 显示全部楼层
还是版主给力   呵呵   不错哦   呵呵   顶一个
墨如风0205 发表于 2013-3-20 09:02 | 显示全部楼层
顶一个
 楼主| 微兮兮 发表于 2013-3-20 10:12 | 显示全部楼层
airwill 发表于 2013-3-19 19:53
实现 链表 是没有问题的.
遇到 hardware default 说明软件里错误. 用调速器好好跟踪一下 ...

调速器是什么。。怎么跟踪啊版主.。。。
Simon21ic 发表于 2013-3-20 11:06 | 显示全部楼层
stm32不具备内存管理,你自己代码问题可能性更大,如果要malloc的话,记得分配足够的heap
pattywu 发表于 2013-3-20 11:52 | 显示全部楼层
    malloc()?
    线程安全吗?
    只有分配内存,有释放内存吗?在哪释放?
    在中断处理内调用,与不在中断内调用,情况辊不一样的。
   
 楼主| 微兮兮 发表于 2013-3-20 14:53 | 显示全部楼层
Simon21ic 发表于 2013-3-20 11:06
stm32不具备内存管理,你自己代码问题可能性更大,如果要malloc的话,记得分配足够的heap ...

我试的时候只需要几十个字节,我把heap改成了2K,应该是够的,如果是代码问题,请你指出来行吗?我刚开始用链表,初学者。。
 楼主| 微兮兮 发表于 2013-3-20 14:54 | 显示全部楼层
pattywu 发表于 2013-3-20 11:52
malloc()?
    线程安全吗?
    只有分配内存,有释放内存吗?在哪释放?

我只需要十几个字节的,所以没有free..在中断里调用要注意什么呀?
airwill 发表于 2013-3-20 16:08 | 显示全部楼层
微兮兮 发表于 2013-3-20 10:12
调速器是什么。。怎么跟踪啊版主.。。。

抱歉, 笔误了, 是调试器, 我改过来
 楼主| 微兮兮 发表于 2013-3-21 20:14 | 显示全部楼层
airwill 发表于 2013-3-20 16:08
抱歉, 笔误了, 是调试器, 我改过来

调试器..我不是伸手党..但是你指的是debug吗?
yueliangruying 发表于 2013-3-22 09:50 | 显示全部楼层
中断中不调用malloc函数,否则容易出现重入问题
jimmjimm 发表于 2013-8-21 15:32 | 显示全部楼层
我也遇到了一样的问题,而且会有链表会指向Default_Handler,或者是 HardFault_Handler
请问你是怎么解决的?
21ID 发表于 2013-8-21 15:41 | 显示全部楼层
会不会不停的进中断,不停的malloc,而没有一个free??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部