I recently work on Tricore Processor, but I have some problems. With reading memory value. I do not know if I am right or not, but I think a part of flash memory copied to RAM and now in my algorithm used of RAM cell. I have shown Code in below:

ld32.a          a15, [a0]-0x7BA4 ; a0 = 0xD00032E0

As you see, a15 is an address that point to a constant value(store in RAM or FLASH) and a0 is the base address of RAM memory. To calculate a15, I subtract a0 from 0x7BA4 but the result is 0xCFFFB73C. This Address is not a valid address of RAM.
I saw a freaky sentence in Tricore document.(I have shown in below) enter image description here
As you see, A[0] can be protected by user application.
Could it be protected in this case as well?
What is my wrong? What should I do? How can I get the correct value of a15?

  • did you find where a0 is initialized? Maybe it's not 0xD00032E0.
    – Igor Skochinsky
    Commented Dec 22, 2020 at 8:43

1 Answer 1


It seems the address falls into the Scratchpad RAM region, so it’s probably initialized somewhere else. Try to look for references to C4000000 or C8000000, or other occurrences of -0x7BA4 - maybe you’ll find the place where the variable is written to.

Scratchpad RAM memory map

  • ♦ Interesting. I've never given it much thought. I edited my question. Maybe it will help us to solve the problem.
    – Unicornux
    Commented Dec 22, 2020 at 5:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.