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.

[参考译文] CC3235MODASF:如何使用内部存储器

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1022014/cc3235modasf-how-to-use-the-internal-memory

器件型号:CC3235MODASF
主题中讨论的其他器件:CC3235MODSFCC3235MODSUNIFLASH

各位专家、您好!

我的客户正在考虑使用 CC3235MODS 和 CC3235MODSF 来避免电源端风险。

问题1:以下关于如何在两个器件中使用内置闪存的描述是否正确?
CC3235MODS・・・将应用程序映像存储在4Mbyte sFlash 中。 提取到 SRAM、然后执行映像。
CC3235MODSF・・・将应用程序映像存储在4 MB sFlash 中、将其复制到1 MB XIP 闪存中、然后执行映像。 或者、提取到 SRAM、然后 执行映像。

Q2:我是否可以使用相同的方法来写入这两个应用程序映像?
我是否正确地理解了我们可以通过 Uniflash 以相同的方式写入这两个文件中的 sFlash?
 
问题3:在与外部通信时、是否可以识别这两种类型的器件?
ROM 中似乎没有器件描述符(TLV)区域。

Q4:如果 SPI 闪存在外部使用、是否正确识别 SPI 闪存未分配到存储器映射?

我们对 CC32xxMOD 产品缺乏经验、因此我们非常感谢您的帮助。

此致、
还不错

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

    您好!

    您的问题答案:

    问题1:

    CC3235MODS ... 正确

    CC3235MODSF... ROM 引导加载程序将内容从 SPI 闪存复制到 XIP 闪存中。 有一些方法可以从 RAM 中执行代码、但这只会浪费资源。

    问题2:

    是的、正确。 S 和 SF 器件的开发工作流程相同。

    问题3:

    可能有一些方法可以确定 S 和 SF 器件之间的关系。 但从应用的角度来看、这并不重要。

    问题4:

    是的。 SPI 闪存(内部 sFlash)不属于 MCU 地址空间。 用户文件的访问仅通过 SL_文件系统 API 进行。 不支持从应用 MCU 直接访问。

    1月

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

    您好!

    感谢您的快速回答。 我理解您所说的大部分内容。

    [引用 userid="231451" URL"~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1022014/cc3235modasf-how-to-use-the-internal-memory/3777237 #3777237"]

    问题3:

    可能有一些方法可以确定 S 和 SF 器件之间的关系。 但从应用的角度来看、这并不重要。

    [/报价]

    至于器件、由于没有用于确定型号的函数或数据、这是否意味着我需要在应用程序映像中执行某些操作? (假设产品结构无法检查标记。)

    此致、
    还不错

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

    您好!

    为什么需要确定器件类型? 您是否需要将其用于生产(制造)目的或其他用途?

    如果您希望从 XIP 闪存或 RAM 执行代码、则需要使用不同的地址链接代码。 为从 XIP 闪存执行而链接的代码、无法从 RAM 和反向运行。 因此、准备两个 Uniflash 映像是有道理的。 一个用于从 RAM 执行、另一个用于执行 XIP 闪存。 您可以创建将从 RAM 执行的映像。 此映像适用于 S 和 SF 器件。 但在 SF 器件中、您将失去 SF 的最大优势(通过允许创建更大代码的 XIP 执行)。

    1月

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

    检查以下代码以识别设备类型。

    它在我们的 OTA 示例中使用、我们在示例中检查 MCU 映像名称是否适合器件(sys/mcuimg.bin 或 sys/mcuflashimg.bin)

        int rc;
        SlDeviceVersion_t ver;
        uint8_t configOpt = SL_DEVICE_GENERAL_VERSION;
        uint16_t len = sizeof(SlDeviceVersion_t);
    
        rc = sl_DeviceGet(SL_DEVICE_GENERAL,&configOpt,&len,(uint8_t *)(&ver));
        if(rc == 0)
        {
            localDevType = ver.ChipId & 0xFF;
            /* Update deviceType to 323XX or 3220X */
            if((HWREG(GPRCM_BASE + GPRCM_O_GPRCM_DIEID_READ_REG4) >> 24) & 0x02)
            {
                localDevType |= (0x01 << 8); // This marks CC323x
            }
        }
        
        #define IS_FLASH_DEVICE()       (localDevType & 0x001) /* Identify SF device */
        #define IS_CC323X_DEVICE()      (localDevType & 0x100) /* Identify R3 device */