This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F2812:从.out 文件生成.bin 文件

Guru**** 2297670 points
Other Parts Discussed in Thread: TMS320F2812, CONTROLSUITE, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/981096/tms320f2812-generating-bin-file-from-out-file

器件型号:TMS320F2812
Thread 中讨论的其他器件: controlSUITEC2000WARE

大家好、Tarun Garg、这一边。

我正在处理 TMS320F2812 DSP 的 SCI-A 引导加载程序。 我正在按照  spraaq2指南中提到的步骤进行操作。  但无法使用 SPRAAQ2文件夹附带的 FileIOShell.exe 应用程序生成.bin 文件。 但是、我成功地使用 HEX2BIN 实用程序为 CKFA 代码生成了.bin 文件、其格式为 Intel 格式。

在此问题上,我有以下问题:

1.对于应用程序代码二进制文件生成:我们不能使用 HEX2BIN 实用程序吗? (就像我们用于 CKFA 一样)

2.如果我们可以使用 HEX2BIN 实用程序,那么应该使用什么格式的 Motorola 或 Intel?

3.是否有任何快捷方式或 CCS 功能可用于从输出文件生成.bin 文件(不使用.bat 文件方法)

4.设置串行终端并发送 CKFA 代码的.bin 文件后,如何发送应用代码二进制文件? 或在 CKFA 代码中附加应用代码二进制文件? 请清除我对- CKFA .bin 文件如何通过串行终端获取.bin 文件的附加代码的理解?

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    hex2000.exe 是否成功生成了 SCIB_Test.hex?

    该应用手册似乎表示它应该是 FileIOShell.exe 之后的"-I"、而不是"-I"。 我不确定它是否区分大小写。 值得一试

    要回答您的问题:

    1.不确定。 3.1.2似乎表示应用程序文件的 Motorola 格式。 附录 D 似乎表明了这一点-英特尔格式的十六进制文件用于 CKFA 文件转换、摩托罗拉格式的十六进制文件用于应用程序代码文件转换。

    2. Intel,因为 HEX2BIN 是 Intel 十六进制到二进制转换器。 这就是 CFKA 的用途。

    3.不确定、这似乎是快捷方式-它发生在编译后。 它可以作为编译后处理步骤包含在内、因此会自动发生。 不确定是您在做什么、还是您是手动做的。

    4.这似乎在应用报告 spraaq2的3.4.4中进行了说明。

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    hex2000.exe 是否成功生成了 SCIB_Test.hex?

    的。

    2.应用手册似乎表明它应该是 FileIOShell.exe 之后的"-I"、而不是"-I"。 我不确定它是否区分大小写。 值得一试

    结果相同、无输出。 二进制文件不会生成

    不确定、这似乎是快捷方式-它发生在编译后。 它可以作为编译后处理步骤包含在内、因此会自动发生。 不确定是您在做什么、还是您是手动做的。

    我是通过在编译后步骤中添加.bat 文件来实现的。

    除上述问题外,我亦需要澄清以下几点

    1. C2000是 LE -小端字节序、但 Motorola 格式将.out 文件转换为十六进制、具有大端字节序。

    2.当我为电路板加电以从 SCI-A 引导时、我发送'A'以锁定波特率并在终端上接收'A'、然后使用终端- TeraTerm 开始发送 F2812的.bin CKFA 文件(本地回波模式关闭)。 但是、当文件开始传输时、我会看到终端上的所有字节以及代码中给出的消息、但代码不会停止或等待我的输入、如以下 screnario 中的报告所示:

    1.键入 A 以重新锁定波特率

    2.用于擦除选项的是/否  

    3.除此之外,它还打印属于同一 if else 条件的两个语句,为什么?

    请参阅以下终端屏幕截图:(不要混淆 O-6、O-7、O-8等...、我特意在打印声明中添加了 SCISEND_Status ()- Function))

     

     

     

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    首先、此应用手册非常旧、并且此软件已被长时间未接触到、因此请在我们尝试帮助您的过程中与我们保持联系。

    那么、让我尝试了解您目前所处的位置:

    -您仍然无法生成 Appcode.bin,对吗?

    -但您正在继续并尝试将 CKFA.bin 下载到目标的 RAM 中-您也会在这里看到一些奇怪的问题(与命令提示符的行为方式和记录方式有关)?

    -您是否能够将 CKFA.bin 成功下载到目标的 RAM 中?

    之后、您能否将 Appcode.bin (可能不是由您生成的、而是 TI 提供的预编译.bin)下载到目标的闪存中?

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    首先、此应用手册非常旧、并且此软件已被长时间未接触到、因此请在我们尝试帮助您的过程中与我们保持联系

    感谢您的积极回应。  

     您仍然无法生成 Appcode.bin、对吗?

    我无法根据建议生成 appcode.bin、但我尝试使用采用 Intel 格式的 HEX2BIN 实用程序生成.bin 文件、并对 ROMS 指令声明 ROM 宽度从16更改为 8进行了一次小的更改。 并尝试通过终端发送此相同的 bin 文件、但没有结果。

    但是、您正在继续并尝试将 CKFA.bin 下载到目标的 RAM 中-您也会在这里看到一些奇怪的问题(与命令提示符的行为方式和记录方式有关)?

    是的。

     

    -您是否能够将 CKFA.bin 成功下载到目标的 RAM 中?

    可能是的、因为终端会回显我们正在发送的字符、但无法成功地说、因为代码不会像我之前所说的那样等待我们的输入、因此会询问波特率锁定和擦除选项。

     之后、您能否将 Appcode.bin (可能不是由您生成的、而是 TI 提供的预编译.bin)下载到目标的闪存中?

    是的、我还尝试发送  TI 提供的预编译.bin、但没有任何变化。

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、我将在今天晚些时候进行回顾和回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    我想、我还应该与您分享我是如何 为目标处理器 TMS320F2812准备 CKFA .bin 文件的。

    以下是 CCSv7中用于"CKFA_Duplicate "项目的代码段、以便更详细地了解问题。

     

     

     我是否可以在此处附加项目文件夹、以便您可以在 CCS 中打开该文件夹、还可以检查 CCS 工具的设置和配置、这些设置和配置可能会根据需要或与所需内容相反?

    CKFA -内核如何以及何时开始执行? 我的意思是、在什么时间点、CKFA 开始执行自己?  

    是 ROM 加载程序代码在接收到的终端上回显字符。那么、如何理解、RAM 加载程序代码/CKFA 何时获得 CPU 的保持?

    正如您在上面的片段中看到的:我收到了有关兼容性问题的警告-它是否会影响.bin 文件?

    控制台在最后一个"系统可以找到指定的路径"中显示了一条消息、然后它如何生成.bin 文件?

    在此过程中生成的.bin 文件是否不正确? 如果正确、则上述消息指示的对象是谁?

    在终端上发送 CKFA 的.bin 文件后、我们是否需要再次按'A'来重新锁定波特率、就像我们在发送内核之前的一开始所做的那样?

    我也尝试过、发送和终端回传相同的字符。

    当我双击 FileIOShell.exe 时,我收到以下消息:

     

     硬件方面是否有任何可能不正确或可疑的东西?  

     

     

     

     

     

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    我是否可以在此处附加项目文件夹、以便您可以在 CCS 中打开该文件夹、还可以检查 CCS 工具的设置和配置、这些设置和配置可能会根据需要或与所需内容相反?

    您应该能够在此处附加一个 zip 文件。

    CKFA -内核如何以及何时开始执行? 我的意思是、在什么时间点、CKFA 开始执行自己?  

    一旦 CKFA 被 SCI ROM 引导加载程序流式传输到 RAM 中、执行被传输到 CKFA。

    是 ROM 加载程序代码在接收到的终端上回显字符。那么、如何理解、RAM 加载程序代码/CKFA 何时获得 CPU 的保持?

    也许您可以有一个 print 语句。 我没有看到代码、但我假设 codestartbranch.asm 中有一个入口点、在该入口点之后、可能会运行一个 C 初始化例程、然后调用 CKFA 的 main()。

    正如您在上面的片段中看到的:我收到了有关兼容性问题的警告-它是否会影响.bin 文件?

    我相信您不需要担心这些问题。 请参阅此处。  

    software-dl.ti.com/.../c2000_c28x-compiler-error-and-warning-messages.html

    控制台在最后 一个"系统可以找到指定的路径"中显示了一条消息 、然后它如何生成.bin 文件?

    我们需要检查生成消息的构建过程中的哪个点。 这当然是不可忽视的。 您能否查看详细的构建日志。

    在此过程中生成的.bin 文件是否不正确? 如果正确、则上述消息指示的对象是谁?

    与上述相同的注释、我们需要进行检查。 让我们还确保使用的设置与应用手册中指定的设置完全相同。

    在终端上发送 CKFA 的.bin 文件后、我们是否需要再次按'A'来重新锁定波特率、就像我们在发送内核之前的一开始所做的那样?

    是的、这是应用手册的图18和图20所示的内容。

    您是否尝试降低波特率以检查屏幕上的垃圾字符是否消失、并且行为是否与应用手册描述的一致(即等待用户输入)?

    此外、您是否绝对需要使用 F2812、或者是否可以灵活地移至更新的器件? 我们的新工具软件和文档更成熟、更强大且更具最新。

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    有关如何为应用程序代码从 Motorola hex 生成.bin 文件到二进制文件的任何更新? 不是 FileIOShell?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您应该能够在此处附加一个 zip 文件。

    好的、我会的、但是需要时间、因为我需要它的许可才能这么做。

    我们需要检查生成消息的构建过程中的哪个点。 这当然是不可忽视的。 您能否查看详细的构建日志。

    我不知道如何解决这个问题、因为它是在生成.bin 文件后生成的。 您能否检查先前附加的代码段。

    您是否尝试降低波特率以检查屏幕上的垃圾字符是否消失、并且行为是否与应用手册描述的一致(即等待用户输入)?

    波特率的变化不会产生影响。 它不等待输入。 可能是我们尚未发送正确的应用代码二进制文件。 这就是为什么我认为 mot2bin FileIOShell 实用程序应该起作用的原因、它目前不起作用。 不知道为什么?

     

    此外、您是否绝对需要使用 F2812、或者是否可以灵活地移至更新的器件? 我们的新工具软件和文档更成熟、更强大且更具最新。

    是的、我们必须使用 F2812 、因为它在现场、因此目前无法迁移到新系列。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    我已就此问题向主题专家寻求帮助。

    同时、我认为我们需要以正确的方式(如应用手册中所述)生成 CKFA 文件、以便系统地跟踪问题。 如果编译正在生成警告等、我们应该从预编译的 CKFA 文件开始、看看该行为是否与应用手册中描述的内容一致?

    您能告诉我这方面的信息吗

    1) 1)是否有预构建的 CKFA 文件? (这是否来自 controlSUITE?)

    2) 2)您是否尝试过它、行为是否相同、即它不等待用户输入?

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    您使用的是哪个 CCS 版本和编译器版本?

    应用手册中是否提到编译器版本?

    可能是应用手册使用的版本与您使用的版本之间的编译器 HEX2BIN 存在差异。 这就回到了我上面的建议-尝试使用 TI 的预编译 CKFA.bin、该预编译可以正常工作、假设有一个预编译。

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

     

    您使用的是哪个 CCS 版本和编译器版本?

    Code Composer Studio 版本:7.0.0.00042

    编译器版本:TI v16.9.1LTS

     

    应用手册中是否提到编译器版本?

    是的、根据下面的代码段、似乎是3.1旧项目

    可能是应用手册使用的版本与您使用的版本之间的编译器 HEX2BIN 存在差异。 这就回到了我上面的建议-尝试使用 TI 的预编译 CKFA.bin、该预编译可以正常工作、假设有一个预编译。

    这是否意味着、对于基于3.1版本编译器的工程、HEX2BIN 实用程序将正常工作。 如果是、则可以从此处获取适用于 CCS 版本和编译器版本的最新 HEX2BIN 实用程序。

    当我直接在 CCS 中导入 CKFA 项目时,它不显示该项目的构建选项,因此我创建了新项目,并根据 CKFA 应用手册进行了必要的更改,并创建了 cmd、out、hex 和 bin 文件。 那么、如何使用我的 CCS 版本和编译器创建 CKFA 项目呢?

    HEX2BIN 是否不是独立的实用程序? 与编译器版本如何对该实用程序产生影响一样?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有预构建的 CKFA 文件? (这是否来自 controlSUITE?)

    否 我从该链接下载了所有内容:

    本应用报告中讨论的项目配套资料和源代码可从以下 URL 下载:http://www.ti.com/lit/zip/SPRAAQ2

    在我的系统中、安装 CCS 后、它创建了以下文件夹:

    2) 2)您是否尝试过它、行为是否相同、即它不等待用户输入?

    我将尝试返回给您、但我有一个问题:对于为 F2812或 F2810制作的处理器 CKFA 预编译 bin 文件、根据代码、它看起来是 F2810、内存映射存在差异。

    我们能否在 AnyDesk 应用程序上远程讨论所有这些问题?

                   

    “我尝试发送预编译 CKFA.bin 文件。 是的、它等待用户输入。 但所有打印语句都没有正确出现(英文不可读)。 然后我发送 appcode.bin (特定于 F2812处理器),但在通电并将引导模式更改为“引导至闪存”后,处理器不会响应所述的行为。 (即,GPIO 不切换)”

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    我对延迟答复表示歉意。 E2E 电子邮件通知功能中断、昨天我没有上网服务。 请给我一个时间来查看您的最新更新并返回给您。

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、当然可以。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、很抱歉耽误你的时间。 请给我几天时间来了解一下。 我可能还需要获得他人的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    没有问题、您需要花时间、但请提出积极的解决方案、否则会使我们的项目面临风险。 希望您能理解。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、我明白了。 感谢您的耐心等待。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有铅? 您是否找到了解决方案。 已经是一周了。 我需要回答老板的问题。 我无法再拿住它了。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    一些问题和建议:

    1. zip 文件中的预构建文件。 您是否尝试过预构建的 F2812 AppCode.bin?

    –\spraaq2\Released Version\code\AppCode\128kW Hex 文件–AppCode_hex.map 文件显示它适用于 F2812

    –\spraaq2\Released Version\code\AppCode\64KW Hex 文件–AppCode_hex.map 文件显示它适用于 F2810

    –CKFA 文件–无法判断它用于哪个器件(您根据项目文件指明它可能用于 F2810)

    2.我发现此问题可能与您所面临的问题有关。 请查看它是否对您有所帮助。

    https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/102500/spraaq2-flash-programming-through-sci-a

    3. 您使用什么硬件进行测试? 是定制硬件吗? 您是否尝试过使用其他电路板?

    4. 此问题以前是否发生过? 这是您第一次遇到此问题吗? 以前是否使用 TI 提供的这种方法进行过固件升级?

    考虑到此软件的使用时间、我解决此问题的资源非常有限。 它甚至早于 controlSUITE 的日期、后者随后被 C2000Ware (这是我们当前支持的内容)所取代。

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.是的、我尝试了预编译的 F2812 appcode.bin 和预编译的 CKFA 二进制文件。 但是、没有发生如文档中所述的任何情况、即编程后、GPIO 将会切换。 但 我的订单中没有 GPIO 切换。

    2.这个主题讨论 CPU 故障,但我不是这样。 是的,它谈到 FileIOshell,它不能与 MS DLL 一起使用。 但他并未讨论如何解决此问题并使 FileIOShell 正常工作。

    3.它是定制硬件。 不、我没有尝试使用不同的板。

    不是的、这是我们第一次转到项目中的引导加载程序活动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sira、

    我现在已经检查了预编译 F2810 appcode.bin 和预编译 CKFA 二进制文件。 闪存编程成功、并且按照文档的要求工作(切换 GPIO)。 但我怀疑我的处理器是 F2812 and.bin 是 F2810、那么它是如何成功运行的?

    这一线索是否能帮助我们进一步调查根本原因?

    哪些原因或条件不符合用于转换我自己的 CKFA 代码和我的应用程序代码的 HEX2BIN 和 FileIOShell 实用程序。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tarun、

    很高兴取得了一些进展。 我将检查 F2810的预编译文件如何在 F2812上工作。 我猜没有冲突。

    至于 TI 引导加载程序本身、我们不再支持这种软件。 我建议您使用第三方提供的串行闪存编程解决方案、例如 Codeskin 和 Elpotic。  https://www.elprotronic.com/collections/c2000https://www.codeskin.com/c2prog-faq

    谢谢、

    Sira