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.

[参考译文] CC2652P:在 cc2652P 中打开闪存失败。

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1030110/cc2652p-flash-open-failed-in-cc2652p

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

您好!

我正在将 MX25R8035FM2IH0闪存用于带有 ZR SW OTA 客户端的 cc2652P 模块。 我使用的是 SDK 5.10。 我正在执行以下步骤。

1.使用闪存编程器2/uniflash 擦除器件。

对从 CCS 编译的 bim_offchip_hex 文件进行编程。

之后 LED 将亮起。

4.对从 CCS 编译的 ZR SW OTA 客户端十六进制文件进行编程。

5.代码开始工作。

6.然后我只需重置器件、代码就会停止工作、只有 Bim 工作。

如果我调试了更多内容,我发现以下问题。

静态 bool extFlashReadInfo (空)

内转台;
const uint8_t wbuf[]={BLS_CODE_MDID、0xFF、0xFF、0x00};
extFlashSelect();


RET = bspSpiWrite (wbuf、sizeof (wbuf));.................................................................................................. //此处代码失败。
IF (RET)

extFlashDeselect ();.................................. //它在这里  
返回(false);

RET = bspSpiRead (infoBuf、sizeof (infoBuf));.................................. //用0值填充 infobuf。
extFlashDeselect ();

返回(RET = 0);

静态 bextool FlashVerifyPart (空)

if (!extFlashReadInfo())(如果!extFlashReadInfo())

返回(false);

pFlashInfo = flashInfo;
while (pFlashInfo->deviceSize >0)

if (infoBuf[0]=pFlashInfo->manfId & infoBuf[1]=pFlashInfo->DevID)  .////////////////////////////// 在此失败,infobuf 的 beacuse 只包含0。

中断;

pFlashInfo++;

return (pFlashInfo->devicesize >0);
//返回(0);

请指导我解决此问题。 另请说明以下突出显示的部件。

int bspSpiWrite (const uint8_t * buf、size_t len)

while (len >0)

uint32_t ul;

SSIDataPut (BLS_SPI_base、* buf);
ROM_SSIDataGet (BLS_SPI_base、&ul);
len-;
buf++;

返回(0);

请提供指导。

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

    您好、Chintamani、

    请确保已将出厂映像编程到外部闪存器  件中、《Z-Stack 用户指南》的"构建和下载目标应用"部分对此进行了介绍。

    此致、
    Ryan

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

    您好、Ryan、

    我已经执行了该文档中提到的所有步骤。 也可以使用 CCS 调试按照以下顺序进行操作。 但在复位后、主程序不会启动。

    刷写 OTA 客户端序列

    要使用 OTA 客户端功能、必须将 BIM 加载到器件中。 建议在加载任何应用之前、在器件上执行存储器擦除操作、以避免之前的配置或 NV 使用会影响器件。

    1. 擦除完成闪存
    2. 闪存 BIM (使用 .hex 文件)
    3. Flash 客户端 OTA 应用程序(使用 *_oad.bin 、不覆盖 BIM)
    4. 执行任何升级操作

    另请提供指南、请说明 地址   *_oad.bin will flash? is that 0xA8?

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

    您能否确认是否已将出厂映像(最好是启动 BLE Project Zero)编程到外部闪存器件上?  请使用 UNIFLASH 对 BIM 十六进制文件和应用二进制映像进行编程。  0x00至0xA8为 OAD 报头保留、闪存区域的其余部分用于应用、堆栈、NV 存储器和 CCFG。  您可以查看 OAD 映像工具 以了解十六进制到二进制转换和命令链接器(.cmd)以及输出.map 文件、以查看闪存布局。

    此致、
    Ryan

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

    您好、Ryan、

    我完成了所有这些操作,但 OTA 在这里失败 (((zclota_permit == false)||
    (* otaClient_ImageUpgradeStatus!= ota_status_normal)

    我正在获取 zclota_permit =false。 该标志 不会在任何地方设置为 true。 请指导问题的位置。

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

    您能否从  应用程序中删除 zclota_permit 条件或使用 zclota_PermitOta (true)来确定这是如何更改行为的?

    此致、
    Ryan