keil c语言保存文件吗,KeilC如何通过linker将文件放入指定存储地址

Linker Location Controls

Another method of referencing explicit memory locations is to declare the variables in a stand-alone C module and use the linker location directives to locate them at an absolute memory address.

In the following example, the alarm_control structure is defined containing the variables to locate.

.

.

.

struct alarm_st {

unsigned int alarm_number;

unsigned char enable flag;

unsigned int time_delay;

unsigned char status;

};

xdata struct alarm_st alarm_control;

.

.

.

The C51 Compiler generates an object file for the above source (ALMCTRL.C) and includes a segment for variables in the xdata memory area. Since alarm_control is the only variable declared in this module, it is the only variable in the xdata segment. The name of the segment is ?XD?ALMCTRL.

The linker can locate a segment at any address. The following examples show how to locate the ?XD?ALMCTRL segment starting at offset 0x2000 in the xdata memory area.

For the BL51 Linker...

BL51 ... almctrl.obj XDATA(?XD?ALMCTRL(2000h)) ...

For the LX51 Linker...

LX51 ... almctrl.obj SEGMENTS(?XD?ALMCTRL(X:0x2000)) ...

You may also locate segments in the other memory areas like code, xdata, pdata, idata, and data. Refer to theBL51 Linker User's Guideor theLX51 Linker User's Guidefor more information.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值