This application report provides important guidelines and best practice design techniques to consider when choosing and embedding a serial flash paired with the CC3100/CC3200TM devices. It also describes the file system, along with guidelines and considerations for system designers working with the CC3100/CC3200TM file system.
SimpleLink is a registered trademark of Texas Instruments.
Wi-Fi is a registered trademark of Wi-Fi Alliance.
All other trademarks are the property of their respective owners.
Many embedded systems contain a serial flash component to store firmware, configuration files and user data for usage by a microcontroller/processor. The processor sporadically writes data into this serial flash to update its contents. Inclusion of serial flash memory poses unique challenges for system designers.
Before diving into the file system structure, it is highly important for designers to understand how content is created on the serial flash.
There are several ways for files to be created on the serial flash. Table 1 describes the various options.
Application/Tool | Device State | Content Delivery Channel | Content Type | Package/Example |
---|---|---|---|---|
Uniflash | Bootloader | UART | User, system and configuration files | SimpleLink Wi-Fi CC3100, CC3200 UniFlash User's Guide (SWRU558) |
SimpleLinkTM file system API | Operational | UART/SPI | User files |
|
SimpleLink non file system API | Operational | UART/SPI | System and configuration files | Any SDK example using the SimpleLink host driver |
SimpleLink Device internals | Operational | Device internals | N/A |
As the file system may be used by customers for their own purposes, it is essential to understand the constraints and recommendations so the file system is designed and maintained properly.
The guidelines are:
To make use of the file system to store files, it is essential to be able to accurately calculate the occupied memory space per file. The total occupied size on flash is a function of the file content length (or the maximum size upon creation), file attributes and file system metadata.
Figure 1 describes the process for calculating how much memory is actually consumed on the serial flash.
File Size (bytes) | Page Size | Round to Page | Add Header and Round to Block | Allocated Size via sl_FsGetInfo() |
---|---|---|---|---|
10 | 256 | 256 (1 page) | 4096 (1 block) | 3656 |
250000 | 1024 | 250880 (245 pages) | 253952 (62 blocks) | 253512 |
1000000 | 4096 | 1003520 (245 pages) | 1007616 (246 blocks) | 10007176 |