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.

[参考译文] CC3230SF:sl_FsOpen 在尝试创建或写入文件时返回错误–2018

Guru**** 2401645 points
Other Parts Discussed in Thread: CC3235SF, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1535528/cc3230sf-sl_fsopen-returns-error--2018-when-trying-to-create-or-write-file

器件型号:CC3230SF
Thread 中讨论的其他器件:CC3235SFUNIFLASHSYSCONFIG

工具/软件:

尊敬的 TI 团队:

我正在处理基于 CC32XX 的项目(特别是 CC3235SF)、但我在使用文件系统 API 时遇到问题。

当我尝试使用打开或创建文件时sl_FsOpenSL_FS_CREATE | SL_FS_OVERWRITE | SL_FS_CREATE_MAX_SIZE(...)、该函数失败并返回错误 –2018 年

下面是我正在做的事情的简化片段:

void writeLoopIntervalToFlash (int loopInterval){
const char *文件名=“loopinterval.txt";“;
字符内容[16];
_u32 令牌= 0;
_i32 fileHandle;
_i32 状态;

snprintf(内容,sizeof(内容)、“%d\r\n",“,loopInterval、loopInterval);

fileHandle = sl_FsOpen ((unsigned char *) filename、
SL_FS_CREATE | SL_FS_OVERWRITE | SL_FS_CREATE_MAX_SIZE (64)、
令牌);
if (fileHandle < 0){
 uart_print(“无法打开%s 进行写入:%ld\n“,文件名,文件处理程序) ;
返回;
}

status = sl_FsWrite (fileHandle、0、(_u8 *) content、strlen (content);
sl_FsClose (fileHandle、NULL、NULL、0);

if (status < 0){
 uart_print(“写入%s 失败:%ld\n“,文件名,状态) ;
返回;
}

uart_print(“已保存的循环间隔=%d 到%s 成功。\n“、loopInterval,文件名) ;
}

我已经确认、sl_Start()在此之前调用了该函数、并且 NWP 正在正常运行。 我是 不使用安全文件 、只是尝试存储文本数据(如循环间隔字符串)。

我的问题:

  1. 在这种情况下、错误–2018 具体表示什么?

  2. 如果文件已经存在并且标志不匹配、是否会发生此错误?

  3. 是否有安全创建或覆盖文件的建议方法来避免这种情况?

请提供任何指导。 谢谢!

此致、
Zunnur

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

    尊敬的 Zunnur:

    请再次检查您的代码、并检查在使用 SL_文件系统 API 函数之前是否调用了 sl_Start() 并且没有返回错误。 因为错误–2018 的含义是  SL_RET_CODE_DEV_NOT_STARTED、这意味着上述内容。 我几乎 100%肯定你的代码中有与 sl_Start () 相关的错误

    • 当您将 SL_文件系统 API 替换为其他 SL_ API 时、会返回错误代码?
    • 您使用的是哪个 SDK 版本? 您是否在器件内编程了正确的服务包?
    • 您的 sFlash 是否正确连接? 可以通过 Uniflash 或 SysConfig 映像创建器对其进行编程吗。

    如果您想知道何时  返回错误 SL_RET_CODE_DEV_NOT_STARTED、您可以检查主机驱动程序的源代码。 此时的代码非常简单 (sl_FsOpen ->宏 verify_api_allowed -> _SlDrvDriverIsApiAllowed)。

    1 月