首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA中可执行文件:bit/bin/mcs/elf

FPGA中可执行文件:bit/bin/mcs/elf

作者头像
瓜大三哥
发布2020-06-24 10:30:44
7.7K1
发布2020-06-24 10:30:44
举报
文章被收录于专栏:瓜大三哥瓜大三哥

FPGA里面的可执行文件都涉及到 *.bit*.mcs*.bin*.elf,到底都有什么用,应该怎么用呢,这篇文章小编会简单介绍下这几种文件。

bin_bit_mcs

从上图可以看出,bit是带有头信息的配置文件,bin文件是不带头信息的的配置文件,MCS是ASCII文件,包含地址和校验和信息。

bit文件

bit 文件一般用于JTAG在线进行调试的时候,是把bit文件是烧写到FPGA中进行在线调试。

bin文件

bin 文件是二进制文件,按顺序只包含原始字节流,烧写进flash,上电加载自动加载。FPGA一般默认生成的是bit文件,bin文件生成是在ISE里property里勾选的,如下图所示。

而VIVADO中是可以在settings->Bitstream->-bin_file勾选即可。

bit 和 bin 区别

UltraEdit 查看 bin 和 bit 文件区别(UltraEdit下载地址:后台回复【UltraEdit】即可领取)

可以看到bit文件比bin文件多了文件信息:比如工程名,User_ID,工具的版本信息(下图给的是vivado 2015.4),FPGA芯片型号(下图为7k325tffg900),bit生成日期(下图为2019/10/09)等信息。

只要删除这些头信息,其实bin文件和bit文件是一模一样的。

bit_bin

mcs文件

mcs也是烧写到flash中的,上电后会自动加载到FPGA里,因此烧写进flash,需要断电重启。mcs文件是其中两个ASCII字符用于表示数据的每个字节HEX文件。mcs文件除了包含头部信息外还有地址信息以及校验码。

因此,MCS文件的效率似乎较低,因为它需要2个字节来表示1个字节。但是它有两个优点:

  • 在每行的末尾都有一个校验和以确保完整性。
  • 每行包括该行应位于内存中的地址。

如下图所示,VIVADO 中生成mcs文件,需要注意:

  1. Memory Part:所使用的Flash芯片型号
  2. Filename:生成的mcs文件名字,如果ila,还会生成prm文件
  3. Interface:选择flash加载模式
  4. Load Bitstream files:加载bit文件
  5. Start Address:下载flash的文件起始地址
  6. Write checksum,Disable bit swapping,Overwrite:小编一般都不勾选
  7. Command:Tcl指令,老鸟可以用tcl直接完成

elf文件

如果FPGA中用到 microblaze 或者 ZYNQ 的结构,还会有一个 elf 文件,这是因为其继承了 ARM 的可执行文件。

ARM 体系中,所有文件均采用的 ELF 文件格式。ARM 中的各种源文件(包括汇编文件,C 语言程序及 C++ 程序等)经过 ARM 编译器编译后生成 ELF 格式的对象文件(Object File)(.o文件)。这些对象文件(Object File)和相应的 C/C++ 运行时用到的库经过 ARM 连接器处理后,生成 ELF 格式的镜像文件(image),这种ELF 格式的映像文件是一种可执行文件,可被写入嵌入式设备的 ROM 中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • bit文件
  • bin文件
    • bit 和 bin 区别
    • mcs文件
    • elf文件
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档