结合18f4620.lkr来说明链接描述文件中代码的含义
//$Id:18f4620.lkr,v1.32004/04/2618:09:00curtissExp$
//File:18f4620.lkr
//SamplelinkerscriptforthePIC18F4620processor
//将当前目录library/object搜索路径,.代表当前目录
LIBPATH.
//FILES伪指令指定链接的目标或库文件
//注:可以在一个单独的FILES伪指令中指定多个目标或库文件。
FILESc018i.o
FILESclib.lib
FILESp18f4620.lib
//链接描述文件说明PICmicroMCU的存储器架构。这使链接器可把代码在可用的ROM空间,把变量放在可用的RAM空间。标记PROTECTED的区域不会被用于一般程序或数据的分配。只有在为代码段指定了一个绝对地址时,或在链接描述文件中使用SECTION伪指令将该代码段分配给该区域时,代码或数据才被分配到这些区域。
//CODEPAGE伪指令用于程序代码、初始化的数据值、常数值和外部存储器。
CODEPAGENAME=vectorsSTART=0x0 END=0x29 PROTECTED//复位向量和中断向量
CODEPAGENAME=pageSTART=0x2A END=0xFFFF //用户存储空间
CODEPAGENAME=idlocs START=0x200000END=0x200007PROTECTED//ID地址单元
CODEPAGENAME=configSTART=0x300000END=0x30000DPROTECTED//配置存储空间
CODEPAGENAME=devidSTART=0x3FFFFE END=0x3FFFFF PROTECTED//器件ID
CODEPAGENAME=eedataSTART=0xF00000END=0xF003FF PROTECTED//EEPROM数据
//DATABANK(分组寄存器)和ACCESSBANK(快速操作寄存器)伪指令用于内部RAM中的变量
ACCESSBANKNAME=accessramSTART=0x0END=0x7F//Bank0
DATABANKNAME=gpr0START=0x80END=0xFF//Bank0
DATABANKNAME=gpr1START=0x100END=0x1FF//Bank1
DATABANKNAME=gpr2START=0x200END=0x2FF//Bank2
DATABANKNAME=gpr3START=0x300END=0x3FF//Bank3
DATABANKNAME=gpr4START=0x400END=0x4FF//Bank4
DATABANKNAME=gpr5START=0x500END=0x5FF//Bank5
DATABANKNAME=gpr6START=0x600END=0x6FF//Bank6
DATABANKNAME=gpr7START=0x700END=0x7FF//Bank7
DATABANKNAME=gpr8START=0x800END=0x8FF//Bank8
DATABANKNAME=gpr9START=0x900END=0x9FF//Bank9
DATABANKNAME=gpr10START=0xA00END=0xAFF//Bank10
DATABANKNAME=gpr11START=0xB00END=0xBFF//Bank11
DATABANKNAME=gpr12START=0xC00END=0xCFF//Bank12
DATABANKNAME=gpr13START=0xD00END=0xDFF//Bank13
DATABANKNAME=gpr14START=0xE00END=0xEFF//Bank14
DATABANKNAME=gpr15START=0xF00END=0xF7F//Bank15
ACCESSBANKNAME=accesssfrSTART=0xF80END=0xFFFPROTECTED//Bank15SpecialFunctionRegisters(SFR)
//逻辑代码段用于指定应将定义的存储器区域的哪一个区域用于一段源代码。要使用逻辑代码段,用SECTION伪指令在链接描述文件中定义代
码段,然后使用该语言内置机制在源文件中引用该名称(如MPLABC18的#pragmasection)。此代码段伪指令通过指定代码段的名称,
//以及包含此代码段的ROM中的程序存储器区块或RAM中的数据存储器区块来定义代码段:
//SECTIONNAME=secName{ROM=memName|RAM=memName}
SECTIONNAME=CONFIGROM=config
//只有MPLABC18要求设置软件堆栈。下面的语句指定堆栈大小以及堆栈将被分配到的可选DATABANK:
//STACKSIZE=allocSize[RAM=memName]
STACKSIZE=0x100RAM=gpr14
上一篇:PIC单片机数据存储的问题
下一篇:PIC8位在PICC中的数据类型
推荐阅读最新更新时间:2024-11-01 07:37
设计资源 培训 开发板 精华推荐
- LTC3815IUFE 12V 输入、1V/6A 输出降压稳压器的典型应用电路
- FRDM-KL46Z,Kinetis KL3x 和 KL4x MCU 的 Freedom 开发平台
- LTC6990HS6#TRMPBF 直接压电报警驱动器的典型应用。调整频率以获得最大警报声压(最大干扰以获得最佳效果)
- LT3970EDDB-3.42 3.3V 降压转换器的典型应用
- 使用 Analog Devices 的 LTC3602EFE 的参考设计
- DC765B,基于 LT3479EDE 正负转换器的演示板 (LT3479 ×2) @ 2.5V = VIN = 4.2V,VOUT >= 7V @ 600mA 升压,2.5V = VIN = 12V,VOUT = -5V @ 600mA 逆变器
- LiteV3s
- LTC1174 5V、425mA 表面贴装
- 樱花樱花
- AM2G-4805SZ 5V 2 瓦 DC-DC 转换器的典型应用