Arm Community
Site
Search
User
Site
Search
User
Support forums
Compilers and Libraries forum
Beware of GNU-ARM compiler for Cortex-M0/M0+/M1
State
Not Answered
Locked
Locked
Replies
3 replies
Subscribers
22 subscribers
Views
11359 views
Users
0 members are here
GCC
Cortex-M
GNU
compilation
Options
Share
More actions
Related
How was your experience today?
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
Beware of GNU-ARM compiler for Cortex-M0/M0+/M1
Miro Samek
over 7 years ago
The popular GNU-ARM toolset has had long-known issues for the Cortex-M0/M0+/M1 (ARMv6-M architecture). Specifically, people have reported very inefficient code generated, see "Cortex M0/M0+/M1/M23 BAD Optimisation in GCC"
https://embdev.net/topic/426508
.
But while so far people reported only inefficient code, I would like to make people aware of *incorrect* code generated by GNU-ARM for Cortex-M0/M0+.
The issue was detected with interrupt disabling and has been documented in a bug report for the QP framework, see
https://sourceforge.net/p/qpc/bugs/184/
. The experiments performed with the latest available GUN-ARM (GNU Tools for ARM Embedded Processors 6-2017-q2-update, 6.3.1 20170620 release) clearly show incorrect code generated at optimization level -O, while the same code compiled at -O2 level seemed to be correct.
Please be careful with GNU-ARM for ARMv6-M architecture and preferably avoid using it for these CPUs as long as the issue remains unresolved.
Miro Samek
state-machine.com
0
Quote