ARM_NEONのCompile設定が分からない。
Petalinux-2016.2、CentOS7です。
HardWare:Microzed
CPUはarm7-cortex9
です。
ARM_NEONを活用しようとしてさっそくつかまりました。
PetalinuxというToolChainはNEONをカバーしてくれていないようです。
Compile対象のmyproc.cが存在するDirectoryにPetalinux内にあった
arm_neon.hというfileをcopyしました。
myproc.cの冒頭に
#include "arm_neon.h"
を挿入したところ次のErrorがでました:
[ALL ] In file included from myproc.c:30:0:
[ALL ] arm_neon.h:31:2: error: #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
[ALL ] #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
確かに
arm_neon.h
の30行目は以下のようになっています:
#ifndef _GCC_ARM_NEON_H #define _GCC_ARM_NEON_H 1 #ifndef __ARM_NEON__ ←30行目 #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h #else>
環境変数__ARM_NEON__が存在しないErrorです。
前もって環境変数の準備が必要なようです。
ToolChainを提供するXilinx社も,以下のように記述しています:
”GCC で NEON イン ト リ ンシクスを コ ンパイルする”
自動ベクトル化を設定して C コードをコンパイルする複雑なオプションとは異なり、NEON 命令のコンパイルは非常に単純で、2、3 のコンパイラ オプションしか必要ありません。
・ -On (デフォルト)。最適化レベルを設定します。
・ -mcpu=cortex-a9。 Zynq-7000 AP SoC のプロセッサ タイプを cortex-a9 に設定します。
• -mfpu=neon。コンパイラに対して、Zynq-7000 AP SoC の NEON 命令を生成するように指示しま
す。
この簡単と思われる環境設定が、質問者の能力では解決に数日かかりそうです。
幼稚な質問で申し訳ありませんが、設定方をお示しいただけると助かります。