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.

[参考译文] TM4C1294NCPDT:将文件存储在外部闪存和 TI RTOS 上。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1467593/tm4c1294ncpdt-storing-files-on-external-flash-and-ti-rtos

器件型号:TM4C1294NCPDT

工具与软件:

我将使用以下软件:CCS 8.3.0、TIRTOS 2.16.1.14、编译器5.2.7、XDC 3.31.1333、TM4C1294NCPDT、 NDK_2_25_00_09

 

目前、我有一些代码可以使用  Tiva 上的单个 SPI 来读取和写入小型外部闪存芯片。  我可以通过 TFTP 在远程系统之间向小型闪存发送数据以及从小型闪存接收数据、以便进行功能实现。   该小闪存包含2个已知大小和类型的不同文件、并会根据两个预期文件的预期大小对存储器进行预分区。  示例:file1.txt 最大大小为400k、file2.bin 为5Meg、因此将闪存分区为第一个文件分配 Say 500K、为第二个文件分配6Meg。  这可能并不理想、但它可以正常工作并满足需求。

我将向 Tiva 上的单通道 SPI 通道(SPI 通道3)添加一个大1G 字节闪存芯片、用于提供更多外部存储。  使用4通道 SPI 比较好、但用于其他3个通道的引脚当前已在 Tiva 上使用、因此不能选择使用4通道 SPI。

我正在考虑是否有更好的方法来为外部闪存执行小型轻量级文件系统、但是由于 Tiva 是一个资源有限的小型微控制器、所以我不希望实现会消耗 Tiva 内用于固件的所有 RAM 和闪存空间的东西。  我确实可以重复使用上面所述的代码、这些代码可以使用 TFTP 发送和接收。   我可以像使用小闪存一样、通过预先定义1GB 闪存中的10个部分来预分配1G 字节闪存空间、最多只能分配10个文件。  

闪存的长期规划是、我们只需要添加几个更多的文件、但一些文件的大小可能各为35Meg、因此绝不会期望有许多不同大小的小文件、因此预分区可能没问题、但会限制长期的灵活性。  

是否有更好的方法可以考虑实施?

我看到 TI RTOS 有一个 RAM 磁盘、但我不知道我是否应该考虑在 TI RTOS 中还有其他任何内容用于闪存、或者我是否应该使用更好的方法?

谢谢!

道格

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

    尊敬的 Doug:

    [报价 userid="51915" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1467593/tm4c1294ncpdt-storing-files-on-external-flash-and-ti-rtos "]我正在考虑是否有更好的方法为外部闪存实施小型轻量级文件系统、但是由于 Tiva 是一个资源有限的小型微控制器、因此我不想实施将占用 Tiva 内所有 RAM 和闪存空间用于固件的做法。  我确实可以重复使用上面所述的代码、这些代码可以使用 TFTP 发送和接收。  [报价]

    如果您正在寻找 FATFS 驱动程序、那么 TI-RTOS 已将开源 FATFS 纳入其 SYS/BIOS 内核中。  您可以找到两个示例。 请参阅以下内容。  

    如果这不是您正在寻找的、那么我不清楚您用更好的方法 实施解决方案的含义。  

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

    我认为这些示例使用了 SD 卡接口、而我们要添加到电路板的闪存是闪存的 SPI NAND SPI 接口。  通过单通道 SPI 将 SPI NAND 器件直接连接到 Tiva 后、基本读取/写入/擦除操作可以正常运行、但我不知道 TI-RTOS 是否提供了任何我可以用来在 SPI NAND 闪存芯片上实施文件系统的东西、我们添加的方式与您提到的示例类似。   也就是说、我的代码空间和 RAM 确实有限、所以任何执行都需要考虑实施解决方案所需的 Tiva 资源。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="51915" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1467593/tm4c1294ncpdt-storing-files-on-external-flash-and-ti-rtos/5632617 #5632617"]但是我不知道 TI-RTOS 是否提供了任何我可用来在 SPI NAND 闪存芯片上实施文件系统的建议(我们正在添加的示例与您之前提到的示例类似)。  [报价]

    尊敬的 Doug:

     我们没有任何将文件系统用于 SPI 闪存的 TI-RTOS 示例。 您说得对、现有示例适用于 SDcard。 但是、该示例基于同样使用 SPI 接口的 SD 存储器。 我想通过修改一下、可以将文件系统移植到 SPI 闪存。  

    也就是说、由于我的代码空间和 RAM 有限、因此任何实施都需要考虑实施该解决方案所需的 Tiva 资源。

    您可能需要查看 SD 卡文件系统示例、了解 FATFS 库占用的空间、并与您当前应用程序在内部闪存和 RAM 上占用的空间进行比较。 如果你剩下的东西比 FATFS 库需要的东西要小,那么就没有头空间了。