hello I want to discuss about the nand flash and filesystem support. I turned into nuttx because I have a linux background and RTOS like freertos is most likely a bare OS kernel ,porting exist things is annoying such as filesystem and POSIX interface etc. Some introduction of my situation and motivation: I'm trying to do porting the Nuttx onto the alientek apollo STM32F429 board. It's their website: http://www.alientek.com Their development board is very hot here in China, but it's a pity the website is in Chinese Language only. I worked based onstm32f429i-disco and what I have done: a.uart b.external sdram c.led all works fine. Next step I want to get the Nand flash working with some filesystem. Nand flash is Micron MT29F4G08.I realized that nuttx have no filesystem for nand on the shelf and the exist filesystem have to do some changes to fit nand flash.I want a more mature filesystem which I can think of from linux is something based on mtd like jiffs2 or YAFFS2.Maybe ubifs is better but It's not based on the mtd and more complex. I choosed YAFFS2 In fact the porting to Nuttx is pretty easy after I decided to port YAFFS2 with its direct mode. Next step I configured the FMC and got the FMC talk to nand correctly. Later I choose to use the driver file mtd_nand.c later I find I have to implement the method in the nand_raw.h for the lowest talking to nand in order to get all filesystem software stack working. I have a pause here and looking forward to your advice for such topics: a. Could I benefit from Linux as I don't want to reinvent the wheel ? what can I do to minium the effort ? Can we have a better sturcture? b. Should I put the raw_nand method drivers/mtd/ or the board specific folder?I think I should put in the mtd folder for micron specific c. license of YAFFS2 is GPL which would pollute the nuttx BSD license, what is your advice? I have to link it with library format ? d. does someone have other working solutions for nand flash filesystem ? e. As I understand, the raw nand filesystem is always a big headache for many rtos, if you don't choose linux you only have very limited options for free use, FAT is a obvious option but you have to working on the FTL level by yourself. It is meaningful to choose raw nand for low cost electronic product other than sd-card competitable storgage.
What's your opinion ? Best