Hi,
I'm trying to use SROM sections on a XE164 as described in Keil application note APNT_138. The linker does its job relocating the sections (as noted in the listing file (*.m66), but I can't copy the code to RAM because the symbols the linker is supposed to generate apparently don't exist. I get the following linker errors:
linking... *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: _PR_BAGENT_l_ MODULE: .\obj.debug\SROM.obj (SROM) *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: _PR_BAGENT_s_ MODULE: .\obj.debug\SROM.obj (SROM) *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: _PR_BAGENT_t_ MODULE: .\obj.debug\SROM.obj (SROM) [...]
"BAGENT" is the name of my user class. It is located in "User Sections" (uVision 3) as follows:
?PR?[filename]%BAGENT (0xe0f000)[!]
On the XE this location should be in PSRAM.
In "User Classes" SROM is defined as follows:
SROM(0xc90000,0xc9f000)
This should be within the topmost flash module of the XE.
Do I have to define something else to get the linker to generate the symbols?
Ok, found it: The macros take as parameter the name of the module (or file name if not redefined) in the SROM area, not the name of the user class. That's what I had wrong.
Regards, AS