3.1.2.1 Mass Storage Device
The on-board debugger implements a highly optimized variant of the FAT12 file system that has a number of limitations, partly due to the nature of FAT12 itself and optimizations made to fulfill its purpose for its embedded application.
The CURIOSITY drive is USB Chapter 9-compliant as a mass storage device but does not, in any way, fulfill the expectations of a general purpose mass storage device. This behavior is intentional.
The on-board debugger enumerates as a Curiosity Nano USB device that can be found in the disk drives section of the Windows device manager. The CURIOSITY drive appears in the file manager and claims the next available drive letter in the system.
The CURIOSITY drive contains approximately one MB of free space. This does not
reflect the size of the target device’s Flash in any way. When programming a
.hex
file, the binary data are encoded in ASCII with metadata providing
a large overhead, so one MB is a trivially chosen value for disk size.
It is not possible to format the CURIOSITY drive. When programming a file to the target, the filename may appear in the disk directory listing. This is merely the operating system’s view of the directory, which in reality has not been updated. It is not possible to read out the file contents. Removing and replugging the kit will return the file system to its original state, but the target will still contain the application that has been previously programmed.
To erase the target device, copy a text file starting with
“CMD:ERASE
” onto the disk.
By default, the CURIOSITY drive contains several read-only files for generating icons as well as reporting status and linking to further information:
AUTORUN.ICO
- icon file for the Microchip logoAUTORUN.INF
- system file required for Windows Explorer to show the icon fileKIT-INFO.HTM
- redirect to the development board websiteKIT-INFO.TXT
- a text file containing details about the kit firmware, name, serial number, and deviceSTATUS.TXT
- a text file containing the programming status of the board
STATUS.TXT
is dynamically
updated by the on-board debugger, the contents may be cached by the OS and therefore not
reflect the correct status.