最近想用zynq7000跑下neon,所以就开始折腾。
因为ne10不能用在裸机上,所以盯上了cmsis_dsp。因为这个库可以在cortex-a和cortex-m上面跑,而zynq7000用的是cortex-a9。应该是可以跑的。在这里特别感谢大佬的文章,少走不少弯路。
ZYNQ移植ARM CMSIS_DSP库-CSDN博客
虽然有朱玉在前,本人还是遇到不少麻烦。记录下来些问题,希望帮到大家,也是为了日后记录。
1 make error87:查了下,貌似是编译的选项太多,而windows有参数限制。对makefile不熟,所以自己的解决方法比较粗暴,排除了几个用不上的文件夹。然后就解决了。这个问题应该是可以通过修改make选项解决的。自己用的文件夹如图:
大家根据自己情况选择啊。反正排除之后没error 87了。
2 error: inlining failed in call to always_inline ‘vxxx’: target specific option mismatch
这个问题比较吐血,在github和csdn上有类似的问题。就是在miscellaneous添加选项
ARM NEON编译错误_inlining failed in call to always_inline 'vaddq_s3-CSDN博客
zynq7000是arm-v7,所以我修改的是-march=armv7-a -marm。还是不通过。
最后的选项是-mfpu=neon-vfpv4。
所以我的miscellaneous 编译选项是:-mcpu=cortex-a9 -mfpu=neon-vfpv4 -mfloat-abi=hard -Wl,-build-id=none -specs=Xilinx.spec -march=armv7-a -marm。
优化选项里面我的optimization:-o2;
附注:
GCC中的NEON相关的编译选项_gcc neon-CSDN博客