问题标签 [hex-file]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
534 浏览

debugging - 修复 intel HEX 文件的校验和问题

我制作了以下 intel hex 文件片段来测试几个 8051 处理器模拟器:

我使用的一个位于此处:http ://www.jroweb.de/8051/

根据我的研究,据我了解,英特尔十六进制文件的校验和是通过将所有十六进制数字对(最后一个除外)相加来计算的,然后将结果与 255 进行与运算以获得 8 位值,将值取反,加 1,然后做 mod 256。

我基本上遵循了这些论坛的受访者的数学:

https://social.msdn.microsoft.com/Forums/en-US/a1736ae8-2db6-4657-a98c-e3e447ebfda3/calculate-intel-hex-file-format-checksum

当我执行计算时,上面代码片段中每一行的校验和值都是正确的,但是在我上面提到的 8051 处理器模拟器程序中,它在最后一行显示校验和错误。它认为该值应该是 7F 而不是 7E。

是否有可能在最后一个 hex 文件行中存在误报(这会使某些软件误以为 7F 是正确的值)?如果是这样,我应该如何安排我的十六进制文件中的最后一行来修复它?

0 投票
1 回答
196 浏览

visual-c++ - 从英特尔 HEX 记录文件打印行

我正在尝试通过串行连接将 Intel Hex 文件的内容发送到微控制器,该微控制器将处理发送的每一行并根据需要将它们编程到内存中。处理代码期望在 Hex 文件中出现的行被发送,包括每行末尾的换行符。

此代码在 Windows 10 PC 上的 Visual Studio 2013 中运行;作为参考,微控制器是 ARM Cortex-M0+ 型号。

但是,下面的代码似乎并没有按照我预期的方式处理 Intel Hex 记录文件。

目前,串行传输调用已被注释掉,for 循环用于验证文件是否被正确读取。我希望看到 hex 文件的每一行都打印到终端上。相反,我什么也得不到。有任何想法吗?

编辑:经过进一步调查,我确定程序甚至没有进入 while 循环,因为文件无法打开。我不知道为什么会这样,因为该文件存在并且可以在记事本等其他程序中打开。但是,我对文件 I/O 的经验并不丰富,所以我可能会忽略一些东西。

0 投票
0 回答
53 浏览

stm32 - 使用 stm32 将音频文件加载到外部内存中

我想将 bin 格式的音频文件移动到外部闪存。我用incbin这个。音频文件存在于.map文件中,但.hex文件中缺少这些数据。

给我一个解决这个问题的方法。

0 投票
1 回答
462 浏览

assembly - 为什么最后会有一个十六进制转换器的对象?

我正在学习汇编语言编程。我遇到了微控制器程序的步骤。在最后一步为什么将 .obj 文件转换为 .hex 文件。该过程表明该文件被转换为 .hex 并刻录到 ROM。据我了解,.obj 文件已经是机器语言代码并且可以运行。如果这个问题有意义,请解释为什么最后一步需要 OH 转换器?在此处输入图像描述

0 投票
0 回答
83 浏览

arm - 我可以从 IAR 工作台中的十六进制输出文件中获取项目设置值吗?

我是 IAR 工作台和嵌入式软件的任何部分的初学者。我突然不得不为控制器产品编译十六进制代码。因此,我成功地将现有的十六进制文件(完全没有错误)上传到使用闪存加载程序的产品中,并且我检查了所有功能是否正常工作。但是当我上传十六进制文件时,我更改了原始文件中的一些测试值(因为,我必须稍后更改一些值以满足客户的要求),我可以上传但它根本不起作用..我认为调试或其他值丢失。

在这种情况下,有没有办法获取现有的hexa文件中设置的调试值或其他链接器值?因为前任没有留下任何有关设定值的信息,所以很难询问原始设定值。

我使用 ewarm,IAR 8.5ver(没有许可证版本。所以我只能使用这个程序 30 天,因为我在过去的 IAR 版本中失败了很多次)

如果您有任何建议或设置调试/链接器值,请告诉我(我更改了配置文件,链接器中的输出)感谢您阅读本文!

0 投票
1 回答
66 浏览

