读回十六进制以验证编程

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
10个帖子/ 0新
最后一篇
休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
读回十六进制以验证编程

你好,
我想使用smartsnipts .exe CLI工具在编程DA14580之后读取flash的内容,并自动按字节与原始的hex文件进行比较。
你能给我指出一个工具,要么从keil输出的十六进制文件转换到SmartSnippets格式化的十六进制数据,或反之?

目前,Keil输出看起来像这样(这是英特尔十六进制格式吗?):
: 020000042000 da
: 1000000000980020 b9040020c1040020d904002079
: 1000100000000000000000000000000000000000 e0

智能代码段CLI输出一个看起来的文件:
十六进制地址文本
0x00000 70 50 00 00 00 00 00 4A D0 PP J?
0x00008 00 98 00 20 B9 04 00 20??

可以通过以编程方式将英特尔HEX转换为智能片段文件中所示的ASCII HEX,并将其剪断该文件的十六进制部分,但如果有更简单的方法来执行此验证,那将非常感谢!

谢谢,
凯文

设备:
mt_dialog.
离线
最后一次露面:4个月3天前
职员
加入:2015-06-08 34
嗨Hughesk,

嗨Hughesk,

Keil的输出是一个.hex英特尔格式文件,并且在闪存中刻录的是实际的二进制文件,因为CLI通过Hex2bin.exe通过.hex文件以生成.bin文件。如果这是您正在寻找的内容,CLI命令工具嵌入了验证标志。请检查智能片段的帮助文档(打开Smart Spetpets Toolbox并检查帮助选项,您还会发现帮助文件)它还可以解释58x和68x系列的CLI命令。

谢谢mt_dialog.

休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
你好,

你好,
过了一段时间,我再回到这个问题上来。接下来我有两个问题:
1.我没有看到CLI选项用于与闪存相关的验证标志。如果在闪存期间使用的Smartsnippets和DA14580二进制文件已经对闪存进行了验证,那么在将其发布到生产环境之前,我只需要一些方法来进行演示。那么,您是否有我遗漏的验证标志,或者有任何一次性演示或测试Smartsnippets/DA14580闪存验证的方法?

2.如果没有验证标志或无法演示验证过程,那么我可以将闪存内容读回磁盘。这是简单的,然后我可以将该十六进制文件转换为二进制文件。然后我想比较两个二进制文件:
一种。从闪存中生成的二进制文件读回来
b.由keil编译的hex文件生成的二进制文件
然而,我发现两者有一些细微的差异。忽略前8个字节(为使其可引导而添加的),似乎在flash的回读中有一些0x00的字符串,而在Keil-hex二进制中是0xFF的。这些地点可以预测吗?除非我能解释这些(诚然是很小的)差异,否则我无法进行直接的验证,而且我也不一定想将它们硬编码为异常。

在此先感谢您的帮助!

mt_dialog.
离线
最后一次露面:4个月3天前
职员
加入:2015-06-08 34
嗨Hughesk,

嗨Hughesk,

  1. 我不确定得到的问题,CLI命令烧伤一个文件到flash包括一个验证选项,如果设置[-verify]标志工具将验证烧伤的二进制文件在flash上。你说的" flash验证的一次性演示"是什么意思?如果指示该工具进行验证,它将提示验证已成功。请查看SSToolbox的帮助选项,工具的帮助文档。
  2. 关于第二个问题,你下载到ARM的是一个二进制文件。bin文件,而不是keil生成的。hex文件,你不能直接比较这两个文件。二进制中带有FF的区域是keil产生的洞,这是由于580的分散文件和存储组织。hex文件没有这种漏洞,因为它包含从hex2bin实用程序转换的地址。但是将从读取生成的文本文件与您用来刻录fw的.bin文件(当然是不同格式的)直接类似。

谢谢mt_dialog.

休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
你好,

你好,
谢谢您的及时回复。

关于CLI选项,'smartsnippets.exe -help'不会在smartsnippets v3.8中打印出任何-merify选项。这是一个新功能吗?

休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
关于二进制

