You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am aware that RTX4 code is several years old and no longer supported. I do wonder if any code author could comment on rt_HAL_CM.h's undef of the __USE_EXCLUSIVE_ACCESS macro when a GNU compiler is used:
Was there some property of the GNU compiler toolchain at the time (2016?) such that the ldrex and strex instructions could not be used?
I see in RTX5, namely rtx_core_cm.h, exclusive access IS available when the GNU compiler is used. In fact, toolchain checking is not employed, but rather some 'arch' tests:
"__ldrex" and "__strex" were Arm Compiler 5 Intrinsics and later deprecated (5.06). They are not available for GCC.
Since there was no better handling for exclusive access in RTX4 at that point, it was disabled for GCC.
RTX5 uses assembly for exclusive operations available for Arm Compiler 5/6, GCC and IAR.
Thank you, that makes perfect sense. I was hunting high and low through header files looking for those __ldrex, __strex calls. Now I see why I never found them!
I am aware that RTX4 code is several years old and no longer supported. I do wonder if any code author could comment on rt_HAL_CM.h's undef of the __USE_EXCLUSIVE_ACCESS macro when a GNU compiler is used:
Was there some property of the GNU compiler toolchain at the time (2016?) such that the ldrex and strex instructions could not be used?
I see in RTX5, namely
rtx_core_cm.h
, exclusive access IS available when the GNU compiler is used. In fact, toolchain checking is not employed, but rather some 'arch' tests:The text was updated successfully, but these errors were encountered: