What is Firmware?

.English Russian Polish  



What is Firmware
Firmware as an Operating System for MP3 players
Firmware files
Other files coming with the Firmware Update package


What is Firmware?

In our case, Firmware could be described shortly as "an Operating System of the MP3 player. It makes possible to use Flash or HDD based device as MP3 Player or/and as USB Mass Storage Device. As an Operating System it controls all I/O executable data processes running inside the chip the player is built on.

In computing, Firmware is software that is embedded in a hardware device. It is often provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user. Firmware is defined as:

1. the computer program in a read-only memory (ROM) integrated circuit (a hardware configuration is usually used to represent the software);

2. the erasable programmable read-only memory (EPROM) chip, whose program may be modified by special external hardware, but not by [a general purpose] application program.

Source: Glossary of Telecommunication Terms is a United States Federal Standard (1037C), issued by the General Services Administration pursuant to the Federal Property and Administrative Services Act of 1949, as amended).

Firmware as an Operating System for MP3 players

As mentioned above, all executable functions, executable I/O data processes are controlled by Firmware. User can access each function of the Player through the Users Interface by sending/execute appropriate command. So, the Operating System of the player consists of functional modules with inter-module communication via messaging, and interrupts processing. Memory management considerations are an integral part of the operating system architecture. The module layer is completely overlaid, such that only a single module is resident in memory at a given time. The menu modules provide project specific user interfaces and control functional operation of the player. The menu module is the only module that is signaled when button inputs are received. The system modules provide a messaging interface with the menus providing system feedback to the user level. In addition there is some amount of messaging between system modules. The rest of the system functions are available in static memory and can be used by any module.

Firmware files

The Structure of the Firmware is based on a logical tree of multi-way dependent files. The firmware files are written to hidden blocks marked with a special code in the NAND redundant area during a firmware update. The host updater will copy the following files to flash when a relevant USB device is detected during update. The files of the Firmware are as follow:


This file is a Loader, which code will determine if USB device is connected and load the appropriate Firmware into RAM. It is not loaded during recovery mode. After bootmanager.sb loads the Firmware into RAM it jumps to the reset vector. All code that is loaded by bootmanager.sb, must have a valid reset vector in order to startup. If not, Firmware update could be successful in terms of proper installation process and its integrity, but device will not work.


This file is loaded by bootmanager.sb when device is not connected at startup. This file contains only the software that interfaces to the native USB Mass Storage drivers on the OS. The usbmsc.sb firmware uses SCSI commands. It operates at the device sector level and does not contain a file system or have any knowledge about files being transferred.


The file is loaded by bootmanager.sb when USB device is not connected at startup. This is actually the player itself, as it contains all system code used by the player. System code is considered to be all functions resident in static memory (not overlays). When USB device is connected during player operation, the device is reset and bootmanager.sb loads usbmsc.sb from flash if USB is still connected when bootmanager.sb executes.


This file contains all code/data overlays, bitmaps used in users interface (e.g. shown on display) and fonts, which are stored in bitmap format as well. Resources loaded into RAM as needed during player operation by SysLoadResource (system code contained in stmpsys.sb).

Other files coming with the Firmware Update package

The rest of the package is a set of supporting files, such as:

1. Installation file (Installer) .EXE - name of particular file can vary;

2. .DLL libraries - resources for particular player and Microsoft Layer for Unicode on Win9x Systems, supporting Installation file;

3. Drivers for player recovery device .INF, .SYS (Generic MP3 Player USB Drivers) - usual, name of each file starts with StMp3Rec (StMp3Rec.sys, StMp3Recx64.inf and so on).

Firmware Update application files are stored in a self-extracting CAB file, which - depending on particular player or Firmware Update version is being extracted to one of following folders:

C:\Documents and Settings\User\Local Settings\Temp\CRF000 or CRF001

C:\Windows\Temp\CRF000 or CRF001


Sign up for PayPal and start accepting credit card payments instantly.

created by LocalizeIT!,  2006