Hi RTX developers,
It seems that I have found an issue with Cortex-M3 RTX lib for GNU. In my software, the RTX lib override default Systick Handler but everytime RTX Systick Handler was invoked, it always went to HardFault.
By stepping into HAL_CM3.s in RTX source, I realized that the Sys_Switch was build incorrectly. This function was build as ARM func, not Thumb. My current solution is disable the .global declaration of Sys_Switch, then my software works again. This issue doesnot happen in Cortex M0 lib.
" ... # void PendSV_Handler (void);
.thumb_func .type PendSV_Handler, %function .global PendSV_Handler # .global Sys_Switch PendSV_Handler: .ifdef IFX_XMC4XXX .global PendSV_Handler_Veneer PendSV_Handler_Veneer: .endif .fnstart .cantunwind
BL rt_pop_req ... "
So RTX devs, pls check this issue and confirm it. Since I've already used latest CMSIS RTX on the website and also rebuild it by latest ARM GNU toolchain, version 4.7 2013q1.
Regards Hau