Variable is changing, but Real-time Memory access still shows the initial value. In this case the variable may be cached, which makes Real-time Memory access impossible.
Note that using any of these solutions may change the behaviour of your application.
You'll be able to see the correct values in the Watch Window.
Use this option if you cannot change the code but need to do some investigations or testing. It disables the data caching per core:
1. Disable ENDINIT protection via an initialization file. SFRs are ENDINIT protected via SCU_WEDCPU<core number>CON0.
2. Perform Debug Download.
3. Use SFR from the CPU group called CPU<core number>_DCON0.
This solution describes an use case if Data cache is enabled and active. It is not meant to enable it from scratch by setting a bit in SFR.
Debug interface on Tricore supports only real memory reads via Cerberus, which means that the debugger can only read the real memory, not what is inside the cache. To read the content of cache, CPU provides a dedicated instruction - CACHEA.W.
On some architectures (i.e. ARM Cortex, NXP/ST Power Architecture) it is possible to insert and execute an instruction. This is called instruction stuffing. However, TriCore debug interface does not support instruction stuffing, therefore CACHEA.W instruction can be executed by CPU only.
Sorry this article didn't answer your question, we'd love to hear how we can improve it.
Note: This form won't submit a case. We'll just use it to make this article better.