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

Cortex-M3 unintentionally translates addresses

Hello Folks,

I'm trying to bare-metal debug on a Cortex-M3.
I want to perform simple memory read/write, but the address is translated unintentionally. How can I stop address conversion?

Specifically, although I want to access address 0x22800000, it accesses address 0x20040000. If you read the disassembled code, it looks like you are accessing address 0x22800000.
*Because 0x22800000 is set in the general-purpose register
Displaying Memory View at address 0x22800000 with DS-5 will show the memory status at address 0x20040000.

The MPU settings are as follows. Disabling SCS.MPU.Ctrl does not change the phenomenon.

-----------

SCS.MPU.RegionBaseAddr = ((unsigned int) 0x20000000) | REGION_VALID | 5;
SCS.MPU.RegionAttrSize = FULL_ACCESS | CACHEABLE | BUFFERABLE | REGION_512M | REGION_ENABLED;
SCS.MPU.Ctrl |= 1;"