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

关于段分配

关于段分配

请问版主,我用的DP256单片机,因为程序太大了,我用#pragma CONST_SEG OTHER_ROM把const 类型的变量放到了非固定页中,其他程序都放在了固定页中,可是程序老跑飞,这样是不可以吗? 那要怎么解决32K固定页程序放不下的问题呢?
把常量放入非分页地址中是可以的。如果你的常量只是去读的话,应该不会使程序跑飞的。你还有别的操作吗?
海纳百川  有容乃大

对常量就只是读,没有其他操作,但程序中对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

还有就是如果把常量放到非固定页中,调用常量时也是直接用就行了吧,不用做什么特别的声明吧?
对FLASH进行擦写的程序最好调入RAM中运行。
海纳百川  有容乃大
返回列表