查看: 4703|回复: 5

[已解决] keil5 编mke02z64vqh4官方demo代码无法调用malloc问题

[复制链接]

该用户从未签到

2

主题

7

帖子

0

新手上路

Rank: 1

积分
20
最后登录
2017-8-15
发表于 2017-8-8 12:03:49 | 显示全部楼层 |阅读模式
第一次使用飞思卡尔的芯片,之前使用stm32的时候只需要修改启动文件中的 Heap_Size 就可以调用 malloc 进行动态的内存管理,但是最近在mke02z64vqh4 FREEDOM 开发板的官方demo下,修改启动文件的中Heap_Size大小后在主函数中调用malloc函数,编译提示:
.\UART_Interrupt_demo_Flash.axf: Warning: L6330W: Undefined symbol HEAP$$Base (referred from alloc.o). Unused section has been removed..\UART_Interrupt_demo_Flash.axf: Warning: L6330W: Undefined symbol HEAP$$Limit (referred from alloc.o). Unused section has been removed.
后面发现需要自己定义一下HEAP$$Base和HEAP$$Limit,于是在main函数所在文件定义了
uint32_t HEAP$$Base ;
uint32_t HEAP$$Limit ;

编译通过,但是调用malloc函数始终返回失败。请问各位应该怎么正确设置mke02z64vqh4的heap以正常使用malloc函数?



最佳答案

启动文件定义了堆的起始地址与结束地址,alloc.c文件也定义了,两个名字不匹配而已,把alloc.c文件中的改过来就可以了
回复

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

新手上路

Rank: 1

积分
20
最后登录
2017-8-15
 楼主| 发表于 2017-8-8 13:38:21 | 显示全部楼层
有谁遇到过类似的问题吗?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24871
最后登录
2025-7-18
发表于 2017-8-8 13:44:17 | 显示全部楼层
看看malloc对应的头文件stdlib.h 调用了没有?
malloc是要耗heap的,你heap的大小配置大点试试。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

新手上路

Rank: 1

积分
20
最后登录
2017-8-15
 楼主| 发表于 2017-8-8 13:51:18 | 显示全部楼层
小恩GG 发表于 2017-8-8 13:44
看看malloc对应的头文件stdlib.h 调用了没有?
malloc是要耗heap的,你heap的大小配置大点试试。 ...

感谢小嗯gg的回复,我这边stdlib.h是调用了,malloc是可以编译通过的,但是问题应该是出在设置heap上,具体应该怎么设置heap的大小?
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

68

帖子

0

中级会员

Rank: 3Rank: 3

积分
213
最后登录
2018-10-31
发表于 2017-8-8 14:52:02 | 显示全部楼层
启动文件定义了堆的起始地址与结束地址,alloc.c文件也定义了,两个名字不匹配而已,把alloc.c文件中的改过来就可以了

alloc.c

alloc.c

startup_xxx_.s

startup_xxx_.s
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

新手上路

Rank: 1

积分
20
最后登录
2017-8-15
 楼主| 发表于 2017-8-8 14:57:14 | 显示全部楼层
贪恋新手 发表于 2017-8-8 14:52
启动文件定义了堆的起始地址与结束地址,alloc.c文件也定义了,两个名字不匹配而已,把alloc.c文件中的改过 ...

pelase accept my knees
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 20:22 , Processed in 0.106137 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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