Storage medium in an embedded application needs to be thought about differently to a mobile or desktop system. In a battery powered system, it’s rare to abruptly loose power and normally a low battery will be indicated to the operating system before a critical state is reached. The Operating System (O/S) will then put the device into a safe state before a complete loss of power occurs.
In a desktop system, the O/S, will likely enter a sleep or hibernation state if unattended for a long period of time and only occasional power loss is expected. Embedded systems need to be designed such that any unexpected power loss is to be expected and won’t cause corruption to the operating system or loss of data from the application software running on the device.
This can be achieved in a number of ways :-
- Ensure any application software does not cache when writing to the file system.
- Turn off any O/S write caching (on Windows this is controlled via Device Manager).
- Ensure the Operating System is protected. With Windows 10 this is achieved by using the Unified Write Filter (UWF) which redirects data writes to a virtual overlay that is erased on a reboot.
- Ensure that your storage medium has built in Power Loss Protection. SSD’s often incorporate a RAM buffer into which data and the SSD’s mapping tables are held when the system is powered. In the event of any unexpected power loss, the data in the RAM buffer needs to be written to flash, else the SSD could become corrupted and result in partial or complete loss of data. This is often accomplished on the SSD by incorporating a bank of power capacitors which will hold up the power supply long enough for any data in RAM to be written to the flash memory.
BVM can help advise you on specifying the best storage medium for your application. Additionally, we can provide customised Operating System images that are setup to ensure that any unexpected power failures do not impact the operation of your application.
Come and talk us; we like to make your life easier.