Board logo

标题: 关于段分配 [打印本页]

作者: xuelijun    时间: 2008-5-26 11:10     标题: 关于段分配

请问版主,我用的DP256单片机,因为程序太大了,我用#pragma CONST_SEG OTHER_ROM把const 类型的变量放到了非固定页中,其他程序都放在了固定页中,可是程序老跑飞,这样是不可以吗? 那要怎么解决32K固定页程序放不下的问题呢?
作者: strongchen    时间: 2008-5-26 13:58

把常量放入非分页地址中是可以的。如果你的常量只是去读的话,应该不会使程序跑飞的。你还有别的操作吗?
作者: xuelijun    时间: 2008-5-26 15:32

对常量就只是读,没有其他操作,但程序中对30,31,32这三个非固定页进行了擦写,prm文件是这样定义的

PLACEMENT
_PRESTART, STARTUP,
ROM_VAR, STRINGS,
VIRTUAL_TABLE_SEGMENT,
DEFAULT_ROM,NON_BANKED,COPY INTO ROM_4000,ROM_C000;
OTHER_ROM INTO //PAGE_30,PAGE_31,PAGE_32,PAGE_33,PAGE_34,PAGE_35,PAGE_36,PAGE_37,PAGE_38,PAGE_39,PAGE_3A,PAGE_3B,
PAGE_3C,PAGE_3D;
DEFAULT_RAM INTO RAM;
END


作者: xuelijun    时间: 2008-5-26 15:37

还有就是如果把常量放到非固定页中,调用常量时也是直接用就行了吧,不用做什么特别的声明吧?
作者: strongchen    时间: 2008-5-27 10:30

对FLASH进行擦写的程序最好调入RAM中运行。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0