Si4010-C2
80
Rev. 1.0
Note that by using the unified CODE/XDATA memory and by mapping the IRAM to the boot process
address space the user can initialize both XDATA and IRAM variables directly from the
User
NVM load
without the need for running any startup code to do variable initializations, resulting in the saving of a code
size.
One application of the data initialization by a boot process could be copying of keys from the NVM to fixed
locations without any code intervention. The user can program all the chips with the same application in
the factory and then add only a very small, per chip, User block with keys, specifying where to the XDATA
and/or IRAM memories the boot process should copy the values of the keys.
For example, to initialize IRAM location 0x56 to 0xA4 value the user will provide and IntelHEX file specify-
ing that at the address 0x7056 the data value should be 0xA4.
24.10. NVM Programming
The user program/data is stored in the NVM memory in a proprietary form; therefore, the NVM program-
ming can be done only by the Silicon Labs provided composer and programmer utility. The data preparer
will take user generated application IntelHEX files, user settings (see below), and will generate data to be
programmed into the NVM. The NVM programmer then programs the data into the NVM.
During the composing/programming process the user will have control of the following:
1. Make
Factory
part a
User
part .. program User data into the NVM
2. Update
User
part .. add additional User data block to the existing User data already in NVM. This
process can be done many times as long as there is a space in NVM.
3. Make
User
part a
Run
part .. mark a part as a final mission mode part. When making the part a Run
part the user can decide whether the part retest will be allowed and if so, then what protection
restrictions the user is going to impose during the retest process.
These steps can be combined into a single programming step. Step 2. is optional and is convenient when
part specific data needs to be added later to the NVM load.
To support the NVM programming Silicon Labs provides two utilities:
NVM Programming Utility
: The NVM configuration can be easily setup with this Microsoft Windows
based GUI. This application contains both the composer and burner functions. Please check the
application note AN511:NVM Programming User Guide for details
Command Line NVM programming application: This application can be integrated into the customer's
production line. This utility expects a composed NVM content file as an input (created by the NVM
Programming Utility). See the corresponding application note for details.
In addition, 3rd party programmer support is available for high-volume production programming. Silicon
Labs can also program parts directly for customers for high-volume production. Contact your Silicon Labs
representative for more details.