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-LAUNCHXL:用于调试跟踪记录的文件系统碎片

Guru**** 2589280 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/910273/compiler-cc3220sf-launchxl-file-system-fragmentation-for-the-debug-trace-logging

器件型号:CC3220SF-LAUNCHXL

工具/软件:TI C/C++编译器

您好!


请帮助我解决文件系统的阻止问题。


我 正在尝试实施调试跟踪(器件诊断)系统、以将器件跟踪信息发布到云。 (比如每24小时)。

2.当应用程序使用休眠功能时,每隔30分钟唤醒一次并返回休眠模式。

我了解到、CC32xx/CC31xx 文件系统不支持将每个跟踪附加到单个文件中的分段功能。 如何在不使用文件系统碎片的情况下实现此功能?

是否仍然可以将数据存储到在休眠后不会擦除的外部/内部闪存系统、或者可以采用其他方法?  


此致、
Suresh

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

    您好、Suresh、

    您可以选择:

    使用 sl_文件系统:

    • 您需要从日志文件中读取所有数据并将其写回最后一条记录
    • 您可以为每个记录创建新文件

    具有内部 XIP 闪存:

    • 如果固件映像不超过512KB、您可以将一些用户内容写入 XIP 闪存(闪存的第二部分)。 在任何情况下都不保证 XIP 闪存内容的保留(出于某些原因、可以由 ROM 引导加载程序擦除)。 但出于您的目的、它可以起作用。 下面 介绍了如何写入 XIP 闪存。

    使用附加存储:

    • 将小型 EEPROM 或 SD 卡连接到 CC32xx 并将其用作存储器

    1月

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

    您好、Jan、

    感谢您的回答和建议。

    使用 sl_文件系统:

    该解决方案可能会影响电池寿命、因为这是一种功率受限的器件。

    没有文件系统、我可以通过任何方式访问外部闪存吗? 如果是、请提供任何示例。  

    此致、

    Suresh

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

    您好、Suresh、

    不支持从应用处理器直接访问 sFlash、即使在技术上可能也是如此。

    1月

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

    您好、Jan、

    1.我正尝试根据 您的建议使用 sl_文件系统来实现。

    我的文件将打开、其中包含以下选项:

        OpenFlags = SL_FS_CREATE;
        OpenFlags |= sl_FS_OVERWRITE;
        OpenFlags |= SL_FS_CREASE_FAILSAFE;
        OpenFlags |= SL_FS_WRITE_BUNDLE_FILE;

     

    2.应用程序初始化时间,我正在打开文件并写入数据,但不关闭文件,我正在重置设备。

    我 对  SL_FS_CREASE_FAILSAFE 标志的理解是为了防止器件意外重启期间的数据丢失、但在我的情况下、它无法按预期工作。

    4.复位器件后 、读取导致以下问题 的文件 sl_error_FS_file_has _not _been _close_correctly。

     

    注意:我的目的也是为了防止意外复位期间的数据丢失。 如果我缺少任何内容、请提供建议。

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

    您好!

    失效防护功能可在写入期间断电时恢复到文件的先前内容。 但是、如果您没有保存任何以前的内容、则没有任何内容需要恢复。

    1月

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

    您好、Jan、

    我知道、一次关闭文件将创建有效的文件。 在我的情景中,请找到以下代码片段

    在上次读取(无)关闭文件时,我希望写入8个数据,而不是只获得5个写入数据。 预期情景是什么?

     

    sl_FsOpen()
    
    (假设5次写入)
    
    sl_FsWrite()
    sl_FsWrite() sl_FsWrite() sl_FsWrite()
    sl_FsWrite()
    sl_FsWrite()
    sl_FsWrite()
    
    //具有有效文件+有效数据
    
    sl_FsRad()//采用旧文件缓冲区(5个 sl_FsWrite)) sl_FsClose()//具有有效文件+有效数据 sl_FsWrite(5>FsWrite(>FS_swe()+sWrite(>FS_swe()+sWrite(>FS_swe()+sWrite(>FS_swe()+sWrite(>FS_swe(>FS_swe
    
    
    
    
    
    
    
    
    
    
    sl_FsRead () 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在您的情况下、应在5倍写入后将文件内容恢复为状态。 3倍写入的内容将丢失。

    在第2次打开时、您不应仅使用覆盖来使用创建标志。

    1月

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

    您好、Jan、

    很抱歉、我仍然缺少一些东西、

    那么、您是说、即使我使用失效防护、在任何情况下都无法进行8倍数据写入检索?  

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

    您好!

    是的、没错。

    文件内容将返回到 lass successful 文件关闭状态。

    1月