We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi:
We are now using the Ti-CC1110(Originally Chipcon). This MCU have a enhanced 8051 core and an RF modem(433MHz) integrated.
Because some address are mapped out for the RF modem, the 8051 core has NONE regular XDATA address. It is not mapped in address (0X000-0XFFF), but in address (0XF000-0XFDA1). As a programmer for CC1110, we are forced to modify the default XDATA map, otherwise the stack allocation will failed definitely, i.e. functions use the XDATA stack(large mode) will failed.
Then where to modify the default XDATA map?
According to my experience, there maybe THREE ways can achieve this object:
(1) Modify the default STARTUP.A51 file
(2) Modify the Device Manager DataBase of CC1110
(3) Write a project specific linker control file
I can not make sure which way is correct. I have tried method 1 and 2. But no aid at all.
If you need more information please let me informed! Thanks & Best Regards!
If I understand your effort I would suggest number (4). Use the SMALL model and leave the stack in Data/Idata space. Then use the absacc.h macros for absolute access to the XDATA space of your device. Bradford
"Use the SMALL model and leave the stack in Data/Idata space."
Yes.
"use the absacc.h macros for absolute access to the XDATA space"
No - that'd be a nightmare! You'd have to manually allocate absolute addresses to each and every variable in XDATA. Let the tools do it - just tell the Linker the available XDATA address range(s).