MCS文件解析

本文档详细介绍了MCS文件的格式,包括Type00、Type01、Type04等类型的数据传输内容,以及它们在bin文件中的作用。Type00用于传输bin文件内容,Type01表示文件结尾,Type04则涉及跨扇区操作。同时,解释了bin文件和MCS文件之间的关系,bin文件不包含地址和校验信息,而MCS文件则是由bootgen工具根据.bif文件生成的,用于指定bin文件内容及放置顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MCS文件

  • 本文档借鉴“https://blog.csdn.net/wordwarwordwar/article/details/77151619”
  • 感谢前辈,我们都是站在巨人的肩膀上

一.MCS文件格式

Type 00

  • 表示要传输的内容数据(也就是bin文件的内容),格式如下所示
开始字符Byte CountAddrTypeDataChecksum
:传输长度(见1)偏移地址(见2)0x00bin文件内容校验(见3)
  • 1、表示该条指令要传输的bin文件有效字节数
  • 2、上述有效字节数在bin文件中的偏移地址
  • 3、该协议中除校验外其他字节求和(益处后保留低字节有效)后,按位取反加一
:1000000000000014000000140000001400000014A0
:100010000000001400000014000000140000001490
:10002000665599AA584E4C58000000000000FCFF8D
:10003000002800000000000000000000B8C301001C
  • 上面文本是从某mcs文件中截取的部分内容,按照协议解析
10 0000 00 00000014000000140000001400000014 A0 //长度16,地址累加16,type00,bin文件内容,和校验
10 0010 00 00000014000000140000001400000014 90 //长度16,地址累加16,type00,bin文件内容,和校验
10 0020 00 665599AA584E4C58000000000000FCFF 8D //长度16,地址累加16,type00,bin文件内容,和校验
10 0030 00 002800000000000000000000B8C30100 1C //长度16,地址累加16,type00,bin文件内容,和校验
  • 下图是对应bin文件截图
    在这里插入图片描述

Type 01

  • 表示要传输的内容数据为文件结尾
开始字符Byte CountAddrTypeDataChecksum
:传输长度偏移地址0x01bin文件内容校验
  • 对应mcs文件如下所示
:00000001FF

Type 02

  • 提供用于确定绝对目标地址的偏移量
  • 我目前还没用到

Type 03

  • is ignored during input and not sent duringoutput by Data I/O translator firmware
  • 我目前还没用到

Type 04

  • 我理解为扇区编号
  • 在Type 00中地址最大偏移量为0xFFFF(64KB)恰好为一个flash一个扇区大小,所以跨扇区操作时需要发送该协议
开始字符Byte CountAddrTypeDataChecksum
:传输长度0x00000x04扇区编号校验
  • 截取部分mcs文件
:020000040000FA
:1000000000000014000000140000001400000014A0
:100010000000001400000014000000140000001490
:10002000665599AA584E4C58000000000000FCFF8D
:10003000002800000000000000000000B8C301001C
。。。
。。。
:020000040001F9
:1000000005A1BFF263041D32230000B9A30040B96B
:1000100063041C32A30000B9A34040B963041C323E
:10002000A34000B9A38040B963041C32A38000B987
:10003000A3C040B963041C32A3C000B9A30041B9F6
  • 可以看到每隔64kByte会有tyte4,且扇区编号加一

  • 下图为qspi flash原理图
    在这里插入图片描述

  • 对应扇区分配如下图所示
    在这里插入图片描述

Type 05

  • provides the execution start address
  • 我目前还没用到

二.MCS文件和bin文件的关系

  • bin文件即为二进制文件,内部不含地址和校验信息
  • xilinx中bin和mcs文件是依靠bootgen工具和.bif生成的
  • 下面是一个bif文件的例子,是告诉bootgen,bin(或mcs)中包含那些内容以及如何 (按照什么顺序)放置,可以参考ug1283文档
the_ROM_image:
{
	[bootloader]/home/hhl/work/02_project/06_peta_prj/01_prj/c_prj/prj25/fx_no_os/export/fx_no_os/sw/fx_no_os/boot/fsbl.elf
	/home/hhl/work/02_project/06_peta_prj/01_prj/c_prj/prj25/app/Debug/app.elf
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值