I’m currently running a RCM6750 board which contains on-board SFLASH, as well as an SD Card reader.
My device/driver defines are as follows:
#define _DRIVER_0 “SFLASH_FAT.LIB”
#define _DRIVER_0_INIT { “SF”, sf_InitDriver, _DRIVER_CALLBACK, },
#define _DEVICE_0 { sf_InitDriver, _DEVICE_CALLBACK, 0, 0, FDDF_MOUNT_PART_ALL|FDDF_MOUNT_DEV_0, “SFLASH-1”, },
#define _DRIVER_1 “SD_FAT.LIB”
#define _DRIVER_1_INIT { “SD”, sd_InitDriver, _DRIVER_CALLBACK, },
#define _DEVICE_1 { sd_InitDriver, _DEVICE_CALLBACK, 0, 0, FDDF_MOUNT_PART_ALL|FDDF_MOUNT_DEV_1, NULL, },
I have also declared #define FAT_MAX_PARTITIONS 1 to configure only one partition per device
With that being said, I have no issues mounting both Devices 0 and 1, with their respective partitions being fat_part_mounted[0] and fat_part_mounted[1].
Additionally, I have no issues unmounting Device 0 (the on-board SFLASH).
My problem occurs, however, when attempting to unmount Device 1 (the SD Card)…
When executing the following code:
rc = fat_UnmountDevice(fat_part_mounted[1]->dev);
I receive the following error:
Run Time Error: A system mode violation interrupt occurred, but the system
mode violation vector is uninitialized.
Address: 07:2f5b
I have received these run time errors with various debugging flags enabled, but I have double checked to ensure I do not have any debugging definitions in my code.
Any idea on what might be going on here?
Thanks!