Silicon Laboratories Si4010 Software Programming Manual page 19

Hide thumbs Also See for Si4010:
Table of Contents

Advertisement

AN370
in DATA/IDATA memories are fixed.
However, the API routines occupy XDATA area towards the end of the XDATA space. The size of the API
occupied region depends on the trim value and may change from chip to chip, but usually the value will be fixed
for all production parts of the same revision.
At the end of the si4010_link.c file there is a commented out section how to tell the linker that the end of the
CODE/XDATA memory is reserved for API use. The user should read the wBoot_DpramTrimBeg variable to get
the first address of the API occupied location. Anything below that (towards 0x0000) is available for user CODE/
XDATA to use. The user has to look at the content of wBoot_DpramTrimBeg residing at the address 0x11F3.
The variable content is directly accessible from the Silicon Labs IDE:
View  Debug Windows  Si4010  System Vars
It is critical that neither user CODE nor user XDATA will encroach on that space.
For example, the currently shipped version of the chip has the value:
wBoot_DpramTrimBeg = 0x1080
Therefore, as an example, that user needs to reserve 64 bytes (0x40) of the XDATA space for his application
and the rest of the CODE/XDATA memory will be reserved for code. It is recommended to keep the user XDATA
after the CODE as shown in this example:
CODE: 0x0000 .. 0x103F
XDATA: 0x1040 .. 0x107F ... 64 bytes of XDATA just before the API XDATA
The linker directives as in the item 7 above would be as follows:
For Keil BL51: CO(0x0-0x103F) XD(0x1040-0x107F)
For Keil LX51: CLASSES(CODE(C:0x0-C:0x103F), CONST(C:0x0-C:0x103F),
XDATA (X:0x1040-X:0x107F), ... )
Rev. 1.0
19

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Si4010 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Table of Contents