MYC-YT113i核心板及开发板
真正的国产核心板,100%国产物料认证
https://github.com/nihui/ruapu
ruapu单个文件探测CPU指令集信息
ruapu通过执行特定扩展指令,捕获CPU非法指令异常,判断当前CPU是否支持某扩展指令集
这里尝试使用 MYIR-ALLWINNER-toolchain 工具链的编译器直接编译 ruapu 测试工具
armv7 架构的编译分为 thumb 模式和 arm 模式,默认是 thumb 模式
通过 -marm
编译参数切换为 arm 模式编译,arm模式下程序二进制体积会稍大,米尔t113-i同时支持运行 thumb 和 arm 模式的程序
不使用 cmake,直接调用 gcc 命令编译出 ruapu 程序
git clone https://github.com/MYIR-ALLWINNER/toolchain MYIR-ALLWINNER-toolchain
export PATH=$PATH:`pwd`/MYIR-ALLWINNER-toolchain/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin
git clone https://github.com/nihui/ruapu
cd ruapu
arm-linux-gnueabi-gcc main.c -O3 -o ruapu-thumb
adb push ruapu-thumb /root/
arm-linux-gnueabi-gcc main.c -O3 -marm -o ruapu-arm
adb push ruapu-arm /root/
使用 adb shell 进入系统,查看cpuinfo的信息,看到 Features 一行是支持的扩展指令集
sh-4.4# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 1
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : Generic DT based system
Revision : 0000
Serial : 0000000000000000
执行 ruapu-thumb 和 ruapu-arm 打印探测到的扩展指令集
看到 thumb 模式下,不支持 vfpv4 和 idiv
vfpv4 增加了 fma 乘法加速,idiv 增加了整数除法,由此可见使用 arm 模式编译能使用更多的指令,在特定任务中会有性能提升
sh-4.4# ./ruapu-thumb
edsp = 1
neon = 1
vfpv4 = 0
idiv = 0
sh-4.4# ./ruapu-arm
edsp = 1
neon = 1
vfpv4 = 1
idiv = 1
更多回帖