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?
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).