首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[讨论]ram不够用

1.优化算法。
2.将中间变量存储于FLASH中。
3.外加EEPROM。
海纳百川  有容乃大
怎么“申请”变量?
海纳百川  有容乃大
start08.c应该不会占用RAM。其余的RAM应该是被其他的全局变量和堆栈占用了。你可以试着调整一下堆栈的大小。
海纳百川  有容乃大
就是在PRM文件中呀,仔细看看...
海纳百川  有容乃大
局部变量本身就没有固定的地址,是放到堆栈中的。所以CW编译时可能不报错。你必须注意栈底的位置以及堆栈的大小,不然确实可能出现堆栈溢出的问题。
海纳百川  有容乃大
你的PRM文件很奇怪呵,哪里来的?标准的PRM文件应该是这样的:

/* This is a linker parameter file for the JB16 */

NAMES END /* CodeWarrior will pass all the needed files to the linker by command line. But here you may add your own files too. */

SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
ROM = READ_ONLY 0xBA00 TO 0xF9FF;
Z_RAM = READ_WRITE 0x0080 TO 0x00FF;
RAM = READ_WRITE 0x0100 TO 0x01FF;
END

PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
DEFAULT_RAM INTO RAM;
DEFAULT_ROM, ROM_VAR, STRINGS INTO ROM; /* In case you want to use as well, be sure the option -OnB=b is passed to the compiler. */
_DATA_ZEROPAGE, MY_ZEROPAGE INTO Z_RAM;
END


STACKSIZE 0x50

VECTOR 0 _Startup /* Reset vector: this is the default entry point for an application. */
海纳百川  有容乃大
返回列表