2525#ifndef RAMDISK_H_
2626#define RAMDISK_H_
2727
28- #define README_CONTENTS \
29- "This is Adafruit TinyUSB MassStorage device demo on RAM disk."
28+ //--------------------------------------------------------------------+
29+ // LUN 0
30+ //--------------------------------------------------------------------+
31+ #define README0_CONTENTS \
32+ "LUN0: This is tinyusb's MassStorage Class demo.\r\n\r\n\
33+ If you find any bugs or get any questions, feel free to file an\r\n\
34+ issue at github.com/hathach/tinyusb"
3035
31- uint8_t msc_disk [DISK_BLOCK_NUM ][DISK_BLOCK_SIZE ] =
36+ uint8_t msc_disk0 [DISK_BLOCK_NUM ][DISK_BLOCK_SIZE ] =
3237{
3338 //------------- Block0: Boot Sector -------------//
3439 // byte_per_sector = DISK_BLOCK_SIZE; fat12_sector_num_16 = DISK_BLOCK_NUM;
3540 // sector_per_cluster = 1; reserved_sectors = 1;
3641 // fat_num = 1; fat12_root_entry_num = 16;
3742 // sector_per_fat = 1; sector_per_track = 1; head_num = 1; hidden_sectors = 0;
3843 // drive_number = 0x80; media_type = 0xf8; extended_boot_signature = 0x29;
39- // filesystem_type = "FAT12 "; volume_serial_number = 0x1234; volume_label = "TinyUSB MSC ";
44+ // filesystem_type = "FAT12 "; volume_serial_number = 0x1234; volume_label = "TinyUSB 0 ";
4045 // FAT magic code at offset 510-511
4146 {
4247 0xEB , 0x3C , 0x90 , 0x4D , 0x53 , 0x44 , 0x4F , 0x53 , 0x35 , 0x2E , 0x30 , 0x00 , 0x02 , 0x01 , 0x01 , 0x00 ,
4348 0x01 , 0x10 , 0x00 , 0x10 , 0x00 , 0xF8 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
4449 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x29 , 0x34 , 0x12 , 0x00 , 0x00 , 'T' , 'i' , 'n' , 'y' , 'U' ,
45- 'S' , 'B' , ' ' , 'M ' , 'S ' , 'C ' , 0x46 , 0x41 , 0x54 , 0x31 , 0x32 , 0x20 , 0x20 , 0x20 , 0x00 , 0x00 ,
46-
50+ 'S' , 'B' , ' ' , '0 ' , ' ' , ' ' , 0x46 , 0x41 , 0x54 , 0x31 , 0x32 , 0x20 , 0x20 , 0x20 , 0x00 , 0x00 ,
51+
4752 // Zero up to 2 last bytes of FAT magic code
4853 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
4954 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
@@ -71,7 +76,85 @@ uint8_t msc_disk[DISK_BLOCK_NUM][DISK_BLOCK_SIZE] =
7176 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
7277 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
7378 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
74-
79+
80+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
81+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
82+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
83+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x55 , 0xAA
84+ },
85+
86+ //------------- Block1: FAT12 Table -------------//
87+ {
88+ 0xF8 , 0xFF , 0xFF , 0xFF , 0x0F // // first 2 entries must be F8FF, third entry is cluster end of readme file
89+ },
90+
91+ //------------- Block2: Root Directory -------------//
92+ {
93+ // first entry is volume label
94+ 'T' , 'i' , 'n' , 'y' , 'U' , 'S' , 'B' , ' ' , '0' , ' ' , ' ' , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 ,
95+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x4F , 0x6D , 0x65 , 0x43 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
96+ // second entry is readme file
97+ 'R' , 'E' , 'A' , 'D' , 'M' , 'E' , '0' , ' ' , 'T' , 'X' , 'T' , 0x20 , 0x00 , 0xC6 , 0x52 , 0x6D ,
98+ 0x65 , 0x43 , 0x65 , 0x43 , 0x00 , 0x00 , 0x88 , 0x6D , 0x65 , 0x43 , 0x02 , 0x00 ,
99+ sizeof (README0_CONTENTS )- 1 , 0x00 , 0x00 , 0x00 // readme's files size (4 Bytes)
100+ },
101+
102+ //------------- Block3: Readme Content -------------//
103+ README0_CONTENTS
104+ };
105+
106+ //--------------------------------------------------------------------+
107+ // LUN 1
108+ //--------------------------------------------------------------------+
109+ #define README1_CONTENTS \
110+ "LUN1: This is tinyusb's MassStorage Class demo.\r\n\r\n\
111+ If you find any bugs or get any questions, feel free to file an\r\n\
112+ issue at github.com/hathach/tinyusb"
113+
114+ uint8_t msc_disk1 [DISK_BLOCK_NUM ][DISK_BLOCK_SIZE ] =
115+ {
116+ //------------- Block0: Boot Sector -------------//
117+ // byte_per_sector = DISK_BLOCK_SIZE; fat12_sector_num_16 = DISK_BLOCK_NUM;
118+ // sector_per_cluster = 1; reserved_sectors = 1;
119+ // fat_num = 1; fat12_root_entry_num = 16;
120+ // sector_per_fat = 1; sector_per_track = 1; head_num = 1; hidden_sectors = 0;
121+ // drive_number = 0x80; media_type = 0xf8; extended_boot_signature = 0x29;
122+ // filesystem_type = "FAT12 "; volume_serial_number = 0x5678; volume_label = "TinyUSB 1 ";
123+ // FAT magic code at offset 510-511
124+ {
125+ 0xEB , 0x3C , 0x90 , 0x4D , 0x53 , 0x44 , 0x4F , 0x53 , 0x35 , 0x2E , 0x30 , 0x00 , 0x02 , 0x01 , 0x01 , 0x00 ,
126+ 0x01 , 0x10 , 0x00 , 0x10 , 0x00 , 0xF8 , 0x01 , 0x00 , 0x01 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
127+ 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x29 , 0x78 , 0x56 , 0x00 , 0x00 , 'T' , 'i' , 'n' , 'y' , 'U' ,
128+ 'S' , 'B' , ' ' , '1' , ' ' , ' ' , 0x46 , 0x41 , 0x54 , 0x31 , 0x32 , 0x20 , 0x20 , 0x20 , 0x00 , 0x00 ,
129+
130+ // Zero up to 2 last bytes of FAT magic code
131+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
132+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
133+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
134+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
135+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
136+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
137+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
138+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
139+
140+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
141+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
142+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
143+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
144+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
145+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
146+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
147+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
148+
149+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
150+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
151+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
152+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
153+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
154+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
155+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
156+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
157+
75158 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
76159 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
77160 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
@@ -86,16 +169,16 @@ uint8_t msc_disk[DISK_BLOCK_NUM][DISK_BLOCK_SIZE] =
86169 //------------- Block2: Root Directory -------------//
87170 {
88171 // first entry is volume label
89- 'T' , 'i' , 'n' , 'y' , 'U' , 'S' , 'B' , ' ' , 'M ' , 'S ' , 'C ' , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 ,
172+ 'T' , 'i' , 'n' , 'y' , 'U' , 'S' , 'B' , ' ' , '1 ' , ' ' , ' ' , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 ,
90173 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x4F , 0x6D , 0x65 , 0x43 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
91174 // second entry is readme file
92- 'R' , 'E' , 'A' , 'D' , 'M' , 'E' , ' ' , ' ' , 'T' , 'X' , 'T' , 0x20 , 0x00 , 0xC6 , 0x52 , 0x6D ,
175+ 'R' , 'E' , 'A' , 'D' , 'M' , 'E' , '1 ' , ' ' , 'T' , 'X' , 'T' , 0x20 , 0x00 , 0xC6 , 0x52 , 0x6D ,
93176 0x65 , 0x43 , 0x65 , 0x43 , 0x00 , 0x00 , 0x88 , 0x6D , 0x65 , 0x43 , 0x02 , 0x00 ,
94- sizeof (README_CONTENTS )- 1 , 0x00 , 0x00 , 0x00 // readme's files size (4 Bytes)
177+ sizeof (README1_CONTENTS )- 1 , 0x00 , 0x00 , 0x00 // readme's files size (4 Bytes)
95178 },
96179
97180 //------------- Block3: Readme Content -------------//
98- README_CONTENTS
181+ README1_CONTENTS
99182};
100183
101184#endif /* RAMDISK_H_ */
0 commit comments