我用的是手臂皮质M3和皮质M4.我想利用GCC的定点式延拓。我在用召唤手臂的工具链。以下代码行
_Fract f = 0.1;引发以下编译错误:
error: fixed-point types not supported for this targetGCC真的不支持皮质M3/M4的定点类型,还是我在这里遗漏了什么?
发布于 2012-06-14 22:26:21
为了记录在案,我会回答我自己的问题。
TL;DR:在gcc的嵌入式分支中支持ARM Cortex-M/R架构的定点类型扩展(版本4.6及更高版本)。在此基础上,找到了一个基于gcc分支的工具链这里。
长答案
在编写本报告时,https://github.com/esden/summon-arm-toolchain默认下载量为linaro 4.5-2011.02(或者gcc-4.5.2)。它做了,而不是在默认情况下启用了定点类型扩展。我尝试将参数--enable-fixed-point添加到configure,但得到了这个错误描述的编译错误。我尝试使用一个更新的版本(linaro-) gcc,但是调用手臂工具链在应用它自己提供的gcc补丁到这个更新版本时遇到了问题。我也尝试使用这个工具链的开发分支(它使用linaro 4.6-2011.10),但没有成功。看起来,在这一点上,固定点延伸不支持臂皮质-M/R,既不支持linaro- gcc,也不支持gcc的主要分支。
然后我尝试了gcc臂内嵌工具链,它是基于gcc的嵌入式分支。我能够没有问题地编译我的定点类型示例程序,为目标ARM Cortex-M3和Cortex-M4。对Cortex-M/R扩展的支持是在2011年底增加的,就像在这条线上看到的那样。
发布于 2012-06-14 18:10:40
根据GCC维基,您可以在配置--enable-fixed-point时将--enable-fixed-point作为参数传递给GCC,从而启用不动点扩展。
此外,根据gcc 错误和这 one的评论。
目前只支持MIPS目标的定点支持。
https://stackoverflow.com/questions/11005162
复制相似问题