米尔电子
直播中

jf_99374259

2年用户 71经验值
擅长:处理器/DSP
私信 关注

【米尔-全志T113-i开发板试用】使用ruapu探测CPU指令集信息

MYC-YT113i核心板及开发板

真正的国产核心板,100%国产物料认证

  • 国产T113-i处理器配备2*Cortex-A7@1.2GHz ,RISC-V
  • 外置DDR3接口、支持视频编解码器、HiFi4 DSP
  • 接口丰富:视频采集接口、显示器接口、USB2.0 接口、CAN 接口、千兆以太网接口
  • 工业级:-40℃~+85℃、尺寸37mm*39mm
  • 邮票孔+LGA,140+50PIN

ruapu 简介

https://github.com/nihui/ruapu

ruapu单个文件探测CPU指令集信息

图片.png

ruapu通过执行特定扩展指令,捕获CPU非法指令异常,判断当前CPU是否支持某扩展指令集

这里尝试使用 MYIR-ALLWINNER-toolchain 工具链的编译器直接编译 ruapu 测试工具

编译和运行 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

更多回帖

发帖
×
20
完善资料,
赚取积分