问题遇到的现象和发生背景
在STM32CubeIDE中,嵌套饱和运算指令SSAT,但一直编译不通过
问题相关代码,请勿粘贴截图
在c语言代码中嵌套如下的写法
asm ("ssat %0, %1, %2, %3" : "=r" (calibFactor) : "I" (16), "r" (calibFactor), "I" (14));
从keil中移植过来的源代码是 __asm ("SSAT " #calibFactor ", #16, " #calibFactor ", ASR #14" )
运行结果及报错内容
编译报错是 Error: shift expression expected -- `ssat ip,#16,ip,#14'
我的解答思路和尝试过的方法
因为STM32CubeIDE自带的是GCC编译器,但没有找到正确的内嵌写法
假设只做饱和运算__asm__ ("ssat %0, %1, %2" : "=r" (calibFactor) : "I" (16), "r" (calibFactor)); 编译能够通过
我想要达到的结果
我猜测是加入了移位字段后出现了问题,请问各位,该饱和指令在GCC下面正确的写法是什么?