This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

no_stm option in ARMCL compilers

Hi George,

Because of the HW bug on TMS570 revA/B, any write to external memory using STMxx instructions will result in a failure on a subsequent write operation. The HW bug has been fixed on revC silicon. 

TI ARMCL compiler 5.1.3 and later versions support a "--no_stm" compile option that prevents generation of STMxx instructions for any writes to memory. One of my customers likes to know:

1. Is this option still supported by the latest ARMCL compilers? for exemple TI v20.2.x. After I added --no_stm option to compiler built flags, I got this warning message. Is this message expected?

2. When --no_stm is used, "no_stm_memcpy" and "no_stm_memset" will be called for memcpy and memset C/C++ functions. Does this mean that only memcpy and memset functions generate STMxx instructions? Is STMxx generated by any other C/C++ functions?

3. The customer said they saw issue when using LDMxx instructions. Is there any way to prevent the ARMCL compiler from generating LDMxx instructions?

  • Is this option still supported by the latest ARMCL compilers?

    Yes

    After I added --no_stm option to compiler built flags, I got this warning message. Is this message expected?

    The warning issued by CCS is expected.

    When --no_stm is used, "no_stm_memcpy" and "no_stm_memset" will be called for memcpy and memset C/C++ functions. Does this mean that only memcpy and memset functions generate STMxx instructions?

    No

    Is STMxx generated by any other C/C++ functions?

    Yes.  But only to preserve registers on the stack.  If the stack is allocated to internal memory, there will be no problems.

    All of that said, it is my understanding that a silicon errata document has all of these details.  I am unable to find that document.  So while I am confident all the information in this post is accurate, I have not confirmed it.

    Is there any way to prevent the ARMCL compiler from generating LDMxx instructions?

    No

    Thanks and regards,

    -George

  • Hi George,

    Thanks for quick response. All my questions have been answered!