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.

[参考译文] CC3235SF:无法在闪存中创建文件。

Guru**** 2560000 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1006674/cc3235sf-unable-to-create-file-in-the-flash-memory

器件型号:CC3235SF

尊敬的 TI:

    我一直在使用我的代码在控制器闪存中创建一个文件、这不仅是我执行了所有操作、还执行了写入、提交、覆盖和删除操作。 但现在即使在文件创建后也无法正常工作、列表中也不提供文件。 以下是我的代码、请查看并告诉我 出错的地方。

1>文件创建。

void create_new_file_Using_Token(const unsigned char* test_FileName)
{
    /* Creating FailSafe file */
    _i32 fd = sl_FsOpen(TEST_FILENAME,(SL_FS_CREATE | SL_FS_CREATE_FAILSAFE | SL_FS_CREATE_MAX_SIZE(MAX_FILE_SIZE) | g_accessMode),&g_tokens[SL_FS_TOKEN_MASTER]);

    if (fd < 0)
    {
        Display_printf(display, 0, 0, "sl_FsOpen error: %d\n\r", fd);
    }
    else
    {
        Display_printf(display, 0, 0, "File Created successfully!\n\r");

        RetVal = sl_FsClose(fd, 0, 0, 0);
        if (fd < 0)
        {
            if (RetVal == -10365)
            {
                Display_printf(display, 0, 0,
                               "SL_ERROR_FS_INVALID_TOKEN_SECURITY_ALERT!\n\r");
            }
            else
            {
                Display_printf(display, 0, 0, "sl_FsClose error: %d\n\r",
                               RetVal);
            }
        }
        else
        {
            Display_printf(display, 0, 0, "File Closed Successfully!\n\r");
        }
    }
}

 以及我如何调用它>

       const unsigned char* userName="sarju.txt";

        if(!once)
        {
            create_new_file_Using_Token(userName);
//            EEPROM_Controller();
//            delete_file_Using_Token("H");
            once=true;
        }

但列表中不存在文件、而是创建了错误的文件。 下面是图片。

请指导我解决此问题。  

等待 您的回复、

Sarju Bhatnagar

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

    函数中的参数是"test_filename"、但在调用 sl_FsOpen 时使用"test_filename"。

    这是问题吗?

    我想您在 sl_FsOpn 和/或 sl_FsClose 上不会遇到任何错误。 对吧?

    BR、

    Kobi  

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

    test_filename 是宏

    #define test_filename "sarju.txt"

    因此、它将直接从宏获取文件名。 据我所述、在文件创建过程中不应有任何问题。 不管怎样、我尝试了这两种方法、但在这两种情况下、if 文件名是不同的文件正在成功创建。 如果文件名不同、则会出现一个错误、很容易理解文件已在文件系统中。  但成功创建后、为什么文件列表中不存在该文件。 这是我的问题。 我的函数中是否存在在第一个帖子中发布的文件创建问题。  

    请告诉我可能会出现什么问题。

    谢谢

    石州 bhantagar

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

    您好 Sarju、

    我不能完全确定您在做什么、我 也不熟悉文件创建方面的问题。

    如果打开一个文件(带有创建标志)、请写入该文件并将其关闭。 它将保存在 FS 上(使用创建的名称)。 您似乎正在检查退货代码、因此应该可以。

    可能是以前导致文件系统损坏的原因。

    您可以在对闪存进行编程后重现此问题吗?

    您能告诉我重现此问题的确切步骤吗?

    请提供 NWP 日志(请参阅 https://www.ti.com/lit/swru455第20.1章中的说明)。

    BR、

    Kobi