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

STRD ATOMIC?

Hi, I make a software for Cortex-A9 and Cortex-M4 (both uni-processor system).

Question.

Is 64bit-aligned STRD(64bit memory access) atomic ?

(I know tha It is not atomic, but i don't know behavior.)

For example:

LDR R2,=buff

mov R0, #1

mov R1, #2

STRD R0, R1, [R2]

mov R0, #3

mov R1, #4

STRD R0, R1, [R2]   <-  interrupt occerd

handler:

LDR R2,=buff

LDR R0, R1, [R2]  <--- ???

Is[R0,R1] == [#3, #2] may?

If it is, require disable-interrupt between STRD?

Parents
  • Hello,

    regarding your question, I don't know and it is just a guess.

    Is it so important?

    However, STRD can be produced as a form of STM instruction according to a compiler convenience.

    In this case, ICI bit would be used.

    I think the retry sequence of STRD would be the same as STM retry in IT block.

    That is, it is to retry from the beginning.

    If you want STRD not to be interrupted, you may not use STRD but use two STRs.

    Best regards.

    Yasuhiko Koumoto.

Reply
  • Hello,

    regarding your question, I don't know and it is just a guess.

    Is it so important?

    However, STRD can be produced as a form of STM instruction according to a compiler convenience.

    In this case, ICI bit would be used.

    I think the retry sequence of STRD would be the same as STM retry in IT block.

    That is, it is to retry from the beginning.

    If you want STRD not to be interrupted, you may not use STRD but use two STRs.

    Best regards.

    Yasuhiko Koumoto.

Children