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.

[参考译文] CC3220MODA:CAN#39;t 使 MCU 映像正常工作

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

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/922187/cc3220moda-can-t-get-mcu-image-to-work

器件型号:CC3220MODA
主题中讨论的其他器件:UNIFLASH

我无法在我的定制 CC3220MODAS 板上使用我的 MCU 映像。  我发现我的安全证书出了问题、但我无法解决。  我使用 CC31XX/CC32XX 器件类型在 UniFlash 中对其进行全部设置、转到"刻录"、"创建映像"、然后单击"保存 HEX "。  然后、我使用 SPI 编程器将其编程到我的板上、但它不运行。  不过、我可以通过 JTAG 从 CC Studio 加载/调试、因此似乎正在正确闪烁并将器件置于开发模式。

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

    您好!

    请确保您已正确插入模块的 MAC 地址。 在开发模式下、Uniflash 生成的映像与确切的 MAC 地址绑定。 当 Uniflash 用于编程时、会自动插入 MAC 地址。 如果要为 Gang 编程生成二进制(或十六进制)文件、则需要首先通过 Uniflash 进行连接以获取 MAC 地址(也可以手动插入 MAC 地址)。

    使用在开发模式下生成的映像进行 Gang 编程不太实用。 因为您需要在生成映像之前插入 MAC 地址。 Gang 编程更适合在生产模式下使用。

    您可以执行以下步骤:

    • 在 Uniflash 中、以简单模式插入 MCU img (Uniflash 将自动插入运动场证书;您现在没有正确选择证书文件名)
    • 在高级模式下、手动插入"原始 MAC 地址"或连接到器件以自动填充 MAC 地址
    • 按下按钮刻录和创建图像
    • 保存 hex 文件

    在简单模式下插入 MCU img 后、您可以检查 MCU 映像的属性、现在您将看到您设置的错误。

    1月

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

    MAC 正确、当我将其设置为开发模式时、JTAG 在闪存后工作正常。 我在开发和生产两种模式下都尝试过、但两种模式都不起作用。

    我知道用于开发的 Gang 编程并不是最高效的、但如果现在不起作用、它不仅会在以后进行磁力处理、因此我需要开始工作。

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

    您是否能够使用 Uniflash 进行编程?

    BR、

    Kobi

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

    该板未设置为进行 UniFlash 编程、未连接 UART 和 SOP 线。 SOP 线在内部右下拉为低电平?

    我可以使用 Gang 编程器刷写 OOB 示例、并且它运行、因此在正确设置映像时一定是我做错的事情? 除非我缺少一些初始化代码、但我认为它甚至不会通过 CC Studio 中的 JTAG 运行。

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

    您好!

    您是否从 CA 购买了代码签名证书? 如果不是、您的生产模式将无法工作。 如果您的硬件未设计为 Uniflash 连接(您是否从 CCS 代码中读取 MAC 地址)、您如何知道自己为开发模式选择了正确的 MAC 地址? 您是否能够像我在上面所述的那样以简单模式创建图像?

    1月

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

    我在开发模式下使用证书集合。 我知道 MAC 是正确的、因为我可以在 OOB 示例运行时看到它、并且因为 JTAG 工作。 我尝试过简单和高级模式、结果相同。

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

    您好!

    >我可以使用 Gang 编程器刷写 OOB 示例、然后运行、这样做一定会导致我错误地使映像正确? 除非我缺少一些初始化代码、但我认为它甚至不会通过 CC Studio 中的 JTAG 运行。

    否 您可以拥有链接代码、这些链接代码可以在 CCS 中与 JTAG 配合使用、但在 ROM 引导加载程序加载时不能配合使用。 例如、当应用程序的入口点错误时。

    您能否更好地描述您可以对 OOB 示例执行哪些确切步骤? 您可以创建新的 Uniflash 项目、并将您从 CCS 编译生成的 bin 文件插入到该项目中?

    1月

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

    此时我离我的计算机较远、但如果我回忆正确、我刚刚在 UniFlash 中打开了 OOB 示例、将图像输出到.hex、并将其刷写。 我尚未尝试将自己的.bin 插入 OOB UniFlash 项目。 稍后我会再回来尝试一下。

    从何处可以看到入口点以及如何知道正确的内容?

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

    您好!

    这是链接器文件(.cmd)文件的一部分。 但是、如果您使用 SDK 示例中的链接器文件、这应该是可以的。

    1月

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

    我尝试用自己的替换 OOB UniFlash 项目中的 MCU 映像、对其进行了刷写、但它没有运行。 我正在使用 SDK 示例中的链接器文件(如果重要、则使用 NORTOS 触发模式)。 我是否需要在 CC Studio 中更改某些构建选项?  它主要是一个 C++项目、int main 位于.c 源文件中、并在 C++源文件中调用一个"extern "C"函数。  这是否会导致问题?

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

    您好!

    是的、我认为问题的原因可能是您的 bin 文件链接不正确。 如果您的代码是 C++和 C 代码的组合、这可能会导致一些问题。 但我无法指出确切的问题。

    要确保您使用 Uniflash 的工作流程正确、请尝试以下步骤:

    1. 从 SDK 导入到 CCS 工作区中的开箱即用示例。
    2. 构建此项目并生成*。bin 文件。
    3. 在开发模式下创建新的 Uniflash 项目。
    4. 在简单模式下、插入由 CCS OOB 示例生成的最新服务包和二进制文件。
    5. 在高级模式下、插入正确的 MAC 地址。
    6. 保存 Uniflash 项目、创建映像并导出十六进制文件以进行 Gang 编程。
    7. 通过 Gang 编程器(通过 SPI 闪存编程器)对您的 MOD 进行编程。
    8. 在 ROM 引导加载程序从 sFlash 正确加载代码的情况下、检查您的代码是否正确执行。
    9. 将同一 Uniflash 项目中的 bin 文件交换到代码中生成的 bin 文件。
    10. 由 Gang 编程器进行编程并测试代码的执行情况。

    请告诉我结果。

    1月

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

    [引用 user="Jan D]

    您好!

    是的、我认为问题的原因可能是您的 bin 文件链接不正确。 如果您的代码是 C++和 C 代码的组合、这可能会导致一些问题。 但我无法指出确切的问题。

    要确保您使用 Uniflash 的工作流程 正确、请尝试以下步骤:

    1. 从 SDK 导入到 CCS 工作区中的开箱即用示例。
    2. 构建此项目并生成*。bin 文件。
    3. 开发模式下创建新的 Uniflash 项目。
    4. 在简单模式下、插入由 CCS OOB 示例生成的最新服务包和二进制文件。
    5. 在高级模式下、插入正确的 MAC 地址。
    6. 保存 Uniflash 项目、创建映像并导出十六进制文件以进行 Gang 编程。
    7. 通过 Gang 编程器(通过 SPI 闪存编程器)对您的 MOD 进行编程。
    8. 在 ROM 引导加载程序从 sFlash 正确加载代码的情况下、检查您的代码是否正确执行。
    9. 将同一 Uniflash 项目中的 bin 文件交换到代码中生成的 bin 文件。
    10. 由 Gang 编程器进行编程并测试代码的执行情况。

    请告诉我结果。

    1月

    [/报价]

    很抱歉耽误你的时间,昨天我去了。  我完全按照这些方向操作、它运行。

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

    您好!

    什么工作正常? OOB 二进制文件还是您自己的二进制文件?

    1月

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

    抱歉、OOB 二进制文件可以正常工作、它必须是我的链接问题。

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

    我将此问题追溯到全局 C++对象。 他们的构造函数在 main 被输入之前被调用、这显然导致了一切中断。  我重新考虑了我的消除全球目标的方案,它似乎正在运作。