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.

[参考译文] TMS320F28069:将两个.out 文件/映像组合在一起并从密码锁定的 MCU 读回

Guru**** 2578945 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1015434/tms320f28069-combine-two-out-files-images-and-read-back-from-password-locked-mcu

器件型号:TMS320F28069
主题中讨论的其他器件:UNIFLASH
尊敬的专家:
我正在处理两个.out 文件(引导加载程序和应用程序映像)的组合。 根据论坛上过去的相关讨论,我尝试使用 hex2000方法。 (e2e.ti.com/.../combining-out-files)
但是、我遇到了"存储器范围不符合顺序"的错误。 我已经检查了.map 文件并确保闪存 A~H 中没有重叠 只有 ROM 在 CSM 部件和复位等部分上重叠、但我在应用程序映像上使用了 DSECT 类型。
  1. 是否有关于多个.out 组合的段分配的指南? 与闪存 A~H 一样、不得重叠、也不得包括 RAM 在内的所有内容。 我知道 processors.wiki.ti.com 现已停产、是否有其他来源可以找到有关该主题的说明?
我还尝试了其他方法、即从加载了引导映像和应用映像的 MCU 进行回读、并将数据导出到整个闪存 A~H 上 对于未锁定版本、它工作正常。 我可以将导出的.out 加载回 MCU、程序可以正常运行。 对于锁定版本、我已使用 CCS 和密码成功回读整个闪存 A~H。 当我将导出的.out 加载到 MCU 时、程序可以正常运行。 但是、我无法使用密码回读闪存。
  1. 我想确认第二种方法是否可以用作合并图像的替代方法。 此外、要在 MCU 上读取整个数据和进行编程、我只需读取闪存 A~H (起始地址:0x3D 8000、大小:0x1 FFFF)、对吧?
  2. 第二种方法是否有可能错误地加载密码? 我在 F2806x_CSMPassword.asm 中设置密码。
我希望我的问题描述清晰明了、并希望在这里从 TI 专家处获得一些反馈。
谢谢、此致、
Luiz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="463263" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1015434/tms320f28069-combine-two-out-files-images-and-read-back-from-password-locked-mcu "]
    我还尝试了其他方法、即从加载了引导映像和应用映像的 MCU 进行回读、并将数据导出到整个闪存 A~H 上 对于未锁定版本、它工作正常。 我可以将导出的.out 加载回 MCU、程序可以正常运行。 对于锁定版本、我已使用 CCS 和密码成功回读整个闪存 A~H。 当我将导出的.out 加载到 MCU 时、程序可以正常运行。 但是、我无法使用密码回读闪存。
    1. 我想确认第二种方法是否可以用作合并图像的替代方法。 此外、要在 MCU 上读取整个数据和进行编程、我只需读取闪存 A~H (起始地址:0x3D 8000、大小:0x1 FFFF)、对吧?
    2. 第二种方法是否有可能错误地加载密码? 我在 F2806x_CSMPassword.asm 中设置密码。
    [/报价]

    我想我犯了一个错误、应该从 起始地址0x3D 8000读取闪存、大小为0x2 0000。 由于大小不正确、我 在加载过程中省略了位于0x003F 7FFF 的 PWL7。 因此、PWL7设置为0xFFFF。
    校正闪存大小后、我可以使用密码读取闪存而不会出现问题。

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

    Luiz、

    请注意、今天7月5日是美国假日。  您应在7月6日当天结束前收到回复。  感谢您的耐心。

    最棒的

    Matthew  

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

    Luiz、

    很抱歉、我需要另外一天的时间才能得到正确的回复。  只是不想让您根据我的最后一条消息挂机。

    最棒的
    Matthew

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

    您好、Matthew、

    感谢您的回答。 我解决了问题2和3、但问题1仍处于打开状态。
    我知道 https://www.ti.com/lit/ug/spru513p/spru513p.pdf 上的汇编语言工具用户指南
    但我想进一步了解 有关多.out 组合段分配的通用指南。

    我在下面附上了引导加载程序和应用程序映射文件、供您参考、以检查我的段分配是否违反了任何常见准则。

    此致、

    Luiz

    e2e.ti.com/.../combine.zip

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

    Luiz、

    我不确定您在 这里提到的 E2E 文章的链接是否指向 、但我想在这里发布、以防这有所帮助。  它也引用了 wiki 文章、但最后还提供了一些额外的步骤来创建 COFF

    就您所附的文件而言、我看到有重叠的段、但我假设这些段包含共享函数。  具体而言、Lx RAM 似乎在两个.map 文件中都使用。  

    我认为映射文件不会显示这一点、但我想在您已将其定义为 NoLoad 的重叠段的.outs 中、因为其他代码会加载它吗?  如果数据相同、则无关紧要、但这可能是导致您出现问题的原因。

    我已经使用您的方法#2来实现这一点、因为 CCS 允许您以.coff 格式保存存储器内容、因此同意您在此处提到的所有内容。

    最棒的

    Matthew

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

    您好、Matthew、
    感谢您的快速响应。  

    上面的 E2E 链接看起来非常系统。 我将尝试使用我的文件执行这些步骤。


    因此、除了闪存 A~B 的段外、LX RAM 段必须分开、不能重叠? 我不知道这一点、因为我假设 RAM 函数将存储在闪存中、并且只有闪存段加载到 DSP。 在这种情况下、我将详细了解 LX RAM 分配、以确保不会出现重叠。

    CSM 密码等 ROM 段的情况如何? 我已将其中一个指定为 DSECT 类型。

    是的、方法2运行良好、我可以使用 Uniflash 毫无问题地加载它们。 但是、我无法 通过使用 Codeskin 的 C2Prog 来加载组合的 COFF。 我计划使用他们的其他代码安全功能。 我不确定您是否知道他们的产品(C2Prog)、我可能需要联系他们。

    此致、
    Luiz

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

    Luiz、

    我想、在某些部分中、我们知道它们是相同的、比如 ROM、或者可以在两个项目中定义它们的密码。  我将了解我们是否可以参考更多示例、以帮助您更清楚地了解这一点  

    最棒的

    Matthew

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

    您好、Matthew、
    同意 ROM 和密码定义。
    更多 示例会有所帮助。

    谢谢、
    Luiz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="463263" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1015434/tms320f28069-combine-two-out-files-images-and-read-back-from-password-locked-mcu/3757266 #3757266"]我 无法使用 Codeskin 的 C2Prog 加载组合的 COFF

    为了向其他人阐明、C2Prog 在其手册中声明、它需要具有指定 memwidth 和 romwidth 的十六进制文件。 因此、在 C2Prog 中使用 COFF 文件之前、需要将其转换为十六进制文件。

    谢谢、

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

    Luiz、

    感谢后续行动、为了澄清您的问题、除了尝试获取有关此方法的更多示例之外、这是否解决了?

    最棒的

    Matthew

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

    Matthew、
    是的。 我将标记要解析的线程。

    谢谢、
    Luiz