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.

[参考译文] CC3220SF:实现文件的"append"功能

Guru**** 2552780 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/939576/cc3220sf-implementing-append-functionality-for-a-file

器件型号:CC3220SF

大家好!

我通过使两个文件彼此并行(其中一个文件仅为临时文件)来实现"附加"功能。
我创建并打开 temp。 文件、将原始文件内容复制到其中、附加新数据、关闭文件、删除原始内容、
重命名临时 删除的原始文件的名称。

我正在考虑替代解决方案:

我希望始终保留这两个文件、以避免出现问题、方法是反复创建新文件:

0)创建温度。 和原始文件
… (一些写入原始文件的操作将在平均时间内进行)
1) 1)开路温度 要写入的文件
2) 2)将原始文件内容复制到 temp。 文件
3) 3)将新数据写入 temp。 文件(又称为 append)
4)关闭温度。 文件
5) 5)关闭原始文件
6) 6)将原始文件重命名为 ORIGINAL_OLD
7) 7)重命名临时 原始文件
8) 8)将 ORIGINAL_OLD 重命名为 temp。 文件

因为这也意味着闪存中的一些文章、这种解决方案是否更好?

我在这里参考 TI 文档:

提前感谢您的回复!

此致
Jiří μ A

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

    您好、Jiri、  

    重命名文件也会更新 FAT 条目。

    如果您需要使用两个文件(例如"file1"和"file2")、我将在软件中创建一个包装程序、在这两个文件之间进行切换。 例如:

    初始化时:

      operationFile ="file1"

      tempfile ="file2"

    追加(newBuf)

    读取(operationalFile 、buf);

    写入(tempfile 、buf)

    write(tempfile 、newBuf);

    temp = tempfile;

    tempfile = operationFile;

    operationalFile = temp;

    read()和 write()只是为了简化。 我假设您不会将整个内容存储在 RAM 缓冲区中、并且每次都会复制文件的小片段。

    主要是由软件处理名称更改以限制 FAT 访问。

    BR、

    Kobi

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

    您好 Kobi、

    感谢您的快速响应和伟大创意!
    我将根据您的建议实施它!

    此致
    Jiří μ A