关于二进制比较,我采取以下具体步骤:
1.编译到十六进制的Keil。称之为KeilOutput.hex
2.在hex文件上运行'hex2bin.exe -l 8000',生成一个32KB的KeilOutput.bin
3.程序KeilOutput。十六进制到DA14580 spi连接的Flash,使用SmartSnippets v3.8通过JTAG探针,选择“Yes”使其可引导。
4.读取闪存目录并保存为FlashContents.HEX。
5.在FlashContents上运行“hex2bin.exe -l 8000”。hex创建FlashContents.bin
6.将KeilOutput.bin与FlashContents进行比较。

忽略前8个字节的flashContents.bin(由于可引导选项),除了三个部分内存之外,文件几乎完全匹配,其中在FlashContents.bin是'00'和Keiloutput.bin的集合是'FF'。该特定文件集中的三个部分位于内存的开头附近,并且长度为192,28和92字节。如果您觉得有帮助,我会乐意通过电子邮件分享代码段。

谢谢,
凯文

mt_dialog.
离线
最后一次露面:4个月3天前
职员
加入:2015-06-08 34
嗨Hughesk,

嗨Hughesk,

智能片段版本,您使用的是很老,聪明的片段工具箱套件已经取代了聪明的片段,但我认为,即使是这个版本的验证选项,- help命令不会显示此选项,但如果你想使用写命令错误的工具将提示您正确的选择。您还可以检查Smart Snippets帮助选项和该选项中可用的pdf。

关于烧制文件和读文件的比较,我做了同样的事情,但回读是在.bin文件中完成的,而不是十六进制,文件是相同的(除了可引导头和原始文件有FF填充)。

谢谢mt_dialog.

休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
你好,

你好,
感谢SmartSnippets版本建议 - 我没有意识到SmartSnippets本身在工具箱中更新(我认为只是一个IDE ......)。无论如何,较新版本确实在Write Flash CLI选项中具有验证。现在我的问题只是验证之一:

1.您是否有任何建议的方式证明“验证”选项实际执行验证?一些方法可以中断并改变回读,以便它失败一次或沿这些线路的SPI闪存验证?在释放到生产之前,需要对编程脚本进行验证。

2.或者,如果没有一种简单的方法来演示验证过程,那么返回到.bin,我确实看到指定以“.bin”结尾的读取文件名会导致写入二进制文件(它是尚不清楚文件扩展名实际用于确定SmartSnippets的输出)。但是,当我读回并使用Hex2bin转换时,我仍然存在完全相同的问题。也就是说,内存开头有三个字符串,返回和keiloutput.bin中的redback和ff中的00串(从keiloutput.hex使用hex2bin转换)。任何想法如何不同?

谢谢,
凯文

休斯克
离线
最后一次露面:2年7个月前
加入:2014-04-26 02:56
跟踪二进制文件

跟踪二进制比较:

如果我使用新的SmartSnippets从一个十六进制文件刻录,我注意到(在我的特定的十六进制文件中)地址A8是出现在SmartSnippets窗口中的'——'部分的开始,我想这意味着未指定。如果我烧录到SPI Flash,然后读回来,从A8开始的区域被'00'填充。
打开一个用hex2bin创建的.bin文件,我看到'——'区域被FF替换了。因此,回读flash二进制文件与创建的hex2bin二进制文件不匹配。

编辑:
看起来可以通过指定填充字节来解决:
Hex2bin.exe -p 0 [file.hex]
导致“file.bin”匹配回读闪存的内容。

我仍然想知道是否有一种方法来测试或演示SmartSnippets的“-verify”选项,但如果没有,我对与正确创建的二进制文件进行回读比较感到满意。

mt_dialog.
离线
最后一次露面:4个月3天前
职员
加入:2015-06-08 34
嗨Hughesk,

嗨Hughesk,

关于CLI和验证选项,将命令粘贴为智能代码箱工具箱手册:可执行文件-type spi -chip inch_version [-clk clk] [-cs cs] [-moso miso] [-jtagjtag_serialnumber|-com_port portnumber] [-baudrate率] [-gpio pinit] [--uart txid] [固件firmware_file] -cmd write -file文件名[-offset] [-max size][-核实][-boot] [-y] [-nomessages messagfilter]。什么命令是写入flash,然后执行一个读回为了验证,但这种行为对用户是透明的,其阅读的工具只会提示您flash为了验证然后它要么promt您验证成功与否。如果您要在此上面寻找一个单独的命令来显示整个过程,那么没有这样的东西是不可用的。请查收附件中描述的程序截图。

谢谢mt_dialog.