vivado生成的MCS文件数据格式解析

1.主题

本文针对vivado生成的MCS固化文件中的数据进行解析

2.MCS固化文件中的数据

2.1部分数据

MCS数据包含前导码,数据,结束码三部分,所有数据字段均为16进制,并且在FLASH中没有存数据的地址段,默认的数据都为FF

/*前导码*/020000040000FA
/*数据*/10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
.........
/*另一分区启动程序前导码*/0200000400FFFB
/*数据*/10FC0000FFFFFFFF000000BB11220044FFFFFFFFCA
........
/*结束码*/
:00000001FF

2.2MCS固化文件数据结构

三种数据字段均遵循基本结构

/*信息结构*/
:LLAAAATTDD.....DDCC

1.LL:数据长度。

2.AAAA:地址字段,,根据TT类型分为扩展地址(高16位)、数据地址(低16位)以及无效地址。

3.TT:记录类型,00(数据)、01(文件结束)、04(扩展地址,用于地址为32位时)。

4.DD:数据,长度由LL决定。

5.校验和:每个字节相加后的结果的最低字节,在取补码校验和,即0x100-结果的最低字节。

2.3前导码字段举例分析

前导码:020000040000FA
1.LL(数据长度):0x02,代表该字段中有2字节数据;

2.AAAA(扩展地址):0x0000,代表地址的高16位;

3.TT(记录类型):0x04,记录类型为扩展地址或者前导码;

4.DDDD(数据):0x0000,2字节;

5.CC(校验和):0xFA,0x02+0x00+0x00+0x04+0x00+0x00=0x06(结果取低字节),补码校验和0x100-0x06=0xFA。

若MCS存在存储多个分区的程序,则会出现多个前导码,比如0200000400FFFB,前导码中主要存储的是高16位地址信息

2.4 数据字段举例分析

数据字段:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
1.LL(数据长度):0x10,代表该字段中有16字节数据;

2.AAAA(数据地址):0x0010,代表地址的低16位,数据的实际地址为(不考虑与Flash的地址映射关系):高16位(0x0000)<<16+低16位(0x0010)=0x00000010;

3.TT(记录类型):0x00,记录类型为数据;

4.DD…DD(数据):0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,16字节;

5.CC(校验和):0xF0,0x10+0x00+0x10+0x10+0x10*0xFF(数据为16个0xFF)=0x10(结果取低字节),补码校验和0x100-0x10=0xF0。

2.5 结束码字段举例分析

结束码字段:00000001FF
1.LL(数据长度):0x00,代表该字段中无数据;

2.AAAA(地址):0x0000,无意义;

3.TT(记录类型):0x01,记录类型为结束,表示有效数据到此结束;

4.DD(数据):无数据;

5.CC(校验和):0xFF,0x00+0x00+0x00+0x01=0x01(结果取低字节),补码校验和为0x100-0x01=0xFF。

3.结束语

只介绍遇到的三种类型,其他类型还未遇到,遇到,会继续更新!!!!!!

### 如何在Vivado生成固化BIN文件 #### 准备工作 确保工程源码分析和综合无误,对应管脚已绑定。这是生成任何类型输出文件的基础条件。 #### 生成BIT流文件 在Flow Navigator窗口下找到Program and Debug选项并展开。单击Generate Bitstream选项,开始生成比特流文件[^1]。此过程完成后,将会得到一个适用于当前设计的.bit文件。 #### 创建BIF配置文件 为了能够创建可用于固化的.bin文件,需先准备一个描述如何打包数据至Flash存储器中的引导映像格式(Boot Image Format, BIF)文件。这通常是一个文本文件,指定了要包含哪些二进制镜像以及它们应放置的位置等信息。 #### 使用Tcl命令或GUI方式转换为MCS/FSBL/BIN 通过 Vivado 的 Tcl 控制台输入特定指令来完成从 .bit 到其他所需格式 (如 .mcs 或者直接到 .bin) 的转换;也可以利用图形界面操作实现相同目的: 对于希望直接获取 bin 文件的情况,在成功编译项目之后,可以退出相关设置对话框,此时系统会在后台自动触发一次新的 bit 流构建流程,并最终产出对应的 bin 文件作为副产品之一[^3]。 如果目标是将程序固化到 Flash 上,则还需要进一步制作 MCS 文件。选择合适的路径保存新生成的数据文件,并确认所选设备支持该种类型的编程模式。接着按照提示逐步完成整个写入过程,直至所有必要的步骤都已完成为止[^4]。 ```bash write_cfgmem -format bin -interface spix4 -size 16777216 \ -loadbit "up 0x0 path_to_your_bit_file.bit" \ -file output_bin_filename.bin ``` 上述代码展示了怎样运用 `write_cfgmem` 命令行工具指定参数从而导出 BIN 文件的例子。这里 `-format` 参数设定了期望的结果形式为 “bin”,而 `-loadbit` 部分则告知工具加载哪一个具体的 BIT 文件及其偏移地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值