Si4010-C2
74
Rev. 1.0
The user code or user development environment need to pay attention to the content of the following vari-
ables. All are stored in big endian fashion (MSB at the lower address):
wBoot_DpramTrimBeg
.. this variable points to the first occupied (by factory data) address of RAM.
Therefore, the user development platform needs to read this variable to determine what the available
RAM area for user CODE/XDATA is.
bBoot_BootStat
.. boot status result. User code should check this value at its beginning. If the value is
different than 0x00 then the user could decide not to run its application since there was a problem with
the boot.
Critical registers and variables corresponding to the NVM programming:
PROT0_CTRL
.. this register, described in SFR Definition 24.4, contains the value of the current
program level of chip. Depending on that value, the NVM programming utility will decide what can and
cannot be programmed into the NVM.
PROT3_CTRL
.. internal byte in the
Factory
region of the NVM controlling the boot process. It contains
all the user code protection bits and modification of the User part boot process.
wBoot_NvmUserBeg
.. address in NVM of the beginning of the
User
load. For programming the User
load into the NVM, the NVM programming utility has to be properly configured by using this value. The
value is read automatically by the NVM programming utility, and also is available through the IDE.
Depending on the size of the
Factory
load the value of this variable can vary in between chip revisions.
It could also vary from chip to chip, but that is unlikely.
wBoot_NvmCopyAddr
.. first unread address of the NVM during boot. This address contains the NVM
address the boot routine would read next. The last byte of the last data block read is at the address that
is one less than the content of this variable: (
wBoot_NvmCopyAddr
) - 1. The NVM programmer will
use this information when additional block
User
data is needed to be programmed. As long as the part
is in a program state
User
additional blocks can be added to the
User
load.