Does DC 10.72 support FAT functions on RCM6700, and if so where is the documentation?

Yes, Dynamic C 10.72 supports FAT for the serial flash on the RCM6700. Take a look at the Dynamic C Users manual located at
http://www.digi.com/support/productdetail?pid=4885&type=documentation

You could also use FAT if you are going to attach an SD card

1 Like

Thanks for the lead.

I thought it should work, but I tried all those sample programs and none of them work.

I’ll keep looking.

Perhaps something in my project environment can mess it up? I’m set up for separate I & D space because eventually I’m trying to port an earlier RCM3700 program that uses lots of memory and that is still in my project setup. The macros in the FAT samples & libs look like they tried to accommodate separate I & D, though.

Hmmm, maybe it will work better if I use the RCM6760 instead of the RCM6700 that came in the kit.

I will try that in the AM

I just ran Fmt_device.c and fat_create.c and had no issues. Please give more details other than the samples do not work. Are you getting error messages? What is not working? Is your RCM6700 on the Rabbit proto board?

I am using an RCM6710, same as your 6700 but I have an RJ45 connector. the samples should work on your RCM6700

Here is the stdio output from
DCRabbit_10.72\Samples\FileSystem\FAT\Fmt_Device.c, run on an RCM6700 on the development board


fat_AutoMount() error (-304) Partition or volume not formatted

NOTE: Formatting destroys all data.
Quit now or forever hold your peace!

Enter a command (single char only, then press Enter):
p Purge cache - try this if getting -310 error codes
a-d Format partition 0,1,2 or 3 on device 0
0 Format entire device 0 (all FAT 12/16 partitions)
q Quit (after unmounting all partitions)

Your choice? 0

This will destroy ALL DATA ON ALL PARTITIONS on this device!
Are you sure you want to continue? (y/n) y

Partition A doesn’t exist or is not a supported FAT partition.
Partition B doesn’t exist or is not a supported FAT partition.
Partition C doesn’t exist or is not a supported FAT partition.
Partition D doesn’t exist or is not a supported FAT partition.

NO supported FAT partitions found.

Erase device and create one large partition? (y/n)y

fat_AutoMount() error (-22) Invalid argument
Partition A doesn’t exist or is not a supported FAT partition.

Operation successful.

Enter a command (single char only, then press Enter):
p Purge cache - try this if getting -310 error codes
a-d Format partition 0,1,2 or 3 on device 0
0 Format entire device 0 (all FAT 12/16 partitions)
q Quit (after unmounting all partitions)

Your choice?


Here is my project file, minus the MRU list:

[COMM]
port=7
coldload baud=2400
pilot baud=57600
bios baud=115200
Max Negotiated Baud=460800
stop bits=2
use TCP=0
TCP Port=0
Serial Response Timeout=400
Ethernet Response Timeout=8000
Serial Retry Count=5
Ethernet Retry Count=0
Serial Poll Interval=3000
Ethernet Poll Interval=30000
Disable Baud Negotiation=0
Verify DSR=1
Use USB to Serial Converter=1
USB to Serial Delay=500
Begin Probe Delay=100
End Probe Delay=300
Begin Pilot Delay=0
End Pilot Delay=0
Flash erase timeout=10000
TCP Name=
Net Address=
Pilot Bios Physical Address=0x4000
Use RabbitLink=0
RabbitLink Port=0
RabbitLink Address=
RabbitLink Name=
[Compiler Options]
All Serious None=A
RTC Indices=1
RTC Pointers=0
Optimize For Size=0
Prototypes=1
Demotion=1
Pointers=1
Default Compile Mode=1
Separate Instruction and Data=1
Generate List Files=0
Inline Internal IO Functions=1
Detect Internal Memory=1
Detect Memory=1
Flash type=64
Memory type=8
Max Errors Shown=10
Max Warnings Shown=10
BIOS Memory Mode=0
Restrict Watch Expressions=0
[Dynamic C Files]
Use Rabbit 4000 Libs=1
LIB File=
BIOS File=
Default Source File=
Use Lib File=0
Use BIOS File=0
Use Default Source File=0
CS0 RAM Detect File=bios\checkRamCS0.bin
Pre-Cold Loader File=bios\precoldload.bin
Cold Loader File=bios\coldload.bin
16-bit Cold Loader File=bios\coldload16bit.bin
Serial Flash Cold Loader File=bios\coldloadserflash.bin
Pilot BIOS File=bios\pilot.bin
16-bit Pilot BIOS File=bios\pilot16bit.bin
Serial Flash Pilot BIOS File=bios\pilotserflash.bin
Start Dir=C:\DCRABBIT_10.72\Samples\FileSystem\FAT
[Include BIOS]
Include BIOS=1
[Include RST 28]
Include RST=2

