Hi all. I'm trying to mount file system on NAND flash MT29F1G08ABADAH4. I'm using cortex m4. Here are my NAND setting:
#define NAND0_ENABLE 1 #define NAND0_TYPE 0 #define NAND0_DRIVER 0 #define NAND0_DEV_NUM 0 #define NAND0_PAGE_SIZE 2112 #define NAND0_PAGE_COUNT 64 #define NAND0_BLOCK_COUNT 1024 // 128Mb #define NAND0_PAGE_CACHE 8 #define NAND0_BLOCK_CACHE 16 #define NAND0_SW_ECC 1 #define NAND0_CACHE_SIZE 4 #define NAND0_CACHE_RELOC 0 #define NAND0_CACHE_ADDR 0x80000000 #define NAND0_FAT_JOURNAL 1 #define NAND0_DEFAULT_DRIVE 1
I've tried to use example from MDK 5.0:File System Component:System Routines:fmount:
void main (void) {
if (finit ("N:") != fsOK) {// error handling} if (fmount ("N:") != fsOK) {// error handling} // do smth funmount ("M:"); funinit ("M:"); }
So, i've got a problem: finit("N0:") returnk OK, but fmount("N0:") fails with "fsMediaError" code
Can anybody help me?
This example make me think that all I need - just to config NAND memory bus and NAND flash device. In no intention to sound complaining, but noobs find it difficult. Initially, (as a noob) i had also found the keil documentation troublesome to deal with. They don't have documentation explaining step-by-step process. also, all the related documentation is not placed at any single link, nor do they have a single pdf document. you have to go through all the documentation or use web search engines smartly to get things done. Luckily, we have some really smartians on the forum.
So, I'm interesting just one thing now: this example is just example and nothing more? It doesn't work and I shouldn't even try to run it as is? In this case I'll write driver myself, and it will be much better than work I'm doing now: trying to fix a thing that never worked. Am I right? If yes, I'm starting to write low-level commands to deal with NAND.
Keil's NAND driver works and is waiting for flash's answer. Driver sends Reset, after that it sends GetStatus periodically, but doesn't get any answer. It seems, I have some problems in my NAND-bus configuration.