ARM多媒体编程与浮点计算(NEON和VFP)指令集

原创 2013年12月03日 14:50:28

NEON和VFP指令集是ARM指令集的扩展,多用于多媒体编程与浮点计算。从Android原生程序开发包(Android NDK)r3开始,加入了对NEON与VFP指令的支持,如果想使用NEON指令集,需要在Android.mk中加入一行“LOCAL_ARM_NEON:=true",NEON是ARMv7才支持的指令集,因此,还需要配置TARGET_ARCH_ABI的值为armeabi-v7a。尽管如此还是不够,NEON和VFP指令集作为处理器的附加指令,在很多手机设备的处理器中可能是不支持的,为了解决这个问题,Android NDK提供了一个”cpufeatures“库来让开发者在运行是检测处理器的能力,使用”cpufeatures"库的方法首先是在Android.mk中添加”$(call import-module, android/cpufeatures)"然后再C/C++代码包含头文件“cpu-features.h",该头文件中定义了一些结构体和枚举变量,并包含android_getCpuFamily(),android_getCpuFeatures(),android_getCpuCount()三个函数。


android_getCpuFamily()函数用来获取处理器的家族信息,对应ARM架构处理器它始终返回一个常量值:ANDROID_CPU_FAMILY_ARM。


android_getCpuFeatures()函数用来检测处理器支持的指令集,如果处理器支持NEON指令集,则返回的64位数值中ANDROID_CPU_ARM_FEATURE_NEON标志位被置位,如果处理器支持VFPv3指令集,则ANDROID_CPU_ARM_VFPv3被置位。


android_getCpuCount()用来获取处理器的核心数。

读STM32F4xx中文参考手册笔记(序)

读STM32F4xx中文参考手册笔记(序)做了个stm32的项目,用到了串口,spi,ic卡,超高频rfid,wifi等,觉得有必要研究一下中文参考手册,把基础打打牢,把一些个人认为重要的点记录下,并...

Thumb 指令集

Thumb 指令可以看作是ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有16 位的代码密度。Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持ARM 指令...
  • ctwei85
  • ctwei85
  • 2010年03月08日 13:03
  • 2357

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

作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWel...

arm neon指令集说明

  • 2017年08月30日 11:51
  • 12KB
  • 下载

ARM assembly guide(含neon指令集)

  • 2012年06月16日 00:30
  • 1.32MB
  • 下载

ARM和neon指令集

在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。 ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和ar...

ARM NEON 基本指令集介绍

寄存器 ARMV7架构包含: 16个通用寄存器(32bit),R0-R1516个NEON寄存器(128bit),Q0-Q15(同时也可以被视为32个64bit的寄存器,D0-D31) 1...

[C] 跨平台使用Intrinsic函数范例2——使用SSE2、AVX指令集 处理 双精度浮点数组求和

作者:zyl910。   本文面对对SSE等SIMD指令集有一定基础的读者,以双精度浮点数组求和为例演示了如何跨平台使用SSE2、AVX指令集。支持vc、gcc编译器,在Windows、Linux、...
  • zyl910
  • zyl910
  • 2012年10月26日 18:06
  • 3959

[C] 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)

作者:zyl910。   本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个...

[C] 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)

作者:zyl910。   本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个...
  • zyl910
  • zyl910
  • 2012年10月22日 22:28
  • 2988
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARM多媒体编程与浮点计算(NEON和VFP)指令集
举报原因:
原因补充:

(最多只允许输入30个字)