I need to locate a large number of functions in the a specific memory range. I have tried using the ?pr?*?myobject wildcard like this:
?PR?*?myobject (0XC11200)
(myobject has 3 functions: fxn1,fxn2,fxn3)
all it does is locate the first function and then gives these error messages:
*** ERROR L120: CONTENT BELONGS TO ERRONEOUS SEGMENT SEGMENT: ?PR?fxn2?myobject *** ERROR L120: CONTENT BELONGS TO ERRONEOUS SEGMENT SEGMENT: ?PR?fxn3?myobject
=== is there a better way to do this? can i simply specify a new memory class and assign my new functions to the new class? if so, how do i do this?
"And how were you planning on getting that patch code to be called by the ROM image in the first place?"
the rom application was written with a patch in mind. it checks certain addresses in the eeprom to see if there is a patch. if so, it jumps to a predetermined address in eeprom. This already works and i successfully call into my patch. my problem is the link back. it seems that the compiler/linker determined that i need additional functions in my ?C?LIB_CODE. that's why it grew in size. Now because of this, my patch code is linked to a differently mapped version of the rom code, not identical to the original.
i'm at home now. will look into the "symbols only" option when i get in tomorrow. Thanks for all the help.
Michael, I am very interested in finding out if you could make it work and how you were able to compile/link new version of patch keeping ROM binary exactly the same. I am guessing you would need to pin-down some patchRAM code/data (directly referenced by the ROM) to original addresses used during ROM tapeout.
I have a very similar requirement for my project.
actually, i wasn't able to make the full patch work. i did a simple workaround by isolating what parts of the patch caused the CLIB to enlarge and excluded them from the build. then i worked with what i had left...
I was pressed for time so that was the best solution. if you find a better way to do it, please tell me. thanks. :)