网站大量收购闲置独家精品文档,联系QQ:2885784924

PRM文件内容释疑.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PRM文件内容释疑

PRM文件内容释疑.txt11生命是盛开的花朵,它绽放得美丽,舒展,绚丽多资;生命是精美的小诗,清新流畅,意蕴悠长;生命是优美的乐曲,音律和谐,宛转悠扬;生命是流淌的江河,奔流不息,滚滚向前通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于图1-8 所示项目文件列表的“Linker Files”一栏。一个标准的prm文件起始内容如下: 例4.1 prm 文件内容实例 /* This is a linker parameter file for the AW32 */ 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 0x8000 TO 0xFFAF; Z_RAM = READ_WRITE 0x0070 TO 0x00FF; RAM = READ_WRITE 0x0100 TO 0x086F; ROM1 = READ_ONLY 0xFFC0 TO 0xFFCB; 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; _DATA_ZEROPAGE, MY_ZEROPAGE INTO Z_RAM; END STACKSIZE 0x50 VECTOR 0 _Startup /* Reset vector: this is the default entry point for an application. */ 4.1 prm 文件组成结构 按所含的信息prm 文件有五个组成部分构成: ? “NAMES – END”部分用以指定在连接时加入除本项目文件列表之外的额 外的目标代码模块文件,这些文件都是事先经C 编译器或汇编器编译好的 机器码目标文件而不是源代码文件。不过这种用法比较少见,因为我们可 以在图1-8 所示项目文件列表的“Libs”一栏中添加这些目标代码文件来 实现同样的任务,而且由项目列表管理这些模块文件比较直观方便。 ? “SEGMENTS – END”部分定义和划分芯片所有可用的内存资源,包括程 序空间和数据空间。一般我们将程序空间定义成“ROM”,把数据空间划 分成第0 页的“Z_RAM”和普通区域的“RAM”,但实际上这些名字都不 是系统保留的关键词,可以由用户随意修改。用户也可以把内存空间按地 址和属性随意分割成大小不同的块,每块可以自由命名。关于内存划分的 具体方法在后面详解。 ? “PLACEMENT – END”部分将指派源程序中所定义的各种段,例如数据 段DATA_SEG、CONST_SEG 和代码段CODE_SEG 被具体放置到哪一个内 存块中。它是将源程序中的定义描述和实际物理内存挂钩的桥梁。 ? “STACKSIZE”定义系统堆栈长度,其后给出的长度字节数可以根据实际 应用需要进行修改。堆栈的实际定位取决于RAM 内存的划分和使用情况。 在常见的RAM 线性划分变量连续分配的情况下,堆栈将紧挨在用户所定义 的所有变量区域的高端。但如果你将RAM 区分成几个不同的块,请确保其 中至少有一个块能容纳已经定义的堆栈长度。 ? “VECTOR”定义所有矢量入口地址。模板在生成prm 文件时已经定义了 复位矢量的入口地址。对于各类中断矢量用户必须自己按矢量编号和中断 服务函数名相关联,请参考3.4.2 中代码范例。如果中断函数的定义是用 “interrupt”加上矢量号,则无需在这里重复定义。 prm 文件中可以添加注释,语法和C语言相同,可以是“/*…*/”或“//”。 4.2 内存划分的具体方式 由“SEGMENTS”开始到“END”为止,中间可以添加任意多行内存划分的定义, 每一行用分号“;”结尾。定义行的语法型式为: [块名] = [属性] [起始地址 ] TO [结束地址]; 其中, ? “块名”的定义和C 语言变量定义相同,是以英文字母开头的一个字符 串。 ? “属性”可以有三种不同的类型。对于只读的Flash-ROM 区属性一定是 “READ_ONLY”,对于可读写的RAM 区属性可以

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档