A N 3 7 0
6
Rev. 1.0
3.3. CODE/XDATA RAM Reserved Area
Part of CODE/XDATA space at the end of the RAM (highest addresses) is reserved for the ROM API. This area
must not be used by the application. The following diagram gives an outline of the used space. The area used by
the API and other factory settings may change dynamically per chip. The user should read (through Silicon Labs
IDE, for example) the value of the wBoot_DpramTrimBeg variable, which points to the first used address in the
CODE/XDATA RAM. Any location at lower address then the one pointed to by the content of the
wBoot_DpramTrimBeg variable is available for customer user. See the Boot section in the Si4010 data sheet.
Figure 3. CODE/XDTA RAM Organization
Important
: The user application must not overwrite the
Factory and Boot XDATA
region during runtime. There is
no hardware protection of that region, so it is up to the customer discipline not to place any CODE nor XDATA
variables. If that happens, the behavior of the chip becomes unpredictable.
3.4. DATA/IDATA Internal Memory Reserved Area
Portions of the 8051 MCU internal memory are also used by ROM API code. The following diagram shows DATA
and IDATA used by ROM API code. The provided file
si4010_link.c
must be compiled and link with the
application. The file contains dummy arrays at fixed addresses to notify the linker not to put any data into the
reserved regions.
The user must set the stack pointer such that the stack will never overwrite the reserved regions.
Boot_AfterTrimExe
Boot_PatchExe
R
es
er
ved
Boot XDA
T
A
0x0000
Factory
XDATA
bBoot_BootStat
wBoot_NvmCopyAddr
wBoot_NvmUserBeg
wBoot_DpramTrimBeg
User
CODE/
XDATA
0x11FF
0x11FD
0x11F3
0x11F5
CODE/XDATA
RAM 4.5KB
0x11F7