- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
关于Codewarrior中的.prm 文件
网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior5.0prm 文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。
正文:
关于Codewarrior中的.prm文件
要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior
5.0编译器,单片机采用MC9S12XS128。
通过项目模板建立的新项目中都有一个名字为“project.pr的m”文件,位于ProjectSettings-LinkerFiles文件夹下。一个标准的基于XS128的.prm文件起始内容如下:
.prm文件范例:NAMES
ENDSEGMENTS
RAM =
READ_WRITEDATA_NEAR 0x2000TO0x3FFF;
ROM_4000 =
READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF;
ROM_C000 =
READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF;
//OSVECTORS =READ_ONLY 0xFF10 TO 0xFFFF;
EEPROM_00 =READ_ONLY DATA_FAR
EEPROM_01 =READ_ONLY DATA_FAR
EEPROM_02 =READ_ONLY DATA_FAR
EEPROM_03 =READ_ONLY DATA_FAR
EEPROM_04 =READ_ONLY DATA_FAR
EEPROM_05 =READ_ONLY DATA_FAR
EEPROM_06 =READ_ONLY DATA_FAR
EEPROM_07 =READ_ONLY DATA_FAR
PAGE_F8 =READ_ONLY DATA_FAR
IBCC_FAR 0x000800
IBCC_FAR 0x010800
IBCC_FAR 0x020800
IBCC_FAR 0x030800
IBCC_FAR 0x040800
IBCC_FAR 0x050800
IBCC_FAR 0x060800
IBCC_FAR 0x070800
IBCC_FAR 0xF88000
TO 0x000BFF;
TO 0x010BFF;
TO 0x020BFF;
TO 0x030BFF;
TO 0x040BFF;
TO 0x050BFF;
TO 0x060BFF;
TO 0x070BFF;
TO 0xF8BFFF;
PAGE_F9
READ_ONLY
=
DATA_FAR
IBCC_FAR
0xF98000
TO
0xF9BFFF;
PAGE_FAREAD_ONLY
=DATA_FAR
IBCC_FAR
0xFA8000
TO
0xFABFFF;
PAGE_FBREAD_ONLY
=DATA_FAR
IBCC_FAR
0xFB8000
TO
0xFBBFFF;
PAGE_FCREAD_ONLY
=DATA_FAR
IBCC_FAR
0xFC8000
TO
0xFCBFFF;
PAGE_FEREAD_ONLY
=DATA_FAR
IBCC_FAR
0xFE8000
TO
0xFEBFFF;
END
PLACEMENT
_PRESTART,STARTUP,ROM_VAR,STRINGS,
VIRTUAL_TABLE_SEGMENT,
//.ostext,
DEFAULT_ROM,NON_BANKED,COPY
INTO ROM_C000;
OTHER_ROM INTO PAGE_FE,PAGE_FC,PAGE_FB,PAGE_FA,PAGE_F9,PAGE_F8;
//.stackstart,SSTACK,
//.stackend,PAGED_RAM,DEFAULT_RAM
INTO RAM;DISTRIBUTE DISTRIBUTE_INTO
ROM_4000,PAGE_FE,PAGE_FC,PAGE_FB,PAGE_FA,PAGE_F9,PAGE_F8;
CONST_DISTRIBUTE DISTRIBUTE_INTO
ROM_4000,PAGE_FE,PAGE_FC,PAGE_FB,PAGE_FA,PAGE_F9,PAGE_F8;
DATA_DISTRIBUTE DISTRIBUTE_INTO
RAM;
//.vectors INTO OSVECTORS;
ENDENTRIES
//_vectabOsBuildNumber_Os
文档评论(0)