打印
[Kinetis]

KE02 malloc问题

[复制链接]
898|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
问题1:使用KE02Z32VLC2 32KBflash  环境是MDK5.16a,优化级别是level 2,
现在想开辟一段4KB的内存空间,作为一个数组使用,然后接收到串口发过来的
4KB的数据经过处理后一次性写入flash。之后就只需要从这个flash中读取即可。
试过网上许多办法,依然无法分配内存,所以想请问下大神,有什么办法解决这
个问题吗?
KE02Z32VLC2 32KB flash
startupMKE02Z.S中的对堆栈大小如下:


问题2:编译出来的bin文件有30KB,这个有办法降低吗?
试过的方法:看到了这篇帖子:标题:KL02使用malloc和free有警告 网址:https://bbs.21ic.com/icview-1205814-1-1.html
,我设置优化级别level0,出现警告,增加uint32_t HEAP$$Base;uint32_t HEAP$$Limit;后警告小时,然后使用malloc函数返回的地址是0,将startup_MKE02Z.s文件中的Heap_Size EQU 0x00000000改为
Heap_Size EQU 0x00001000依然无法分配内存

相关帖子

沙发
ldysucc2017|  楼主 | 2016-12-31 17:10 | 只看该作者
芯片:MKE02Z32VLC,环境MDK5,无法设置一个长度为512字节的全局数组的解决方法:按照这篇**:http://www.openedv.com/posts/list/10573.htm 将Option->Use Memory layout from target dialog和Report might fail conditions as Errors,然后target->IRAM1 的size增加0x400,将IRAM2的地址加大0x400,将size减少0x400

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

60

帖子

1

粉丝