在没有 IAR 的情况下将 IAR 输出写入 ARM 芯片

Posted

技术标签:

【中文标题】在没有 IAR 的情况下将 IAR 输出写入 ARM 芯片【英文标题】:Writing IAR output to ARM chips without IAR 【发布时间】:2014-09-04 12:35:29 【问题描述】:

我们目前持有 IAR EWARM IDE 的完整许可证,但我们需要将固件上传到正在制造的单元,这意味着只有一个人可以上传,因为应用程序的大小远远超过了 kickstart 大小。

我想知道是否有另一种方法可以仅上传(不调试)IAR 输出的可执行文件而无需完全许可的版本?我已经查看了 Eclipse 插件,但这似乎仍然依赖于 IAR 编译器。

我们正在使用 TMS470 芯片和 JLink 编程器。

任何建议将不胜感激。

【问题讨论】:

大概如果你能得到一些标准形式的输出,比如 hex 文件或平面二进制文件,那么你可以使用任何与你的接口 pod 兼容的通用编程工具;也就是说,jlink 硬件 pod 使用起来往往很痛苦,因为他们将更多的精力放在锁定软件上,而不是让他们的产品真正工作。 我认为 jlink 是由 openocd 支持的,它是免费的,同样有很多便宜的 jtag wigglers,或者只是从一个 ftdi ft2232 迷你模块和几根电线中推出你自己的,大约 20 美元(然后使用openocd)。至少对于调试而言,写入闪存是越来越特定于供应商的,并且可能不受 openocd 或其他软件的支持,通常尽管您不必使用开发人员许可证来对零件进行大规模编程。 【参考方案1】:

在您的项目选项中,有一个用于输出转换器的类别。在本节中,您可以获得摩托罗拉 S-record 格式、Intel 十六进制格式、二进制或其他输出类型。从这里,您可以使用 J-Link 软件,但您需要购买许可证才能下载任意代码,而不是作为调试过程的一部分。

J-Flash 是独立刷机支持所需的软件组件:J-Flash order page.

【讨论】:

【参考方案2】:

J-Flash 许可证被锁定在硬件序列号上 - 您需要为每个要使用的 J-Link 提供一个。对于现有的 J-Link,它们是 somewhat expensive。

OpenOCD 包括对 Segger J-Link(IAR rebadge)的支持,并且可以用于stand-alone flash programming,但它是否工作显然取决于 J-Link 固件版本,所以 YMMV。

有lower cost JTAG debugger/programmers(示例)可以可靠地与 OpenOCD 一起工作,而且成本比单个 J-Link 许可证要低得多。

【讨论】:

【参考方案3】:

Segger 提供J-Flash,这是一个与 J-Link 调试探针接口的 PC 软件程序,用于对目标上的闪存进行编程。您需要 J-Flash 的许可证,但它独立于 IAR(或其他)工具链。

您可能需要另一个软件程序来将 IAR 的标准可执行输出格式转换为 J-Flash 可以使用的格式,可能是十六进制、s-record 或二进制。 IAR 可能包含转换工具,或者您可以进行网络搜索。

【讨论】:

以上是关于在没有 IAR 的情况下将 IAR 输出写入 ARM 芯片的主要内容,如果未能解决你的问题,请参考以下文章

IAR疑难杂症拟解决方法 -- IAR同传后许可证失效

IAR疑难杂症拟解决方法 -- IAR同传后许可证失效

IAR疑难杂症拟解决方法 -- IAR同传后许可证失效

iar 怎么将flash的固定地址用固定变量占住

IAR编译器

IAR 条件断点