搜索
bottom↓
回复: 6

求助:MC9S08AW60,malloc提示RAM不够用的问题

[复制链接]

出0入0汤圆

发表于 2019-1-3 22:11:38 | 显示全部楼层 |阅读模式
首次使用这个IC跟开发环境,很不熟悉。找不到解决办法,寻求帮助

开发环境是CodeWarrior 11
芯片:MC9S08AW60
问题描述:
在项目中使用malloc(10),申请一个动态内存,提示没有足够的RAM可以使用。去掉malloc,编译正常通过。
错误信息如下:

ERROR L1102: Out of allocation space in segment RAM at address 0x181

问题分析:
1、此IC总共有2K的RAM,项目中使用的变量数量并不大
2、ProcesorExprert.prm  文件如下:
NAMES

END

SECTIONS
    Z_RAM                    =  READ_WRITE   0x0070 TO 0x008F;
    RAM                      =  READ_WRITE   0x0090 TO 0x086F;
    ROM                      =  READ_ONLY    0x1860 TO 0xFFAF;
END

PLACEMENT
    DEFAULT_RAM,                        /* non-zero page variables */
                                        INTO  RAM;

    DEFAULT_ROM, ROM_VAR, STRINGS       INTO  ROM;
    _DATA_ZEROPAGE,                     /* zero page variables */
    MY_ZEROPAGE                         INTO  Z_RAM;
END

INIT _EntryPoint                       /* The entry point of the application. This function is generated into the CPU module. */

STACKSIZE 0x0080                       /* Size of the system stack. Value can be changed on the "Build options" tab */

因此,应该不是真的RAM不够使用。而是,没有正确分配heap大小造成的。
查NXP的论坛里面,有提到要修改libdefs.h中的
#define LIBDEF_HEAPSIZE 2000                 大小,并重新编译生成"ansiis.lib"。但是,没有找到如何重新编译生成"ansiis.lib"的方法

望有了解的朋友帮个忙,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2019-1-3 22:40:45 来自手机 | 显示全部楼层
heap多大?单片机不要用malloc

出0入475汤圆

发表于 2019-1-3 22:43:51 来自手机 | 显示全部楼层
一共才2k的ram还搞个malloc,曲折点变成全局变量也好过这个吧?不懂c,乱说的:)

出0入0汤圆

 楼主| 发表于 2019-1-3 22:52:01 | 显示全部楼层
由于程序是从其它单片机移植过来的,之前的程序中,大量使用了malloc

MCU的RAM是2K的,我之前用的MCU是51核的,用了512byte作为heap

出0入0汤圆

 楼主| 发表于 2019-1-3 22:56:25 | 显示全部楼层
找到方法了,在CodeWarrior中,用Import project,导入 “C:\Freescale\CW MCU v11.0\MCU\lib\hc08c\lib_eclipse”里面的工程,然后修改lidbdefs.h中的heap大小,重新编译后,可以得到新的“ansiis.lib”

再把原工程编译一下,即可

出0入89汤圆

发表于 2019-1-4 15:22:18 来自手机 | 显示全部楼层
2k的ram,还用malloc,好厉害,我不懂c,瞎说的

出0入0汤圆

发表于 2019-3-15 21:51:42 来自手机 | 显示全部楼层
换IAR试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-1 20:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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