This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Porting FlashFS to use NANDFlash

Hi,
I adopted FlashFS to use my NANDFlash (9F2G08U0A).
finit() and fformat ("F:") are working fine and the flash gets erased.
But if I call fopen, to create files, I get linker error:

.\at91sam9260-sdram\at91sam9260-sdram.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced


I got a retarget.c which implements _sys_open and many other _sys-functions:

FILEHANDLE _sys_open (const char *name, int openmode) {
   /* Register standard Input Output devices. */
   if (strcmp(name, "STDIN") == 0) {
      return (STDIN);
   }
   if (strcmp(name, "STDOUT") == 0) {
      return (STDOUT);
   }
   if (strcmp(name, "STDERR") == 0) {
      return (STDERR);
   }
   return (__fopen (name, openmode));
}

How can I compile my code without errors?

Parents Reply Children
  • Thanks for your reply. I understand this of course. I just wanted to see if the erase sector function is called - which is not the case (returning 0 from any of these functions is considered as success). So, 'fformat("F:");" with the settings above if sufficient and should work?
    I think I am going to try to convince the head of R&D to replace that flash chip. I mean, I have seen that FlashFS calls a function that is likely to attempt to configure the SPI bus when using these settings. I am worried about the side effects on our SPI chips and general maintainability.

  • Tamir,

    I would go with MCI + SDCard. It has the best performance/price ratio.
    I'm using the SDcard only for internal use replacing a NAND flash.

    Advantages:
    *MCI in 4 bits mode has the fastest speed.
    *The FS is FAT16/32, so you can read/write the info with a PC.
    *Easy to upgrade with more memory if is necessary.
    *SDcards are cheap.

  • Leonardo,
    Thanks for your reply. My system already has an SD card plus a NAND flash and a NOR flash. something will have to go, and due to price considerations it is likely to be the SD card...

  • Another possibility is: to adapt FlashFS to support USB FLASH Memories (fs: FAT16/32), but you need an USB Host port in your MCU (i.e. LPC2388). I've done it and works at pretty good speeds: ~400KBytes/sec (write).