Hi, In my project I have some functions that has to be protected against changes. For that reason a checksum has to be calculated on that specific code in runtime, just to prove that the actual code is intact. Those specific functions are built in an own outside project (just to protect it from changes) and downloaded to a dedicated area in the flash. When the standard code wants to access this functionality in the "outside code" an absolute jump is made to the start address of this outside function (0x50000). This seems to go right, in the "outside code" I can set some outputs to light some LEDs, so the jump seems to have gone right. But when I try to use variables in this "outside code" nothing seems to work, I tried to make a while loop to blink a diode and counted a variable down to zero, but the variables seems corrupt. What can be the problem? Can it be something with the memory model that makes references to variables corrupt? I don't know, I'm not so good at memory models. Any Idea, some one ? Regards / Rasmus
I can jump to this code using the function pointer and set some outputs, but when I start using variables something goes wrong. The variables seem to be corrupt. of course, they are. whwn you go between code1 and code2, code1 uses the mamory as its own, then code2 assumes that it is undisturbed HUH? Erik
Erik, I don't have variables that are shared between the two codes. I have exclusively defined a RAM area for the "code 2" that is not used by "code 1" The standard code (code 1) uses RAM space 0x100000 - 0x133FFF and "code 2" uses 0x134000 - 0x137FFF. So when I jump to "code2" and starts executing I have some defined variables in the second RAM space (0x134000 - 0x137FFF). But when I try to access these variables something goes wrong. It seems like it is something with the address references or something… Do you have any idea?