binary compatible with the original Pi, which has no neon support. The
volk code didn't handle this gracefully until recently.
That said, The Pi 3 does support neon and better. For the Pi-3, I'd use
something built to take advantage of the better processor.
Philip
On 05/08/2018 11:08 AM, Brad Hein wrote:
> On a new Raspberry Pi 3, running Raspbian, all apt-get package updates
> loaded, I'm encountering an error compiling gnuradio (branch: master). I
> made one modification from the default source code, and that is the neonasm
> patch to fix a different compile error with a missing instruction on the
> Pi.
>
> Has anybody encountered the ARM mode error mentioned below or know what I
> can do to push past it?
>
>
> $ git diff HEAD~1
> diff --git
> a/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_a_neonasm_opts.s
> b/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_a_neonasm_opts.s
> index e4002b8..37dcd75 100644
> --- a/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_a_neonasm_opts.s
> +++ b/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_a_neonasm_opts.s
> @@ -43,7 +43,12 @@ volk_32f_x2_dot_prod_32f_a_neonasm_opts:
> vadd.f32 s15, s15, s13
> vadd.f32 s15, s15, s14
> bls .done @ if vector is multiple of 16 then finish
> - sbfx r11, r1, #2, #1 @ check alignment
> +@ BH
> https://lists.gnu.org/archive/html/discuss-gnuradio/2016-01/msg00234.html
> +@ sbfx r11, r1, #2, #1 @ check alignment
> + mov r11,#0
> + tst r1,#4
> + movne r11,#15
> +# BH END OF PATCH
> rsb r9, r8, r3
> and r11, r11, #3
> mov r6, r1
>
>
>
> $ cat /etc/debian_version
> 8.0
>
>
> $ uname -a
> Linux redwave 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l
> GNU/Linux
>
> $ gnuradio branch: master (82d0a6b)
> * 82d0a6b -(4 weeks ago) gr-newmod: Pylint fixes in python scripts .
> Swapnil Negi (HEAD, origin/master, origin/HEAD, master)
>
>
>
> Error output follows:
>
> [ 0%] Building C object
> volk/lib/CMakeFiles/volk_obj.dir/volk_machine_neon_hardfp_orc.c.o
> In file included from
> /home/pi/gr/gnuradio/build/volk/lib/volk_machine_neon_hardfp_orc.c:130:0:
> /home/pi/gr/gnuradio/volk/kernels/volk/volk_32fc_s32fc_multiply_32fc.h: In
> function 'volk_32fc_s32fc_multiply_32fc_neon':
> /home/pi/gr/gnuradio/volk/kernels/volk/volk_32fc_s32fc_multiply_32fc.h:282:16:
> warning: unused variable 'cPtr' [-Wunused-variable]
> lv_32fc_t* cPtr = cVector;
> ^
> /tmp/ccWuy8Qj.s: Assembler messages:
> /tmp/ccWuy8Qj.s:7707: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7718: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7725: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7732: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7740: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7747: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7754: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7761: Error: selected processor does not support ARM mode
> `rbit r4,r4'
> /tmp/ccWuy8Qj.s:7789: Error: selected processor does not support ARM mode
> `rbit ip,ip'
> volk/lib/CMakeFiles/volk_obj.dir/build.make:2572: recipe for target
> 'volk/lib/CMakeFiles/volk_obj.dir/volk_machine_neon_hardfp_orc.c.o' failed
> make[2]: ***
> [volk/lib/CMakeFiles/volk_obj.dir/volk_machine_neon_hardfp_orc.c.o] Error 1
> CMakeFiles/Makefile2:178: recipe for target
> 'volk/lib/CMakeFiles/volk_obj.dir/all' failed
> make[1]: *** [volk/lib/CMakeFiles/volk_obj.dir/all] Error 2
> Makefile:160: recipe for target 'all' failed
> make: *** [all] Error 2
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
No comments:
Post a Comment