微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Android的ARM汇编语言系列之六:NEON指令集与VFP指令集

基于Android的ARM汇编语言系列之六:NEON指令集与VFP指令集

时间:11-09 来源:互联网 点击:
章节列表

之一:ARM汇编语言开篇
之二:C/C++程序生成ARM汇编程序的过程分析
之三:ARM汇编语言程序结构
之四:ARM处理器的寻址方式
之五:ARM指令集与Thumb指令集
之六:NEON指令集与VFP指令集

NEON指令集与VFP指令集是ARM指令集的扩展,多用于多媒体编程和浮点运算。

Android平台使用NEON指令集与VFP指令集

Android NDK从r3版本开始也添加了对NEON指令集与VFP指令集的支持。使用方法如下所示:

1 运行时检测处理器是否支持NEON指令集与VFP指令集

Android NDK提供了一个cpufeatures的库来让开发者在运行时检测处理器是否支持NEON指令集与VFP指令集。要使用cpufeatures库,

(1) 首先在Android.mk中添加以下内容:

$(call import-module, android/cpufeatures)

(2) 然后在C/C++代码中包含头文件cpu-features.h文件。该文件包含以下函数。

  • android_getCpuFamily():获取处理器家族信息,对于ARM处理器,该函数始终返回常量值ANDROID_CPU_FAMILY_ARM。
  • android_getCpuFeatures():检测处理器支持的指令集,如果支持NEON指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_NEON标志就会被置位。如果支持VFPv3指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_VFPv3标志就会被置位。
  • android_getCpuCount():获取处理器的核心数。

z只需要在Android.mk添加一下内容即可使用。

TARGET_ARCH_ABI:=armeabi-v7aLOCAL_ARM_:=true


上一篇:数字PID算法
下一篇:深入C51中断向量表

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top