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

Can't register.set PC. And getting ERROR(CMM26-TAD17) then.

Hi,

I tried to set PC with register.set like this in my .cmm file.

    register.set PC 0x80000000

But I got error code after sourcing my .cmm script.

- - -

ERROR(CMM26-TAD17):
! Failed to set the register PC(PC) to 0x80000000
! Register PC is an unsupported size (32)

- - -

Why is it an unsupported size?
I can't understand which setting goes wrong?

Thanks.

Parents
  • I guess you are connecting to an Armv8-A (Cortex-Axx) processor.

    On AArch64 processors, the PC is 64-bits wide, but the value 0x80000000 here in your register.set command is being treated as a 32-bit quantity.  You can resolve this by adding an explicit cast, e.g:
    register.set PC (long)0x80000000

    The same applies to the general purpose registers X0-X29, LR & SP.
    By contrast, W0-W30 are 32-bits wide, so you can use, e.g.:
    register.set W0 0x80000000

    Hope this helps

    Stephen

Reply
  • I guess you are connecting to an Armv8-A (Cortex-Axx) processor.

    On AArch64 processors, the PC is 64-bits wide, but the value 0x80000000 here in your register.set command is being treated as a 32-bit quantity.  You can resolve this by adding an explicit cast, e.g:
    register.set PC (long)0x80000000

    The same applies to the general purpose registers X0-X29, LR & SP.
    By contrast, W0-W30 are 32-bits wide, so you can use, e.g.:
    register.set W0 0x80000000

    Hope this helps

    Stephen

Children