Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Unable to render {include} The included page could not be found.
Unable to render {include} The included page could not be found.

Using the IDE/CF Driver

To use the IDE/CF driver, five files, in addition to the generic file system files, must be included in the build:

fs_dev_ide.c (located in the directory specified in Section 9.01).

fs_dev_ide.h (located in the directory specified in Section 9.01).

fs_dev_ide_bsp.c (located in the user application or BSP).

The file fs_dev_ide.h must also be #included in any application or header files that directly reference the driver (for example, by registering the device driver). The following directories must be on the project include path:

\Micrium\Software\uC-FS\Drivers\IDE

A single IDE/CF volume is opened as shown in Listing 18-1. The file system initialization (FS_Init()) function must have been previously called.

ROM/RAM characteristics and performance benchmarks of the IDE driver can be found in section 9-1-1 “Driver Characterization” on page 113.

 

CPU_BOOLEAN App_FS_AddIDE (void)

{

FS_ERR err;

FS_DevDrvAdd((FS_DEV_API *)&FSDev_IDE, /* (1) */

(FS_ERR *)&err);

if ((err != FS_ERR_NONE) && (err != FS_ERR_DEV_DRV_ALREADY_ADDED)) {

return (DEF_FAIL);

}

/* (2) */

FSDev_Open((CPU_CHAR *)“ide:0:”, /* (a) */

(void *) 0, /* (b) */

(FS_ERR *)&err);

switch (err) {

case FS_ERR_NONE:

break;

case FS_ERR_DEV:

case FS_ERR_DEV_IO:

case FS_ERR_DEV_TIMEOUT:

case FS_ERR_DEV_NOT_PRESENT:

return (DEF_FAIL);

default:

return (DEF_FAIL);

}

/* (3) */

FSVol_Open((CPU_CHAR *)“ide:0:”, /* (a) */

(CPU_CHAR *)“ide:0:”, /* (b) */

(FS_PARTITION_NBR ) 0, /* (c) */

(FS_ERR *)&err);

switch (err) {

case FS_ERR_NONE:

break;

case FS_ERR_DEV:

case FS_ERR_DEV_IO:

case FS_ERR_DEV_TIMEOUT:

case FS_ERR_DEV_NOT_PRESENT:

case FS_ERR_PARTITION_NOT_FOUND: /* (4) */

return (DEF_FAIL);

default:

return (DEF_FAIL);

}

return (DEF_OK);

}

 

    1. Opening a IDE/CF device volume
      1. Register the IDE/CF device driver.
      2. FSDev_Open() opens/initializes a file system device. The parameters are the device name (1a) and a pointer to a device driver-specific configuration structure (1b). The device name (1a) is composed of a device driver name (“ide”), a single colon, an ASCII-formatted integer (the unit number) and another colon. Since the IDE/CF driver requires no configuration, the configuration structure (1b) should be passed a NULL pointer.

Since IDE/CF are often removable media, it is possible for the device to not be present when FSDev_Open() is called. The device will still be added to the file system and a volume opened on the (not yet present) device. When the volume is later accessed, the file system will attempt to refresh the device information and detect a file system (see section 5-2 “Using Devices” on page 69 for more information).

      1. FSVol_Open() opens/mounts a volume. The parameters are the volume name (2a), the device name (2b) and the partition that will be opened (2c). There is no restriction on the volume name (2a); however, it is typical to give the volume the same name as the underlying device. If the default partition is to be opened, or if the device is not partition, then the partition number (2c) should be zero.
      2. High level format can be applied to the volume if FS_ERR_PARTITION_NOT_FOUND is returned by the call to FSVol_Open() function.

If the IDE initialization succeeds, the file system will produce the trace output as shown in Figure 18-1 (if a sufficiently high trace level is configured). See section E-9 “Trace Configuration” on page 507 about configuring the trace level.

    1. IDE detection trace output
  • No labels