AnsweredAssumed Answered

FlashX vs Flash_LDD for using MFS with internal flash.

Question asked by Sean MacKay on Mar 12, 2014
Latest reply on Mar 25, 2014 by Sean MacKay


I've been working on this for a while, and did my best to read up and search for the information I need on here, but I'm in over my head and haven't been able to clearly figure out what's going on.


I'm working on a project using MQX 4.x and Kinetis K60DN512 chips and a custom board and just am not sure how to go about implementing some local file storage on the internal Flash on the chip. The goal is just to be able to open and write simple files locally, and then be able to read them to either export via ethernet or write to SD card on a later revision. Some of my main confusions are as follows:


1) FlashX vs Flash_LDD (from processor expert). It seems FlashX can be used to access the internal flash, but I also got the impression it was more suited for external flash devices and/or NAND flash (unlike the internal NOR). Does the Flash_LDD work with, or instead of, the FlashX driver? Which would be the preferred choice for this use?


2) I can view the Memory Map for RAM use, but is there a way to see the Flash Allocation to better understand where and how to access each Flash bank, and what space is available?


3) MFS: Does it make sense to use MFS internally or does it add more overhead then necessary for a small internal flash space like this? Because the Flash could just be written to directly without implementing the filesystem, but using MFS would be a good learning practice for future implementations on external flash or SD cards if used. I am aware MFS is not ideal for flash memory without a wear levelling driver, because the FAT is repeatedly re-written for every file change, but for our uses we shouldn't have to worry about running into the 100,000 writes that cause flash failure.


4) What is the preferred implementation of something like this?

     - Would it be low Level Flash Driver (flash_LDD) accessing the Flash Bank which isn't being used to store the application code itself?

     - Then use a Partition driver to create a partition in that bank.

     - Then install MFS on that partition.

     - From there, use MFS functions to open, read, and write data?


I'm sorry of some of this should be obvious and common knowledge, but I'm still fairly new to embedded development in general and really was not able to clear up what needed doing after much searching through semi-related questions here.


Thank you for any help you're able to give me,