The Mass Storage Library is available on devices from:

Mass Storage Library

The CrossWorks Mass Storage Library enables your embedded device to read, and optionally write, files on FAT-formatted media. If you need to log data, read and write configuration files, or serve dynamic media, you might want to consider using low-cost microSD cards in your project. These are cheap, readily available, removable, and are easily interfaced using an SPI port.


The Mass Storage Library integrates seamlessly with other CrossWorks Technology Libraries, and together with the TCP/IP Network Library you can store store content for an HTTP server.

Adding mass storage is easy!

You can add mass storage capabilities to your application by attaching an SD card to a (shared) SPI bus with a single device select signal. CrossWorks Technology Libraries make this even easier when you use the Device Library because all the necessary low-level SPI drivers that take care of the physical later are already written. Combine the SPI driver with the the Mass Storage library's SPI-based SD and MMC driver, and you're ready to go!

Silicon support

Many silicon vendors have taken steps to add special SD and SDIO media interfaces onto their onto their devices. We have supported all major Cortex-M devices that have Media Card Interfaces (MCI) and integrated that into popular CrossWorks Board Support Packages.

Many devices from different silicon vendors use the same base IP: PrimeCell MCI controller from ARM. Drivers for PrimeCell MCIs are provided, and used, within the CrossWorks Mass Storage library, including some with vendor-added extensions. So, even if your device doesn't have a specific CrossWorks Board Support Package, it's usually very simple to use what's already provided to get your device running!


We have ported the Mass Storage Library to a number of evaluation boards with our Board Support Packages. You'll find a list of read-to-run target boards if you open the Package Used By fold in the Package Details panel here.

There are, however, some limits imposed by the evaluation package:

  • At most one file may be open at any one time.
  • A sign-on message is written to the Debug Terminal indicating that the library is for evaluation only.

We feel that these restrictions give you enough functionality to evaluate our offering. Indeed, you can compile and run the real-world network-enabled CoreBASIC interpreter on targets that have enough memory to run this rather substantial application. However, if you feel that you require a more in-depth evaluation of our product, please contact us to discuss how we can help you with this.

Source code option

We understand the some customers need to account for what goes into their devices and others may simply want the security of having source code to look at and trace through. If you are uncomfortable relying on a set of object code libraries, you can purchase a license to the CrossWorks Mass Storage source code.