This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

using old code rom with new code ram

Hi,

I have a working old code in rom 32k, I added ram code at the upper 32k and I set the hw to start form the new ram at 32k.

I want to address old function from the new ram code without modify the old project.

once I compile the project code the hex output is not the old rom hex with the new ram code.

rather it recompiled the old code to optize it and I have a new hex that is not like the old rom hex with the new additions.

The thinng is that I need to address the old code function (fixed hex in rom).

what can I do?

regards,
dan

Parents
  • How/when do the program jump into RAM?

    there is the clincher.

    with an unchanged ROM, that currently does not call the RAM as you have stated "I have a working old code in rom 32k"
    a) the reset vector will jump to somewhere in the ROM
    b) the ROM will not call the RAM

    so with an unchanged ROM, previously unaware of the RAM it is impossible

    Erik

Reply
  • How/when do the program jump into RAM?

    there is the clincher.

    with an unchanged ROM, that currently does not call the RAM as you have stated "I have a working old code in rom 32k"
    a) the reset vector will jump to somewhere in the ROM
    b) the ROM will not call the RAM

    so with an unchanged ROM, previously unaware of the RAM it is impossible

    Erik

Children
  • Hi,

    As mentioned above, working in ram and using existing code is a new project to decide on.

    The approach is to create a new hex file with only hooks call for used function, then add the lower hex to create a new hex file with both application.

    once done, to start going every register used in the old code needed functions and save it un touched, next to update the asm in the new project to fit.

    Yes it a long way to do manually and in asm ..

    Is there any other creative way to do it ?

    thanks,
    dan

  • In his case, it should be possible, if that original ROM code expected to find code fragments in RAM to replace one or more of the functions in the ROM.

    But it is a conceptually large difference between having a fixed program call a couple of replacement functions, and having the replacement functions becomming the new program and try to call back.

    With two programs, two sets of global variables must be allocated, given initial values, ...

    Next thing is that there will be two sets of CRTL functions for the same operation since the compiler will try to build a new program for stand-alone use. But if there are two copies of the same CRTL function, then there can be huge problems with the state of the two sets of global variables used by the two sets of CRTL functions.

    One things leads to another in an every faster spinning spiral of disaster. Somewhere, one or more people thinks they save time/money by following that spiral.