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.

[参考译文] CC3220S-LAUNCHXL:恢复出厂设置不起作用

Guru**** 2577385 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/749812/cc3220s-launchxl-factory-reset-not-working

器件型号:CC3220S-LAUNCHXL

您好!

我正在尝试使用 BTN 中断触发 BTTask()中的出厂复位,如下所示。 但是、我遇到了错误。 如何使其正常工作?

void *BTNTask (void *arg0)
{
SEM_INIT (doReset、0、0);

/*调用驱动程序初始化函数*/
//GPIO_init();

/*配置 LED 和按钮引脚*/
GPIO_setConfig (Board_GPIO_LED0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
GPIO_setConfig (Board_GPIO_Button1、GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_INT_RISING);

/*打开用户 LED */
GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON);

/*安装按钮回调*/
GPIO_setCallback (Board_GPIO_Button1、gpioButtonFxn0);

/*启用中断*/
GPIO_enableInt (Board_GPIO_Button1);

//while (1){
SEM_WAIT (doReset);
Display_printf (display、0、0、"\n\n 立即重置 Gonna!!!\n\n");

int32_t 模式;
_i32 slRetVal;
SlfsRetToFactoryCommand_t RetToFactoryCommand;
_i32状态、扩展状态;

/*执行恢复出厂设置*/
RetToFactoryCommand.Operation = SL_FS_factory_RET_TO_image;
状态= sl_FsCtl ((slFsCtl_e) sl_FS_CTL_restore、0、NULL、(_u8 *)&RetToFactoryCommand、sizeof (slFsRetToFactoryCommand_t)、 空、0、NULL);
如果(_i32)状态< 0)
{
/*错误*/
//状态由“已签名”错误编号和“扩展”状态组成
状态=(_i16)状态>> 16;
ExtendedStatus =(_U16) slRetVal & 0xFFFF;
Display_printf (display、0、0、"出厂重置失败、错误状态:%d、扩展状态:%d\r\n"、状态、扩展状态);
}
//重置
display_printf (display、0、0、"正在停止 sl\n\r");
sl_Stop (10);
display_printf (display、0、0、"正在启动 sl\n\r");
MODE = SL_Start (NULL、NULL、NULL);
如果(MODE = SL_ERROR_RESTORE_IMAGE_COMPLETE)
{
Display_printf (display、0、0、"已接收出厂复位状态代码。 正在重置 MCU...");
PRCMMCUReset (1);

}
如果(MODE < 0)
{
display_printf (display、0、0、"sl_start failed、error code:%d \r\n"、mode);
/*while (1){
;
}*/
}
其他
{
display_printf (display、0、0、"FR Unknown error code:%d \r\n"、mode);
}
/CC3220
PRCMMCUReset (1);
//}

返回 NULL;
}

/*
=== gpioButtonFxn0 ===
* Board_GPIO_BUTTON0上 GPIO 中断的回调函数。
*/
void gpioButtonFxn0 (uint_least8_t index)
{
SEM_post (doReset)(&doReset);
/*清除 GPIO 中断并切换 LED */
GPIO_TOGGLE (Board_GPIO_LED0);
} 

这些是我的误差输出:

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

    您好!

    不确定该错误是什么、因为我似乎找不到它。

    您是通过 IDE 在调试模式下运行此代码还是刷写了器件? 我假设您已将其刷写。 请澄清。

    此外、刷写设备时、是否已确保 在默认和映像上启用恢复出厂配置

    此致、

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我刷写了器件。 我已选中、并且在"Default and Image"(默认和映像)上启用了"Restore to Factory Configuration"(恢复到出厂配置)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我无法检测到该错误的原因是您打印了一个未初始化的变量。

    状态= sl_FsCtl ((slFsCtl_e) sl_FS_CTL_restore、0、NULL、(_u8 *)&RetToFactoryCommand、sizeof (slFsRetToFactoryCommand_t)、 空、0、NULL);
    如果(_i32)状态< 0)
    {
    /*错误*/
    //状态由“已签名”错误编号和“扩展”状态组成
    状态=(_i16)状态>> 16;
    ExtendedStatus =(_U16) slRetVal & 0xFFFF;
    Display_printf (display、0、0、"出厂重置失败、错误状态:%d、扩展状态:%d\r\n"、状态、扩展状态);
    } 

    在您的情况下、扩展代码会打印未初始化的 slRetVal。

    请将代码更正为以下内容并返回报告:

    slRetVal = sl_FsCtl ((slFsCtl_e) sl_FS_CTL_restore、0、NULL、(_u8 *)&RetToFactoryCommand、sizeof (slFsRetToFactoryCommand_t)、 空、0、NULL);
    如果((_i32) slRetVal < 0)
    {
    //请注意,对于此函数,slRetVal 由有符号的 RetVal 和扩展错误组成
    RetVal =(_i16) slRetVal >> 16;
    ExtendedError =(_U16) slRetVal & 0xFFFF;
    printf ("\aaround sl_FS_factory_RET_TO_image、5d、%d\n"、RetVal、ExtendedError);
    返回 slRetVal
    ;} 

    此致、

    Shlomi

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

     现在出现以下错误。

    错误 SL_FS_factory_RET_TO_image、-1、63522
    
    正在停止 SL
    
    启动 SL
    
    未知错误代码:2. 

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

    谢谢、

    现在、这更有意义。

    此错误为-2014、表示正在进行配置、您无法调用它。

    您可以添加以下代码:

    if (sl_RET_CODE_PROVISIONING_IN_PROGRESS = slRetVal)
    {
    slRetVal =
    SL_WlanProvisioning (sl_WLAN_PROVISIONING_CMD_STOP、0、0、NULL、
    (uint32_t) NULL);
    
    //在此处添加代码以返回默认值*/
    
    

    此致、

    Shlomi

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