{MRU OMITTED HERE…}
[Open Files]
Number Open=1
[Project Explorer]
ProjEx Window Open=0
ProjEx Window Y=50
ProjEx Window X=50
ProjEx Window W=600
ProjEx Window H=400
ProjEx Window State=0
[Debug Options]
Enable Breakpoints=1
Enable Instruction Level Single Step=1
Enable Watch Expressions=1
Max Breakpoints=8
Max Watch Expressions=4
Watch Memory for Structs=256
Enable Stack Tracing=1
Stack Tracing Memory=1024
Enable debug kernel=1

[Poll Target]
Poll target while running=1
[Compression Utility]
Zimport External Utility=ZCOMPRESS.EXE
[INCLUDES]
Includes=C:\DCRABBIT_10.72\Include;
[C FILES]
C Files=
[DEFINES]
Defines=
[Targetless Compile]
Board ID=0x3400
CPU ID=6000
CPU Revision=0
Crystal Speed MHz=25.0000
RAM Size KBytes=1024
Flash Size KBytes=1024
Description=162MHz, RCM6700, 1M+32K RAM, 1M serial program flash
Macros=CLK_DBL=0;BRD_OPT0=0x22;SBF=1;MD0=0x1;MD0_ID=0x1F24;MD0_TYPE=0x2;MD0_SIZE=0x100;MD0_SECSIZE=0x108;MD0_SECNUM=0x1000;MD0_SPEED=0x0;MD0_MBC=0x0;MD2=0x1;MD2_ID=0x0;MD2_TYPE=0x0;MD2_SIZE=0x100;MD2_SECSIZE=0x0;MD2_SECNUM=0x0;MD2_SPEED=0x0;MD2_MBC=0xC3;MD3=0x1;MD3_ID=0x0;MD3_TYPE=0x0;MD3_SIZE=0x8;MD3_SECSIZE=0x0;MD3_SECNUM=0x0;MD3_SPEED=0x0;MD3_MBC=0xC7


Thanks for any help you can provide!

Are you trying to port over a project file to the RCM3700 to the RCM6700? This is not recommended. You need to create a new project file for the RCM6700.
Try running FAT_SHELL.c

No, I was initially trying to port an existing application, but in a new project file. I did make some adjustments in this new project such as separate I & D space and reduced breakpoints in order to get enough memory to compile.

Since failing to start FAT in the original application and starting this conversation I’ve been focused on the sample programs.

At your suggestion I closed the existing project and created a new one with only the COMM port adjusted, loaded FAT_SHELL, and got this:

No partition(s) mounted by fat_AutoMount!

Format partition 0 on available FAT devices? (y/N) y

Format 0 Error: Invalid argument

which is not very helpful

Maybe my core is fried? It’s been passed around for board development purposes…

I switched to a new RCM6760 and FAT_SHELL worked.

So either my RCM6700 is bad or there’s a compatibility problem with FAT16. I don’t have another RCM6700 on hand to try at this moment to figure out which.

Its possible there is an issue with that Rabbit, I suggest you do an RMA

Thanks, but I’m making progress now with the RCM6760 which is my real target anyway, and judging by past experience obtaining an RMA wouldn’t be worthwhile, since we know it worked on your 6710 with the same memory setup.

Thanks for all your insight!