飞思卡尔编程/prm目录下的文件Project.prm
文件Project.prm是连接器linker.exe用来定义程序中各段在单片机存储器物理上的对应位置,相当于汇编程序设计中的伪指令“0RG”。一个比较完整的prm文件如下,主要包括四部分:①第一部分定义连接器最终生成的可执行文件名*.abs,以及需要的目标文件名*.o,其中目标文件可能有多个。这部分在CodeWarrior集成开发环境中往往是默认的,需要的文件参数是通过命令行的方式传递给连接器linker.exe的;②第二部分分段定义单片机的存储器空间,不同单片机这里会有差别;③第三部分将用户程序中的段按出现的顺序,映射到存储器的具体位置,应用程序中没定义的段名将会被跳过;④第四部分是堆栈空间大小定义与中断函数的定义。中断的定义可以提供中断号或者是人口地址,比如“VECTOR 0一Startup”与“VECTOR ADDRESS 0xFFFE—Startup”是等同的。
/*第一部分*/
LINK test.abs //定义生成的可执行文件名
NAMES main.O Start08.O END /*连接需要的目标文件*/
/*第二部分*/
SEGMENTS/*列举所有的RAM/ROM空间,以备后面的PLACEMENT使用*/
Z—RAM =READ—WRITE 0x0060 T0 0xOOFF;
RAM =READ—WRITE 0x0100 T0 0x025F;
ROM =READ—ONLY 0xE000 T0 0xFFAD;
ROMl =READ—ONLY OxFFCO T0 0xFFCF;
/*INTVECTS =READ ONLY 0xFFDO T0 0xFFFF:Reserved for Interrupt
Vectors球/
END
/*第三部分*/
PLACEMENT /*将用户程序中出现的段放入上面定义的段中*/
DEFAULT RAM /*非零页变量*/
INTO RAM;
PRESTART. /*启动代码*/
STARTUP. /*启动数据结构*/
ROM VAR. /*数据表格*/
STRINGS. /*字符串列表*/
VIRTUAL TABL E SEGMENT, /*C++virtual table segment*/
DEFAULT—ROM,
COPY /*初始化变量的复制信息*/
INl:D ROM:
_DATA_ZEROPAGE, /*零页变量*/
MY—ZEROPAGE INTO Z—RAM:
END
/*第四部分*/
STACKSIZE 0x50 //定义堆栈深度
VECTOR 0一Startup /*复位向量,应用程序的默认人口*/
阅读更多请您关注: