You can either:
1. Or expose FRAM as a tmpfs through mount pointer
2. If you want to use FRAM as PSRAM, you can add FRAM to the system heap
with kmm_addregion
3. If you want to use FRAM as an separated heap, you can call
mm_initialize, mm_malloc and mm_free
https://github.com/apache/incubator-nuttx/blob/master/include/nuttx/mm/mm.h#L155-L156
depending on your case, you may select one or several approaches together.
On Wed, Jul 27, 2022 at 4:24 PM wrote:
> Dear all,
>
> we are in the process of porting Nuttx to our new EsPiFF-V3 board. Basic
> Nuttx with nsh is working already. This is a board with a ESP32-WROVER
> module, and has additional SPI-connected FRAM (2kB to 256kB possible).
> How could the SPI-connected FRAM be integrated into Nuttx?
>
> - the FRAM is as fast as the ESP32-SPI PSRAM, and it should offer the
> application to store process variables and not lost it when power down.
> Best would be, when it can be addressed with malloc() or similar
> function for the user.
>
> - SPI-based EEPROMs have traditionally a mount point in the file system,
> and are exposed as a device driver to the user. I could implement it in
> this way, but as such, the attractive variable assignment in RAM would
> not be available.
>
> Could the existing HiMem driver on the ESP32 with bank switching be
> extended, to also support FRAM for use with malloc? Our FRAM is
> connected to a different SPI bus then the PS-RAM.
>
> Or is it not a good idea to expose the SPI-FRAM via malloc, and we
> should use a device driver and let the user access the content via a
> mount point in the file system?
>
> Best regards,
> Michael
>
>