最近需要在linux内核态上使用到NEON指令集,在网上和书上搜了大量资料,但是关于linux内核使用neon指令的资料不是很多。不过其中一篇文章把内核态中使用neon指令的要点都列出来,也给出了相应的举例说明。链接如下:linux kernel态下使用NEON对算法进行加速 - liuwanpeng - 博客园。我使用时基本上是按照这篇文章来的。
在这里,我就只补充说明一下遇到的问题或注意点。在上面链接文章中,模块代码3.4节,一、Makefile中需要增加相应地编译选项,CFLAGS_MODULE += -O3 -mfpu=neon -mfloat-abi=softfp -ffreestanding ,还有一处需要修改,由于neon代码需要单独编译,需要单独建立c文件,所以需要根据多模块依赖规则写Makefile文件;二、调用neon代码规则需要使用kernel_neon_begin()和kernel_neon_end()函数,直接使用这两个函数时,我这里的编译器汇报隐函数声明错误,遇到这种情况,在模块里提前声明一下就好void kernel_neon_begin()和void kernel_neon_end()。
以上是补充说明的。