LCF文件使用说明(2)

2019-03-11 08:11

CodeWarrior LCF链接文件定义及使用

sdata_type \

sconst_type \.sdata2\

2)ALIGN

按照指定的边界进行排列,必须是2的整倍数。 SECTIONS {

GROUP:

{

.init ALIGN(0x1000) : {} .text ALIGN(0x1000) : {} } > text }

例子中定义了两个段:.init和.text。在运行的时候每个段都会被放在下一个可以使用的地址(可以被0x1000整除) 3)ADDR

返回指定名称的段或者内存区域的开始地址. ADDR(sectionName | segmentName) 参数

sectionName 文件中段的标志符 segmentName

存储区域中段的标志符 范例 下面代码中使用的ADDR功能来将ROOT的地址赋值给__rootbasecode . 列举ADDR() 功能 MEMORY{

ROOT : origin = 0x80000400, length = 0 }

SECTIONS{ .code :

Auto FAE: Alan Yang-r66151

Page 6 data_mode=sda_rel code_mode=pc_rel data_mode=sda_rel code_mode=pc_rel

\data_mode=sda_rel code_mode=pc_rel

CodeWarrior LCF链接文件定义及使用

{

__rootbasecode = ADDR (ROOT); *.(text); } > ROOT }

4)SIZEOF

返回指定Section或者segment的大小(以字节为单位) SIZEOF(segmentName | sectionName) 参数

segmentName

segment的名字;必须以“.”作为起始。 sectionName

section的名字;必须以“.”作为起始。

5)LOAD

在指定地址加载一个或者多个段。 语法

LOAD(address) 参数

address

一个内存地址例如: 0x80000400. 注意 ? ? ? ?

使用load指令来指定一个外部的ROM addr_mode。 Load指令可以被用于所有的在ROM中的段。

如果编译器选项面板中的Generate ROM image 没有被选择的话,指令会被在链接中忽略。

从ROM拷贝到RAM中的不连续的未初始化的数据段可能需要参考ROM的地址。举例来说:保存紧跟在.text段后面的.data和.sdata段到ROM中,可以尝试下面的例子: .text LOAD(ADDR(.text)) : {} > rom

.data LOAD(ROMADDR(.text) + SIZEOF(.text)): {} > code .sdata LOAD(ROMADDR(.data) + SIZEOF(.data)): {} > code

Auto FAE: Alan Yang-r66151

Page 7 CodeWarrior LCF链接文件定义及使用

6)BIND

指定一个段修饰语来设定一个地址。 BIND(address) 参数 address

一个存储空间地址例如: 0x80000400.

7)pop, push

保存和恢复pragma设置 语法

#pragma push #pragma pop

pragma push 保存所有当前的pragma设置。Pragma pop 恢复所有pragma设置 范例

#pragma ANSI_strict on

#pragma push /* Saves all compiler settings. */ #pragma ANSI_strict off #pragma pop /* Restores ANSI_strict to on. */ 例程中的pragma不受任何面板设置影响,和之前其它的pragma的设定

8)__declspec(section name) 指定在已经定义的section中放置变量或者函数 语法

__declspec(section ) declaration __declspec(section ) definition

Auto FAE: Alan Yang-r66151

Page 8 CodeWarrior LCF链接文件定义及使用

参数

section_name

指定一个初始化过的数据段的名字 注意 段的名字必须用双引号 (\如果使用用户自定义的段,必须是事先用#pragma定义过的

9)FORCEACTIVE

指定不能被优化掉的目标. 参数

FORCEACTIVE{ symbol [, symbol]* }

第二节 EPPC 链接器

使用 EPPC Linker 设置面板来控制设定链接相关选项,规定目标代码链接成的可执行文件,库或者其它的最终文件格式。如下图所示2.10版本(图2-1)和10.3版本(图2-2)

图2-1:Codewarrior 2.10 版本

Auto FAE: Alan Yang-r66151

Page 9 CodeWarrior LCF链接文件定义及使用

图2-2:codewarrior 10.3版本 Auto FAE: Alan Yang-r66151

Page 10


LCF文件使用说明(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:甲方(建设方)项目管理方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: