Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


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;"

Parents
  • Thank you for your reply.

    I got it. Regarding the parameter name, I would like to inquire from the support menu.

    When I checked the address conversion formula, it matched the bit-banding specification, so it seems that there is no doubt that this function is implemented.

    I would like to close this issue. Thank you for your guidance.

Reply
  • Thank you for your reply.

    I got it. Regarding the parameter name, I would like to inquire from the support menu.

    When I checked the address conversion formula, it matched the bit-banding specification, so it seems that there is no doubt that this function is implemented.

    I would like to close this issue. Thank you for your guidance.

Children
No data