flt文件matlab,FLT文件格式.pdf

FLT文件格式

FLT 文件格式

[摘要]

本文首先对FLT 文件格式进行了简单的介绍,然后以一个简单的例子说明FLT 文件的生成

及加载过程。

[正文]

Linux 系统支持ELF 文件格式,利用虚拟内存机制,在编译时即可确定程序运行时的地址;

而uClinux 是针对无MMU 的系统设计的,所以它没有虚拟内存机制,运行时的地址就是物

理地址。由于程序被加载到的物理地址是不确定的,在uClinux 中,程序在被加载时必须引

入一种重定位机制进行地址重定位,ELF 文件格式已经不能满足这种需求。在这种情况下,

uClinux 引入了一种新的文件格式——FLT 文件格式。

一个简单的FLT 文件结构如下:

Reloc info

Data

Text

Flat header

FLT 文件就像是一个进程的内存映像,text 段和data 段是连续的,reloc info 段位于文件的末

尾,它包含了FLT 文件的重定位信息。

FLT 文件的头部定义如下:

struct flat_hdr {

char magic[4];

unsigned long rev; /* version (as above) */

unsigned long entry; /* Offset of first executable instruction

with text segment from beginning of file */

unsigned long data_start; /* Offset of data segment from beginning of

file */

unsigned long data_end; /* Offset of end of data segment

from beginning of file */

unsigned long bss_end; /* Offset of end of bss segment from beginning

of file */

/* (It is assumed that data_end through bss_end forms the bss segment.) */

unsigned long stack_size; /* Size of stack, in bytes */

unsigned long reloc_start; /* Offset of relocation records from

- 1 -

beginning of file */

unsigned long reloc_count; /* Number of relocation records */

unsigned long flags;

unsigned long build_date; /* When the program/library was built */

unsigned long filler[5]; /* Reservered, set to zero */

};

其中magic 字段固定为{‘b’, ‘F’, ‘L’, ‘T’};rev 表示FLT 文件的版本,可以为1、2、3、4、5;entry

表示第一条指令相对于文件头的偏移地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值