历史上的今天
今天是:2025年02月13日(星期四)
2020年02月13日 | pic单片机链接描述文件(.lkr)含义
2020-02-13 来源:eefocus
结合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中的数据类型
史海拾趣
|
嵌入式音频系统广泛应用于GPS自动导航、PDA、3G手机等嵌入式领域,但目前国内在这方面的研究较少。 M开发论坛 音频系统设计包括软件设计和硬件设计两方面,在硬件上使用了基于IIS总线的音频系统体系结构。IIS(Inter-IC Sound bus)又称I2S,是菲利 ...… 查看全部问答> |
|
一个鼠标和键盘,通过连接,控制两台电脑 就和一台电脑两台显示器的使用一样 鼠标能从这个显示器的桌面移动到另一个显示器桌面 因为我有多台电脑,很烦人的事情出现了 桌子上摆满了键盘和鼠标,我如果用一个鼠标和键盘控制,那该多好啊 当我用 ...… 查看全部问答> |
|
我想在WinCE下做一个多线程访问共享数据的东东,想用COM组件来封装,利用它APARTMENT方式来达到数据同步。 但在WinCE6.0下没有用起来! 不很清楚WinCE6.0对COM的支持如何,请有经验的高手指点,谢先了! 引用:wince6.0下对COM的支持描述如下! ...… 查看全部问答> |
|
【深圳猎头】【STB Software Application Engineer】诚聘IC行业相关人才 持续更新 JD如下,有兴趣请联系,上海泽恩猎头kenneth,邮箱kenneth@genhr.com,MSN:huronghe2006@hotmail.com call:021-65081009-104 TITLE:STB Software Application Engineer 公司行业: 电子技术/ ...… 查看全部问答> |




