Firefly开源社区

标题: RK3288的VFPv3和ARM官网cortex-a17的VFPv4 [打印本页]

作者: quillan    时间: 2015-1-22 16:13
标题: RK3288的VFPv3和ARM官网cortex-a17的VFPv4
RK3288 datasheet Revision 1.0  May.2014
charpter1  1.2.1  
Include VFP v3 hardware to support single and double-precision add, subtract, divide,
multiply and accumulate, and square root operations

可以看出  集成的是 VFP v3

而arm官网的介绍 cortex-a17 标配是 VFP v4
不知道RK3288选用VFP v3 的理由。
常理的话应该集成neon-vfpv4
cortex-a5,a7,a15,a17,a53,a57  都标配VFP v4
只有a8,a9是vfpv3.

作者: pqy    时间: 2015-1-24 11:11
选用vfpv3? cpu指令集不是包含
swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 evtstrm
这么多指令吗?用什么指令是编译器的事吧?
作者: quillan    时间: 2015-1-25 13:15
编译器当然可以选vfpv4的  但是也要rk3288硬件上支持vfpv4,我的问题是rk3288只支持vfpv3,而没有vfpv4。
作者: csersoft    时间: 2015-1-25 13:24
http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html
瑞芯微官网上说的是RK3288是4核A17.
参考wiki上的词条:
http://en.wikipedia.org/wiki/List_of_ARM_microarchitectures

http://en.wikipedia.org/wiki/ARM_Cortex-A17

都可以发现A17是支VFPv4的,所以RK3288应该是支持VFPv4的


作者: quillan    时间: 2015-1-25 14:07
仔细看我上面的帖子 我说的arm官网说的a17标配是vfpv4。
楼上说的我在帖子里强调了的。

问题是rk3288的数据手册 这个是瑞芯微官方的  说法是vfpv3。

楼上的意思是rk3288是a17 所以一定支持vfpv4。逻辑混乱。
作者: pqy    时间: 2015-1-25 14:08
target thumb C: libcompiler_rt-extras <= external/compiler-rt/lib/mulodi4.c
out/host/linux-x86/bin/clang -I external/compiler-rt -I out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates -I libnativehelper/include/nativehelper  -isystem system/core/include -isystem hardware/libhardware/include -isystem hardware/libhardware_legacy/include -isystem hardware/ril/include -isystem libnativehelper/include -isystem frameworks/native/include -isystem frameworks/native/opengl/include -isystem frameworks/av/include -isystem frameworks/base/include -isystem external/skia/include -isystem out/target/product/rk3288/obj/include -isystem bionic/libc/arch-arm/include -isystem bionic/libc/include -isystem bionic/libstdc++/include -isystem bionic/libc/kernel/common -isystem bionic/libc/kernel/arch-arm -isystem bionic/libm/include -isystem bionic/libm/include/arm -isystem bionic/libthread_db/include -isystem external/clang/lib/include -isystem out/target/product/rk3288/obj/include/clang -c  -fno-exceptions -Wno-multichar -fpic -fPIE -ffunction-sections -fdata-sections -funwind-tables -fstack-protector -Werror=format-security -D_FORTIFY_SOURCE=2 -fno-short-enums -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 -include build/core/combo/include/arch/linux-arm/AndroidConfig.h -I build/core/combo/include/arch/linux-arm/   -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DNDEBUG -g -Wstrict-aliasing=2 -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing    -D__compiler_offsetof=__builtin_offsetof  -target arm-linux-androideabi -nostdlibinc -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/arm-linux-androideabi/bin -mllvm -arm-enable-ehabi    -MD -MF out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.d -o out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.o external/compiler-rt/lib/mulodi4.c
clang: error: the clang compiler does not support '-mfpu=neon-vfpv4'
make: *** [out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/lib/mulodi4.o] 错误 1

作者: quillan    时间: 2015-1-25 14:14
你的clang 编译器不支持neon-vfpv4的优化?

linaro的gcc的release版本 只支持vfpv3。 支持vfpv4的编译器要自己动手编译。
作者: pqy    时间: 2015-1-25 14:27
target SharedLib: libdl (out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so)
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-g++ -nostdlib -Wl,-soname,libdl.so -Wl,--gc-sections -Wl,-shared,-Bsymbolic -Lout/target/product/rk3288/obj/lib out/target/product/rk3288/obj/lib/crtbegin_so.o         out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/libdl.o        -Wl,--whole-archive   -Wl,--no-whole-archive   out/target/product/rk3288/obj/STATIC_LIBRARIES/libcompiler_rt-extras_intermediates/libcompiler_rt-extras.a     -o out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so  -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--icf=safe -Wl,--fix-cortex-a8 -mfloat-abi=hard -mfpu=neon -Wl,--exclude-libs=libgcc.a   /mnt/1/filefly/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/armv7-a/libgcc.a out/target/product/rk3288/obj/lib/crtend_so.o
/mnt/1/filefly/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/libdl.o uses VFP register arguments, output does not
collect2: error: ld returned 1 exit status
make: *** [out/target/product/rk3288/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so] 错误 1

作者: pqy    时间: 2015-1-25 14:29
这两个错误都是我把sdk的代码改为使用neon-vfpv4后出现的。安卓源码自带编译器不支持使用vfpv4吧?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1