We have a Rabbit 4000 with a RCM4210 module. I’m trying to get the FAT file system working on the serial flash. I tried compiling Fmt_device.c with DC 10.23. I get 2 errors and 10+ warnings. The errors are:
line 22 : error sflash_fat.lib : RCM3309 is out of scope/ not declared.
line 23 : error sflash_fat.lib : RCM3319 is out of scope/ not declared.
The warnings are all ‘Conversion to incompatible pointer type’ at various lines in Fmt_device.c. I did a Windows search for any .lib file in the DC\lib folder that contained RCM3309 or RCM3319. The lines in sflash_fat.lib were the only ones. It looks like boardtypes.lib is supposed to be where they are, but they are not. Did someone forget something or am I missing something?
I #defined the 2 missing ones to 0 to get it to compile. Now, fat_AutoMount() returns -5 - I/O error. What would cause that error? The serial flash has never been used. I tried replacing the FDDF_MOUNT_DEV_ALL | FDDF_MOUNT_PART_ALL parameter with FDDF_USE_DEFAULT but got the same results. The fat_print_config() call produces:
FAT configuration
Drivers (total 1)…
Type: SF initFunc 2976 callback 0000
–> Device 0: ID 0000 timeout 0000 flags 001F callback 0000 sig SFLASH-1
Thanks. We called tech support, too. They told us to #define the 2 to 0 rather than modify their libraries. They are, apparently, obsolete models. I ended up #defining them to the current models - #define RCM3309 RCM3305 and #define RCM3319 RCM3315. More predictable results.
The other error I get (I/O error) happens the first time I run the program. If I run it again it works fine.