c - PicSimlab 0.7.5版本1分钟内关机非常频繁

picsimlab 工具 0.7.5 版工具在 Windows 10 中打开该工具后 1 分钟内关闭。我尝试再次卸载并安装,仍然面临同样的问题。我正在尝试加载通过在 MPLAB X IDE V5.35 中运行 C 项目生成的十六进制文件我在 ubuntu20.04 中尝试了相同的 picsimlab,它在那里运行良好,在 Windows 中它非常频繁地关闭

0 投票
1 回答
78 浏览

elf - 尝试在 srec_cat 中复制使用 ielftool 制作的 CRC

因此,我试图找出一种srec_cat在将代码放在微控制器上之前计算 CRC 的方法。现在,我的构建后脚本使用ielftoolfrom IAR 进行计算并将其插入到 hex 文件中的正确位置。

我想知道如何srec_cat使用相同的十六进制文件生成相同的 CRC。

这是产生我要复制的 CRC32 的 ielftool 命令:

--checksum APP_SYS_ApplicationCrc:4,crc32:1mi,0xffffffff;0x08060000-0x081fffff

  • APP_SYS_ApplactionCrc是将存储校验和并添加 4 字节偏移量的符号
  • crc32是算法
  • 1指定补码
  • m反转输入字节和最终校验和
  • i用起始值初始化校验和值
  • 0xffffffff是起始值
  • 最后,0x08060000-0x081fffff是计算校验和的内存范围

我已经尝试了很多东西,但是我认为这是迄今为止我最接近同一命令的srec_cat

-crop 0x08060000 0x081ffffc -Bit_Reverse -crc32_b_e 0x081ffffc -CCITT -Bit_Reverse

  • -crop 0x08060000 0x081ffffc以某种方式指定将计算 CRC 的内存范围
  • -Bit_Reversem当放置在正确的位置时,应该做与 ielftool相同的事情
  • -crc32_b_e是算法。(我还不确定我需要大端_b_e还是小端_l_e
  • 0x081ffffc是内存中放置 CRC 的位置
  • -CCITT初始种子( 中的起始值ielftool)都是一位(这是默认值,但我想我会把它扔在那里)

有没有人知道如何复制 ielftool 的 CRC?还是我只是徒劳无功?

我是 CRC 的新手,除了基础知识外,我知道的不多。如果我有完全相同的算法,这是否重要?当我将代码放在板上时,CRC 是否仍然有效?

注意:我目前正在使用ielftool 10.8.3.1326srec_cat 1.63

0 投票
1 回答
60 浏览

python - python中的.hex文件读取或.bin - 获取第一个地址值

我有各种 .hex 文件。其中一些从地址 0x0000 开始,一些从 0x3000 开始。在第二个选项中,我必须用“F”填充缺失的地址。但是在简单地将 .bin 文件转换为 .hex 之后,我不了解第一个地址。有没有办法知道它以便程序可以决定是否需要添加一些字符?

0 投票
1 回答
35 浏览

eclipse - 在 Eclipse 中自动将两个 hex 文件合并为一个

我在 Eclipse 的同一工作区中有一个引导加载程序项目和一个应用程序项目。

我想将这两个项目的 hex 文件合并为一个 hex,这样我就可以同时在我的 MCU 中刷入两个项目。

我知道使用一些工具(https://www.keil.com/support/docs/2666.htm)可以做到这一点,但我希望合并过程在 Eclipse 中使用构建后命令或其他命令进行。

谢谢

0 投票
1 回答
39 浏览

c++ - 在 c++ 中使用 fstream 读取/写入二进制数据和控制字符

我正在尝试使用 C++ 编写一个程序,在字符串和字符之间执行 XOR 操作。结果存储在一个文件中,稍后再读回。XOR 操作的某些输出导致字符成为控制字符,如 SOH、ACK、STX、BEL。然后,这些控制字符会阻止程序继续运行,因此它只会将 XOR 操作输出的一半写入或读取到文件中。我尝试使用 ios::binary 模式来避免这种情况发生,但问题仍然存在。有没有其他方法可以强行避免控制字符操作?