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.

[参考译文] TMS320F280025:固件校验和

Guru**** 2538955 points
Other Parts Discussed in Thread: TMS320F280025, UNIFLASH, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018439/tms320f280025-firmware-checksum

器件型号:TMS320F280025
主题中讨论的其他器件: UNIFLASHC2000WARE

你(们)好

我正在使用 TMS320F280025。 我需要计算闪存中固件存储的 CRC、以便在开始运行之前确保代码的完整性。 我有几个问题。

1.如何在 CCS 中为整个闪存部分查找编译代码的单个 CRC 黄金值

2.如何在生产中使用 Uni Flash 将以下项目刻录到 OTP?

  a.型号(__LW_AT__固定值)

  B.产品的序列号(__LW_AT__它将改变)

  c.固件的黄金 CRC 值(修复值)

什么是 CRC 计算方法、例如 CRC8、CRC16、CRC32、编译器可以使用它来计算黄金值?

CRC 计算是以 LSB 为优先级的实现还是以 MSB 为优先级的实现?

BR

HK Woo

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

    您好!

    我正在与编译器团队和闪存专家核实响应情况。 将尽快返回给您。

    谢谢

    Aravindhan  

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

    香港宇人会

    此器件上没有任何应用程序可用的 OTP 空间。  您是要将其编程到专用闪存位置吗?

    请注意: 我建议在闪存中指定一个128位位置(8个字在128位边界上对齐)、即使您的 a + b + c 小于8个字。  

    原因:每64位闪存数据计算一个8位 ECC。  ECC 空间中的每个地址位置包含两个64位闪存主阵列的 ECC 数据(16位 ECC = 低64位的8位 ECC 和高64位的8位 ECC)。   

    我将让 Aravindhan 与我们的编译器团队一起结束校验和生成。

    谢谢、此致、

    Vamsi

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

    此外、您可能还需要查看 《C28x 汇编语言工具指南》(www.ti.com/.../spru513)中的第8.9.1节和第8.9.2节。

    第8.9.2节可能对您特别感兴趣。  它有助于在存储器范围内生成 CRC 并将结果存储在输出段中。

    关于您提到的产品序列号、因为它会发生变化: 您在此处查找的确切帮助是什么?  Uniflash 会对映像中的任何内容进行编程。  您计划如何将其作为图像的一部分?   以下几个可能会帮助您的想法:

    1.为 固定值和非固定值分配单独的128位位置。  这样、您可以将固定值作为主映像的一部分。

    2.对于可能为每个设备更改的非固定值(如序列号),请按照指示进行操作:您可能需要考虑将其与映像的其余部分分开编程。  由于它仅是您需要编程的一个位置、因此可以通过将其填充到二进制文件中并使用 Uniflash 加载它来轻松完成编程。  值会进入二进制文件、您可以向 Uniflash 提供目标地址。

    谢谢、此致、
    Vamsi

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

    香港宇人会

    我在电子邮件中收到了您的消息-您在 DS 中看到的 OTP 用于 DCSM 安全配置。 它不能用于任何其他用途。

    谢谢、此致、

    Vamsi

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

    Vamsi

    TI 的文档使我感到非常困惑。 请查看下图

    请说明用户 OTP 的含义。 很困惑。 此外、您建议使用闪存来存储 CRC 黄金样本。 我对此有疑问。 如果我将 CRC 值放入固件中、是否会影响 CRC 值使用#pragma CODE_SECTION 检测。 例如、我的固件的 CRC 黄金样本是 CCS 的0x0023F30A (仍在等待 TI 回复、如何从 CCS 获取)、然后我使用以下代码将值放入我的固件

    #pragma CODE_SECTION (crc_goldenValue、"user_data")//其中 USER_DATA 长度为1

    uint32_t crc_goldenValue = 0x0023F30A;

    如果我的代码正确、它是否会将 CRC 黄金值从0x0023F30A 更改为其他值?

    BR

    HK Woo

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

    香港宇人会

    很抱歉。  我同意这是令人困惑的(人们可能会理解、只有当他们阅读 TRM 时、它才会专门用于 DCSM)。 我将把您的反馈转发给我们的数据表团队、以将其修改为 DCSM 用户 OTP。

    关于您通过将 CRC 值放置在闪存空间中更改的查询:您听说它上已有活动帖子-您可以继续在此处讨论。  如果情况并非如此、我可以将其分配给我们的编译器团队、以进一步帮助您。

    请注意:我不在办公室、因此我将要求我们的团队进一步帮助您。

    谢谢、此致、
    Vamsi

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

    Vamsi

    我不理解您对 CRC 问题的意义。 这是否意味着 TI 的某个人会跟进我的案例。 正确吗?

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

    香港宇人会

    我认为您还有另一个关于 CRC 问题的活跃帖子。  我现在明白了。  我们的编译器团队将帮助回答您的问题。  我为他们分配了这个职位。

    谢谢、此致、
    Vamsi

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

    Vamsi

    我在 CRC 问题上没有其他帖子。 请帮助指派 TI 的人员尽快回答我的问题。

    关于 CRC 问题、我是否解释清楚、以便您可以将我的问题告诉 TI 编译器团队。

    谢谢

    BR

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

    香港宇人会

    是的、几个小时前、我已经将该帖子分配给了我们的编译器团队。   

    我有你的问题。  如果我们的编译器团队需要任何澄清、他们会告诉您。  

    谢谢、此致、

    Vamsi

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

    HK、

    我认为 F28002x 上的 VCRC 模块将是计算和检查应用中闪存 CRC 的最佳选择。  在将 CRC 黄金值存储到闪存方面、它会影响 CRC;我建议从检查中排除该段。  请记住、闪存具有双位检测功能、每128位校正一次 ECC、因此这可用作 CRC 值良好的保护措施。

    我将查看此应用手册、其中介绍了 C2000 MCU 上的不同 CRC 引擎。

    F28002x 系列 MCU 具有 VCRC 模块。  C2000Ware 中有一个编码示例、位于 C:\ti\c2000Ware_3_04_00_00\libraries\DSP\VCU\c28\examples\crc\ 您可以在此器件上使用2838x_vcrc_***示例

    最棒的

    Matthew

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

    你好、Matthew

    很高兴再次与您合作。 我希望你记住我。 我是一个有关 TMS320F280025的 TI PLC IC 库。 实际上、问题是针对同一个项目。

    关于闪存检查、我更喜欢编写我们自己的函数。 这是因为应用将应用 IEC60730。 有必要向代理机构演示闪存检查功能是否正常。 我们需要在 调试模式下(例如使用 CCS)与它们进行分步联合测试。 如果我们使用的是 TI 功能、我对机制并不熟悉、因此向代理部门演示并不容易、因为我不知道该机制、也没有向代理部门展示详细文档。

    基于上述原因。 我仍然希望编写我们自己的闪存 CRC32函数。 我遇到以下问题

    CCS 似乎在 CCS 中使用 CRC16而不是基于片上工具的 CRC32

    2.您提到 CRC 黄金值会影响 CRC。 实际上、我的 CRC 黄金值存储方法就是这样

      a.重新排列链接器命令文件、以便保留0x8FF0到0x8FF1 (32位)的闪存地址、并使用以下内容进行存储

         存储器

         {。

                    CRC_STORAGE:origin = 0x08FF0,length = 0x00001

          ……}

          部分

          {。。

                 CRC_VALUE:> CRC_STORAGE

      b.使用以下代码

          #pragma CODE_SECTION (CRC_GoldenValue、"CRC_VALUE ")//其中长度为1

          uint32_t crc_goldenValue = 0x0023F30A;// 无论如何都可以从 CCS 或???获取值。 CRC       

                                                                              //值从0x08000到0x8FEF

       c.在应用程序代码中

           uint32_t * crc_pr = volatile uint32_t * ram_address_pr =(volatile uint32_t *) 0x08FF0

           uint32_t crc_value =* crc_pr

           然后写入一个 CRC32应用程序、该应用程序计算0x08000到0x8FEF 之间的 CRC32

       如果固件有任何更新、则需要以任何方式获取新的 CRC32黄金、然后将 CRC_goldenValue 更新 为新的。

    以上是我的方法。 我不知道这种方法是否可行。

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

    HK、

    很高兴再次听到您的声音、我希望您的系统进展顺利。

    您在#2中的方法对我而言似乎是合理的。  

    我不清楚 TI 方面是否需要采取进一步的行动、CRC 生成是否仍存在需要解决的问题?  请告诉我。

    最棒的

    Matthew

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

    Matthew

    我需要 TI 在以下项目上提供进一步帮助。

    如何从0x08000到0x08FE 获取 CRC32黄金值? 我找不到方法来获取它。我尝试使用 hex2000将.out 文件转换为 Intel 格式的十六进制文件、并编写脚本自行计算 CRC32。但是 hex 的内容似乎与 CCS 内存浏览器不匹配、例如 0x008000的内容是004A BAFE 在存储器浏览器中、但在十六进制文件中找不到任何文件。

    2. 在#2b 中更新 crc_goldenValue 后,固件的 CRC 值将影响或不影响。 如果为真,如何将其存储到 CRC_STORAGE 中?

    3.是否有必要在读取闪存期间禁用中断?

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

    您好、HK、

    快速问题:为什么要将 RAM (0x08000至0x08FE)包含在 CRC 计算中?  要加载到闪存中的最终映像不应具有映射到 RAM 的任何已初始化段。  如果未将任何已初始化的段映射到 RAM、则可以忽略在使用 CCS 闪存插件或 Uniflash 将应用程序映像加载到闪存后在存储器窗口中看到的 RAM 内容。  它可能是闪存工具代码的残留项。   请注意:CCS 闪存插件仅计算闪存的16位校验和、而不计算 RAM 的16位校验和。

    关于您之前有关闪存插件的问题 CRC:闪存插件使用16位 CRC (许多客户要求这样做、因此在过去15年中、我们的所有器件都在 CCS 中选择了这种方法)。  插件不支持32位 CRC。  此外、请注意、闪存插件读取整个闪存空间以计算和显示校验和。  这似乎不是问题、因为您提到过要实现自己的 CRC 计算方法。   

    2. 您可能需要将 CRC 与主映像分开。  对应用程序映像进行编程。  然后分别对 CRC 值进行编程。  这样、它不会影响您的应用程序映像。  是否在运行时更新映像? 还是仅在生产阶段?

    3.在闪存读取期间无需禁用中断。   

    请注意:我不在办公室。 我将于7月28日回到办公室。

    谢谢、此致、
    Vamsi

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

    Vamsi

    1 a)排印错误。 对于应用、它应该为0x080000至0x08FDF、而对于用户使用、它应该为0x08FE0至0x08FFF0反向。

        b)是的、我计划编写一个程序。 但是、我无法找到将.out 转换为可读格式十六进制的方法。 我是

            使用 hex2000将.out 文件转换为 hex。 正如我提到的、内容与存储器中显示的内容不匹配

            浏览器。 请进一步说明如何转换 Intel 十六进制格式、以便我可以使用该文件计算 CRC 黄金值

           我自己。

    #2仅在生产时、运行时无图像(下一个版本需要在运行时更新图像)。 我可以单独写入 CRC 黄金值。 请提前说明操作方法。 我们将 Uniflash 用于生产。

    BR

    HK Woo

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

    您好、HK、

    关于您提到的地址范围:我相信还有更多的拼写错误。 但只要地址范围来自闪存、这是可以的。

    关于输出格式: 也许您可以尝试为 hex2000提供的--binary 选项。  十六进制格式将包含标头和其他信息。  二进制代码可能更适合您。  请尝试一下。  请注意、二进制输出不会用0xFFFF 填充孔洞、而是合并多个段。  对于您的校验和、由于您不需要该地址、因此它应该适合您。   

    关于生产与运行时:由于这只是生产时间、因此您可以按照我之前的建议分离主映像。

    在 Uniflash 中、可以通过在 GUI 中提供地址来加载二进制文件。  请参见下面的。

    单击下面的浏览按钮。   

    选择一个二进制文件、您可以在十六进制编辑器中查看/编辑该文件。  checksum_value.txt 下方是一个示例二进制文件、其中我选择了一个值。  选择您自己的文件并选择下面显示的 Binary 选项。

    选择后、将允许您输入如下所示的地址。  您可以输入地址(在此示例中、我输入了闪存地址0x80000)并继续加载映像。  请注意、该地址应该是128位对齐。

    针对您的方案需要注意的其他事项:  在加载校验和时使用"Program Only"选项。 这是为了避免擦除之前编程的应用程序映像。

    如果要使用 CLI 而不是 GUI、可以使用如下所示的命令:

    >dslite -c TargetConfigurationFIle.ccxml -e -s FlashDownloadSetting="Program Only" BinaryFileName.txt,  Address-in -hex

    谢谢、此致、

    Vamsi

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

    你(们)好,Vamsi

    关于闪存范围、您能向我展示一下我遇到了什么问题吗?

    1.能否向我展示 hex2000生成二进制文件的语法。 我使用了"hex2000 -b 且.b00的内容不可读。

    2.如果要将值存储在地址0x08FFE0、checksum_value.txt 的格式是什么?

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

    洪启、您好!

    您可以选择地址0x08FDF 和0x08FE0 -这些不是闪存地址。

    第一。 我将请我们的编译器团队在这方面为您提供帮助。

    2。 请参阅下面的内容。   我使用 Notepad++进行编辑(我使用十六进制插件)。

    谢谢、此致、
    Vamsi

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

    你(们)好,Vamsi

    第一。 我还需要知道 CCS CRC16多项式值。

    谢谢 s

    hk

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

    您好、HK、

    您是指 CCS 闪存插件中使用的 CRC 算法吗?  如果是、请向我发送友谊请求(将鼠标悬停在我的姓名上并单击"请求友谊")。  我可以在私人聊天中共享算法。

    谢谢、此致、

    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="46959" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018439/tms320f280025-firmware-checksum/3775739 #3775739"]1. 能否向我展示 hex2000生成二进制文件的语法。

    我相信 CCS 项目被用来组织和构建这个程序。  在这种情况下、使用 调用 名为 tiobj2bin 的实用程序的编译后步骤。  比直接使用 hex2000更好。

    [引用 userid="46959" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018439/tms320f280025-firmware-checksum/3775739 #3775739"].b00的内容不可读

    由于它是二进制文件、因此您无法使用典型的文本编辑器来查看它。  请参阅文章 二进制文件简介。  最后、它显示了一种查看二进制文件的方法。  尝试与该方法类似的方法。

    谢谢、此致、

    乔治

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

    Geroge

    1.找不到实用程序 tiobjbin

    2.我使用 hex2000.exe 创建了 arrary 文件和语法"hex2000 -a -romwidth=16 .out"。 文件 ican 可由普通查看器查看。 我编写了我们自己的脚本、根据计算 CRC16值 A00。 但是、它与 CCS 中的 CRC16值不匹配、因此我不确定的内容 A00是正确还是不正确。 请提前说明如何解决此问题,例如 CCS 如何计算 CRC16....

    BR

    HK Woo

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

    您好、HK、

    2) 2) CCS 读取整个闪存、包括用于校验和计算的空洞(擦除位置)。 对于您的自定义函数、您是否考虑了这一点?

    谢谢、此致、

    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="46959" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018439/tms320f280025-firmware-checksum/3781824 #3781824"]我找不到实用程序 tiobjbin[/quot]

    我怀疑您没有意识  到、在我之前的帖子中、这个帖子构建步骤是一个链接。  请单击该链接。  本文详细介绍了如何在 CCS 工程中调用 tiobj2bin 作为编译后处理步骤。  在这些详细信息中、它给出了脚本的位置  

     \ccs\utils\tiobj2bin 可在 CCS 安装中找到

    谢谢、此致、

    乔治

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

    Vamsi

    这就是我遇到的问题。 我不知道 hex2000 -a romwidth=16的内容是否正确。 应该有一个方法来检查它、它是否与 CCS 匹配。 我假设上面的命令会生成整个闪存。 它应与 CCS 相同。

    我认为很多 TI 客户也应该有同样的问题。 请帮助我提供解决方案。 我的项目正在运行。

    BR

    HK Woo

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

    乔治

    如果我使用二进制格式、hex2000和 tiobj2bin 之间有何区别?

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

    香港宇人会

    如果要在映像中包含孔洞(0xFFFF)以使其与 CCS 校验和匹配、则需要使用链接器 cmd 文件中的填充选项使用0xFFFF 填充孔洞。

    查看 表12-1。  https://www.ti.com/lit/pdf/spru513中的基本十六进制转换实用程序选项。 它具有填充选项。

    谢谢、此致、
    Vamsi

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

    TI 团队

    我正在桌旁玩耍。 请提供 TI 解决方案、以帮助我实现请求。 请告诉我、我的请求是否明确。 如果没有、请告诉我。

    BR

    HK Woo

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

    HK、

    由此给您带来的不便、我们深表歉意。  如前所述、CCS 闪存插件使用16位校验和。  闪存插件不使用32位校验和-许多客户要求使用16位校验和、因此在过去15年中、所有客户都使用了该校验和。  在此基础上、您提到您将开发自己的校验和发生器。   

    在该过程中、您说校验和与 CCS 闪存插件的校验和不匹配。  因此,我建议使用填充选项。 这是否有助于将校验和与 CCS 的校验和匹配?  请告诉我。

    您可以使用填充选项、如下所示:

    存储器

    /*闪存扇区*/
    FLASH0:origin = 0x080002、length = 0x001FFE、fill = 0xFFFF //片上闪存*
    FLASH1:origin = 0x082000、length = 0x002000、fill = 0xFFFF //片上闪存*/

    以下快照取自 《TMS320C28x 汇编语言工具指南 》https://www.ti.com/lit/pdf/spru513 

    注意:我没有收到您的友好请求、要求分享校验和算法。

    谢谢、此致、

    Vamsi

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

    Vamsi

    感谢您的回复。 目前、我在一个月内遇到校验和问题。

    1.我可以在项目中使用 CRC16

    2.我需要使用 任何工具(例如 hex2000和 tiobjbin)确保.out 文件中转换的文件的校验和正确。 如何进行澄清? 我需要了解 CCS CRC16算法、然后编写我们自己的脚本、以检查内容是否与 CCS 匹配。

    3.确认项目2后、需要修改链接文件以保留闪存以存储 CRC16黄金值。 例如、闪存0x80000至0x8FFDF 用于应用程序代码、而为 CRC16黄金值保留0x8FFE0至0x8FFF0。 对于 thisapproach、我有一个问题、hex2000 -a -romwidth 16 .out 生成整个闪存范围0x80000至0x8FFF0的所有数据。

    如果我没有清楚地解释我的请求、请告诉我

    BR

    HK Woo

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

    Vamsi

    我在2次测试中尝试了您的建议。

    测试1. -.add 标志--fill_value= CCS 中 C2000链接器中的0xFFFFFFFF、如下所示

                           -。 使用 .out 生成数组格式的文件、hex2000 -a -romwidth=16 f28000x_test_application.out  

                           -。 查看转换后的文件1.A00的内容

    结果        :空穴未填充0xFFFFFFFF

    测试2.  -。 保持标志--fill=0xFFFFFFFF

                      -更改链接文件".text           :>> FLASH_BANK0_SEC2 | FLASH_BANK0_SEC3 | FLASH_BANK0_SEC4、ALIGN (8)、fill=0xFFF"的内容。

                           -。 使用 .out 生成数组格式的文件、hex2000 -a -romwidth=16 f28000x_test_application.out  

                           -。 查看转换后的文件1.A00的内容

    结果       :空穴未填充0xFFFFFFFF

    请允许我执行正确的程序。

    我尝试连接 f28000x_test_application.a00和.out 以供您参考、但未成功。 或者、您可以在空穴填充0xFFFFFFFF 时共享转换后的数组格式文件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="46959" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018439/tms320f280025-firmware-checksum/3783437 #3783437"]如果使用二进制格式,hex2000和 tiobj2bin 之间有何区别?[/quot]

    如果使用 默认形式的 hex2000 -b、则不会获得通常被视为有用的二进制文件的内容。  内存中的任何间隙都将被忽略。  要获得该行为、您必须使用图像模式、即 hex2000 -b -image。  但映像模式还需要 ROMS 指令来描述系统中存储器的布局。  tiobj2bin 会检查输入.out 文件、确定使用的存储器范围、然后自动生成包含映像模式所需 ROMS 指令的临时文本命令文件。  然后调用 hex2000来创建二进制文件。

    谢谢、此致、

    乔治

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

    香港宇人会

    我们是否可以参加 WebEx 会议来进一步讨论这一问题?  这将帮助您更快地找到解决方案。   

    1) 1)填充选项有效-您是否对输出文件使用 COFF 格式或 EABI 格式?  您可能有两个来自十六进制工具的输出文件?  请检查。    

    2) 2)您能否尝试添加-memwidth=16和-romwidth=16?

    3) 3)您能否共享链接器 cmd 文件?

    谢谢、此致、

    Vamsi

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

    你(们)好,Vamsi

    最好召开 WebEx 会议。 请告诉我这次会议的日程安排。

    有关文件共享的内容。 我尝试在帖子中附加链接文件、但未成功。 请告诉我如何与您分享。

    BR

    HK Woo

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

    香港宇人会

    当然、我会安排一个呼叫-我也会尝试包括一个编译器团队成员。

    您的时区是什么? 您是否在香港?  

    关于文件上传:单击回复窗格底部的"插入"按钮。  然后单击"图像/视频/文件"并上传链接器 cmd 文件(将扩展名重命名为.txt)。   

    谢谢、此致、
    Vamsi

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

    e2e.ti.com/.../28002x_5F00_generic_5F00_flash_5F00_lnk.txtVamsi

    1.是的,我是以香港为基地

    2.请查找所附文件以供参考。 目前、我仍然不会 从 CRC 黄金值中保留闪存中的任何空间。

    BR

    HK Woo

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

    香港宇人会

    1) 1)好的、我将通过私人聊天向您发送 WebEx 邀请。   

    2) 2)我看到您没有在链接器 cmd 中使用页面。  因此、您应该只有一个输出。  我看不到您在链接器 cmd 文件中使用了填充选项。 您是否连接了正确的一个?  

    谢谢、此致、

    Vamsi

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

    Vamsi

    1号被接受

    2、让我们在会议期间回顾一下。 对于此函数的链接文件修改、我没有太多经验。 这就是为什么需要 TI 帮助我实现这一目标的原因。

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

    香港宇人会

    2。 明白了。 我们可以在会议中讨论它。

    谢谢、此致、
    Vamsi

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

    Vamsi

    我收到了有关 WebEx 日程表的邮件。 我对您的建议表示满意、但我找不到链接。

    hk

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

    香港宇人会

    我与团队交谈、他们在星期三而不是星期二有空。  我将于星期一向您发送邀请函。    

    谢谢、此致、

    Vamsi

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

    香港宇人会

    以下是与您的团队会面的总结:

    1) 1)您已确认您不想再将构建时间校验和与闪存插件校验和匹配。  

    2) 2)您提到过要将构建时间校验和与运行时校验和匹配。

    3) 3)对于构建时间、您可以使用 第8.9节链接器生成的 CRC 表和 https://www.ti.com/lit/pdf/spru513中存储器范围内的 CRC中介绍的基于链接器的校验和生成器。

    此外、请查看应用手册 https://www.ti.com/lit/spracr3中的第4节 VCU CRC 

    4) 4)以下是用于生成校验和的链接器 cmd 的示例: 以下是链接器 cmd 文件的路径: C:\ti\c2000Ware_3_04_00_00\device_support\f2838x\con\cmand\cm2838x_flash_lnk_crc_cpu1.cmd

    5) 5)关于硬件 CRC 引擎的问题、您可以在运行时使用该问题来生成校验和并将其与链接器生成的校验和相匹配:我可以在我们的 CRC 专家中为您回路。  您能否打开一个新帖子、以便我将其分配给 CRC 专家?  由于此处讨论的 Uniflash 问题已关闭、因此很容易在新帖子上跟踪您的下一组问题。

    谢谢、此致、
    Vamsi  

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

    香港宇人会

    我现在与我们的 CRC 专家谈了话。  他们还更喜欢新帖子-请打开新帖子并提供链接-我将在上面的第5个问题上为您分配 CRC 专家来帮助您。

    谢谢、此致、
    Vamsi