USB Host Lite downloaded from NXP web site. Untested! Compiled, dropped on MBED, booted up, and get the console message that it is initializing the stack. I however do not have the ability to connect a USB Memory device to test it.

Dependencies:   mbed

Committer:
mshoemaker
Date:
Wed Jan 13 01:29:30 2010 +0000
Revision:
0:0826fcc5d020

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mshoemaker 0:0826fcc5d020 1 /*
mshoemaker 0:0826fcc5d020 2 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 3 * NXP USB Host Stack
mshoemaker 0:0826fcc5d020 4 *
mshoemaker 0:0826fcc5d020 5 * (c) Copyright 2008, NXP SemiConductors
mshoemaker 0:0826fcc5d020 6 * (c) Copyright 2008, OnChip Technologies LLC
mshoemaker 0:0826fcc5d020 7 * All Rights Reserved
mshoemaker 0:0826fcc5d020 8 *
mshoemaker 0:0826fcc5d020 9 * www.nxp.com
mshoemaker 0:0826fcc5d020 10 * www.onchiptech.com
mshoemaker 0:0826fcc5d020 11 *
mshoemaker 0:0826fcc5d020 12 * File : usbhost_fat.h
mshoemaker 0:0826fcc5d020 13 * Programmer(s) : Ravikanth.P
mshoemaker 0:0826fcc5d020 14 * Version :
mshoemaker 0:0826fcc5d020 15 *
mshoemaker 0:0826fcc5d020 16 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 17 */
mshoemaker 0:0826fcc5d020 18
mshoemaker 0:0826fcc5d020 19 #ifndef USBHOST_FAT_H
mshoemaker 0:0826fcc5d020 20 #define USBHOST_FAT_H
mshoemaker 0:0826fcc5d020 21
mshoemaker 0:0826fcc5d020 22 /*
mshoemaker 0:0826fcc5d020 23 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 24 * INCLUDE HEADER FILES
mshoemaker 0:0826fcc5d020 25 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 26 */
mshoemaker 0:0826fcc5d020 27
mshoemaker 0:0826fcc5d020 28 #include "usbhost_inc.h"
mshoemaker 0:0826fcc5d020 29
mshoemaker 0:0826fcc5d020 30 /*
mshoemaker 0:0826fcc5d020 31 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 32 * FAT DEFINITIONS
mshoemaker 0:0826fcc5d020 33 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 34 */
mshoemaker 0:0826fcc5d020 35
mshoemaker 0:0826fcc5d020 36 #define FAT_16 1
mshoemaker 0:0826fcc5d020 37
mshoemaker 0:0826fcc5d020 38 #define LAST_ENTRY 1
mshoemaker 0:0826fcc5d020 39 #define FREE_ENTRY 2
mshoemaker 0:0826fcc5d020 40 #define LFN_ENTRY 3
mshoemaker 0:0826fcc5d020 41 #define SFN_ENTRY 4
mshoemaker 0:0826fcc5d020 42
mshoemaker 0:0826fcc5d020 43 #define RDONLY 1
mshoemaker 0:0826fcc5d020 44 #define RDWR 2
mshoemaker 0:0826fcc5d020 45
mshoemaker 0:0826fcc5d020 46 /*
mshoemaker 0:0826fcc5d020 47 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 48 * TYPE DEFINITIONS
mshoemaker 0:0826fcc5d020 49 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 50 */
mshoemaker 0:0826fcc5d020 51
mshoemaker 0:0826fcc5d020 52 typedef struct boot_sec {
mshoemaker 0:0826fcc5d020 53 USB_INT32U BootSecOffset; /* Offset of the boot sector from sector 0 */
mshoemaker 0:0826fcc5d020 54 USB_INT16U BytsPerSec; /* Bytes per sector */
mshoemaker 0:0826fcc5d020 55 USB_INT08U SecPerClus; /* Sectors per cluster */
mshoemaker 0:0826fcc5d020 56 USB_INT32U BytsPerClus; /* Bytes per cluster */
mshoemaker 0:0826fcc5d020 57 USB_INT16U RsvdSecCnt; /* Reserved sector count */
mshoemaker 0:0826fcc5d020 58 USB_INT08U NumFATs; /* Number of FAT copies */
mshoemaker 0:0826fcc5d020 59 USB_INT16U RootEntCnt; /* Root entry count */
mshoemaker 0:0826fcc5d020 60 USB_INT16U TotSec16; /* Total sectors in the disk. !=0 if TotSec32 = 0 */
mshoemaker 0:0826fcc5d020 61 USB_INT32U TotSec32; /* Total sectors in the disk. !=0 if TotSec16 = 0 */
mshoemaker 0:0826fcc5d020 62 USB_INT16U FATSz16; /* Sectors occupied by single FAT table */
mshoemaker 0:0826fcc5d020 63 USB_INT08U FATType; /* File system type */
mshoemaker 0:0826fcc5d020 64 USB_INT32U RootDirSec; /* Sectors occupied by root directory */
mshoemaker 0:0826fcc5d020 65 USB_INT32U RootDirStartSec; /* Starting sector of the root directory */
mshoemaker 0:0826fcc5d020 66 USB_INT32U FirstDataSec; /* Starting sector of the first data cluster */
mshoemaker 0:0826fcc5d020 67 } BOOT_SEC;
mshoemaker 0:0826fcc5d020 68
mshoemaker 0:0826fcc5d020 69 typedef struct file_entry {
mshoemaker 0:0826fcc5d020 70 USB_INT32U FileSize; /* Total size of the file */
mshoemaker 0:0826fcc5d020 71 USB_INT16U CurrClus; /* Current cluster of the cluster offset */
mshoemaker 0:0826fcc5d020 72 USB_INT32U CurrClusOffset; /* Current cluster offset */
mshoemaker 0:0826fcc5d020 73 USB_INT32U EntrySec; /* Sector where the file entry is located */
mshoemaker 0:0826fcc5d020 74 USB_INT32U EntrySecOffset; /* Offset in the entry sector from where the file is located */
mshoemaker 0:0826fcc5d020 75 USB_INT08U FileStatus; /* File's open status */
mshoemaker 0:0826fcc5d020 76 } FILE_ENTRY;
mshoemaker 0:0826fcc5d020 77
mshoemaker 0:0826fcc5d020 78 /*
mshoemaker 0:0826fcc5d020 79 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 80 * FUNCTION PROTOTYPES
mshoemaker 0:0826fcc5d020 81 **************************************************************************************************************
mshoemaker 0:0826fcc5d020 82 */
mshoemaker 0:0826fcc5d020 83
mshoemaker 0:0826fcc5d020 84 USB_INT32S FAT_Init (void);
mshoemaker 0:0826fcc5d020 85
mshoemaker 0:0826fcc5d020 86 USB_INT08U FAT_GetFATType (void);
mshoemaker 0:0826fcc5d020 87 void PrintBootSec (void);
mshoemaker 0:0826fcc5d020 88
mshoemaker 0:0826fcc5d020 89 USB_INT32S FILE_Open ( USB_INT08U *file_name,
mshoemaker 0:0826fcc5d020 90 USB_INT08U flags);
mshoemaker 0:0826fcc5d020 91
mshoemaker 0:0826fcc5d020 92 USB_INT32S FAT_FindEntry ( USB_INT08U *ent_name_given,
mshoemaker 0:0826fcc5d020 93 FILE_ENTRY *entry);
mshoemaker 0:0826fcc5d020 94
mshoemaker 0:0826fcc5d020 95 void FAT_GetSFN (volatile USB_INT08U *entry,
mshoemaker 0:0826fcc5d020 96 USB_INT08U *name);
mshoemaker 0:0826fcc5d020 97
mshoemaker 0:0826fcc5d020 98 void FAT_GetSfnName (volatile USB_INT08U *entry,
mshoemaker 0:0826fcc5d020 99 USB_INT08U *name);
mshoemaker 0:0826fcc5d020 100
mshoemaker 0:0826fcc5d020 101 void FAT_GetSfnExt (volatile USB_INT08U *entry,
mshoemaker 0:0826fcc5d020 102 USB_INT08U *ext_ptr);
mshoemaker 0:0826fcc5d020 103
mshoemaker 0:0826fcc5d020 104 USB_INT32S FAT_StrCaseCmp ( USB_INT08U *str1,
mshoemaker 0:0826fcc5d020 105 USB_INT08U *str2);
mshoemaker 0:0826fcc5d020 106
mshoemaker 0:0826fcc5d020 107 USB_INT32U FAT_ChkEntType (volatile USB_INT08U *ent);
mshoemaker 0:0826fcc5d020 108
mshoemaker 0:0826fcc5d020 109 USB_INT32U FAT_ClusRead ( USB_INT16U curr_clus,
mshoemaker 0:0826fcc5d020 110 USB_INT32U clus_offset,
mshoemaker 0:0826fcc5d020 111 volatile USB_INT08U *buffer,
mshoemaker 0:0826fcc5d020 112 USB_INT32U num_bytes);
mshoemaker 0:0826fcc5d020 113
mshoemaker 0:0826fcc5d020 114 USB_INT32U FILE_Read ( USB_INT32S fd,
mshoemaker 0:0826fcc5d020 115 volatile USB_INT08U *buffer,
mshoemaker 0:0826fcc5d020 116 USB_INT32U num_bytes);
mshoemaker 0:0826fcc5d020 117 USB_INT16U FAT_GetNextClus ( USB_INT16U clus_no);
mshoemaker 0:0826fcc5d020 118
mshoemaker 0:0826fcc5d020 119 USB_INT32U FAT_ClusWrite ( USB_INT16U curr_clus,
mshoemaker 0:0826fcc5d020 120 USB_INT32U clus_offset,
mshoemaker 0:0826fcc5d020 121 volatile USB_INT08U *buffer,
mshoemaker 0:0826fcc5d020 122 USB_INT32U num_bytes);
mshoemaker 0:0826fcc5d020 123 USB_INT32U FILE_Write ( USB_INT32S fd,
mshoemaker 0:0826fcc5d020 124 volatile USB_INT08U *buffer,
mshoemaker 0:0826fcc5d020 125 USB_INT32U num_bytes);
mshoemaker 0:0826fcc5d020 126
mshoemaker 0:0826fcc5d020 127 void FAT_UpdateEntry ( FILE_ENTRY *entry);
mshoemaker 0:0826fcc5d020 128
mshoemaker 0:0826fcc5d020 129 void FAT_UpdateFAT ( USB_INT16U curr_clus,
mshoemaker 0:0826fcc5d020 130 USB_INT16U value);
mshoemaker 0:0826fcc5d020 131
mshoemaker 0:0826fcc5d020 132 USB_INT16U FAT_GetFreeClus (void);
mshoemaker 0:0826fcc5d020 133
mshoemaker 0:0826fcc5d020 134 USB_INT32S FAT_GetFreeEntry( FILE_ENTRY *entry);
mshoemaker 0:0826fcc5d020 135
mshoemaker 0:0826fcc5d020 136 void FAT_PutSFN ( USB_INT08U *ent_name_given,
mshoemaker 0:0826fcc5d020 137 FILE_ENTRY *entry);
mshoemaker 0:0826fcc5d020 138
mshoemaker 0:0826fcc5d020 139 USB_INT32S FAT_CreateEntry ( USB_INT08U *ent_name_given,
mshoemaker 0:0826fcc5d020 140 FILE_ENTRY *entry);
mshoemaker 0:0826fcc5d020 141
mshoemaker 0:0826fcc5d020 142 void FILE_Close ( USB_INT32S fd);
mshoemaker 0:0826fcc5d020 143
mshoemaker 0:0826fcc5d020 144 USB_INT16U FAT_GetEndClus ( USB_INT16U clus_no);
mshoemaker 0:0826fcc5d020 145
mshoemaker 0:0826fcc5d020 146 #endif