新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Android的ARM匯編語(yǔ)言系列之六:NEON指令集與VFP指令集

基于Android的ARM匯編語(yǔ)言系列之六:NEON指令集與VFP指令集

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
章節(jié)列表

之一:ARM匯編語(yǔ)言開(kāi)篇
之二:C/C++程序生成ARM匯編程序的過(guò)程分析
之三:ARM匯編語(yǔ)言程序結(jié)構(gòu)
之四:ARM處理器的尋址方式
之五:ARM指令集與Thumb指令集
之六:NEON指令集與VFP指令集

本文引用地址:http://m.butianyuan.cn/article/201611/317692.htm

NEON指令集與VFP指令集是ARM指令集的擴(kuò)展,多用于多媒體編程和浮點(diǎn)運(yùn)算。

Android平臺(tái)使用NEON指令集與VFP指令集

Android NDK從r3版本開(kāi)始也添加了對(duì)NEON指令集與VFP指令集的支持。使用方法如下所示:

1 運(yùn)行時(shí)檢測(cè)處理器是否支持NEON指令集與VFP指令集

Android NDK提供了一個(gè)cpufeatures的庫(kù)來(lái)讓開(kāi)發(fā)者在運(yùn)行時(shí)檢測(cè)處理器是否支持NEON指令集與VFP指令集。要使用cpufeatures庫(kù),

(1) 首先在Android.mk中添加以下內(nèi)容:

$(call import-module, android/cpufeatures)

(2) 然后在C/C++代碼中包含頭文件cpu-features.h文件。該文件包含以下函數(shù)。

  • android_getCpuFamily():獲取處理器家族信息,對(duì)于ARM處理器,該函數(shù)始終返回常量值A(chǔ)NDROID_CPU_FAMILY_ARM。
  • android_getCpuFeatures():檢測(cè)處理器支持的指令集,如果支持NEON指令集,則返回的64位數(shù)據(jù)中ANDROID_CPU_ARM_FEATURE_NEON標(biāo)志就會(huì)被置位。如果支持VFPv3指令集,則返回的64位數(shù)據(jù)中ANDROID_CPU_ARM_FEATURE_VFPv3標(biāo)志就會(huì)被置位。
  • android_getCpuCount():獲取處理器的核心數(shù)。

z只需要在Android.mk添加一下內(nèi)容即可使用。

TARGET_ARCH_ABI:=armeabi-v7aLOCAL_ARM_:=true



評(píng)論


技術(shù)專區(qū)

關(guān)閉