NXP/ST Power Architecture: Target memory access

22-Oct-2024

Various cores within the PowerPC e200 family include an MMU (Memory Management Unit). For these particular cores to be able to access their program space memory, the MMU needs to be configured and TLB (Translation Look aside Buffer) entries have to be created at start-up.

Variables located in memory regions that are not mapped or incorrectly mapped by the MMU, can not be accessed by the MCU internal resources. These variables remain greyed out in the Watch Window and their values appear uninitialized at their virtual location in the Memory Window.


Possible solution

Make sure that the MMU is properly configured and TLB (Translation Look aside Buffer) entries are being created in the start-up code of the application.

1. Check the RESET method option in Hardware | CPU options | Reset. If the option Stop and preset is used, verify that this does not result in skipping the execution of the start-up code.

2. Use the following winIDEA plugins to verify for each core the MMU configuration and the memory mapping of the TLB entries:

  • MMU: Open View | [<device>.COREn].PowerPC | MMU
  • TLB1: Open View | [<device>.COREn].PowerPC | TLB1

3. Set BP after TLB is configured in the startup code for winIDEA to read MAS registers which are used to calculate virtual addresses of variables shown in the Watch window. MAS registers cannot be read in real-time, hence CPU must be stopped.


More resources in winIDEA Help

Was this answer helpful?