問題タブ [eabi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
642 参照

assembly - .size X,.-X のようなコード パターンは何をしますか?

私の質問は、この STM32のような ARM CORTEX M スタートアップ ファイルで見つけた、よく知られているが十分に文書化されていないコードに関するものです。

「パターン」は次のとおりです。

、ここで、X はシンボルまたはラベルです。

私はこの答えを見つけて、 .sizeディレクティブとドット特殊シンボルがどのように機能するかを理解しましたが、それでも完全な行は私には何もしないようです。操作.-Xの結果はどこにも保存されません。

誰かが行が何をするのか説明できますか?

0 投票する
1 に答える
946 参照

linux - ARM C++ クロスコンパイル: 通常のデフォルトのインクルードは利用可能?

arm-none-eabi-gcc/g++ ツールチェーンを使用して ARM Cortex_M7 用のベアメタル C++ を x コンパイルしていますが、正常に動作し、ボード上で適切なファームウェアがフラッシュされます。

現在、「古き良き」C++ ファイルにインクルードしたい場合は、コンパイル エラーのウォーターフォールが発生します (これらは関係ないことがわかっ<mutex>, <queue>, <iostream>...ているので、ここに貼り付けることはしません..)

これらは単に利用できないため、これは予想されることであり、私が今行っているように、人間として行動し、独自のキュー、ミューテックス、... クラスを自分で作成する必要があります (車輪の再発明のように聞こえますが)、それとも私ですか? 「sysroot」がありませんか?しかし...世界中のすべてのARM-Cortex_Mxアーキテクチャにそのようなものはありますか?

私はおそらくこれを読んで、sysroot、std、linuxの間で混乱しており、特定の「sysroot」を含む適切なtoochain(arm-none-linux-gnueabi-g ++?)をダウンロードする必要があるかもしれません(私のすべてのインクルードとライブラリを含む)ターゲット)は、ターゲットが Linux (ベアメタル) で実行されないにもかかわらず、Linux 環境でコンパイルしているためですか?

残念ながら、適切な件名をググることができません (または、ググを間違えましたか?)

説明ありがとうございます!

編集:

  • と を含める際のエラー:

    $~>作る

    CXX obj/src/hot_queue.o

    /usr/arm-none-eabi/include/c++/9.2.0/ext/string_conversions.h:43 からインクルードされたファイルで、

    /usr/arm-none-eabi/include/c++/9.2.0/cstdio:127:11: エラー: '::printf' が宣言されていません

    127 | ::printf; の使用

    | | ^~~~~~

/usr/arm-none-eabi/include/c++/9.2.0/cstdio:134:11: エラー: '::scanf' が宣言されていません 134 | ::scanf; の使用

make: *** [mak/Makefile.sam.in:359: obj/src/hot_queue.o] エラー 1

実際、別の良い例は次のとおりです。今回は g++適切なファイルを見つけます...しかし、コンパイルできません....マクロエラー:

編集:

私のコードに含める:

したがって、ATMEL/Microchip のライブラリ/ドライバからの "printf()" 予約名 ovlerloading の感覚は、標準インクルードの使用を害しています。

0 投票する
0 に答える
159 参照

embedded-linux - Tensorflow lite のビルドが ARM926 プロセッサで失敗する

全て、

ターゲット プロセッサ ARM926EJ-S プロセッサ (ARM5te アーキテクチャ) 用の tensorflow lite をビルドしようとしています。Rasp PI ビルド スクリプトと設定からターゲット プロセッサのビルド スクリプトとビルド設定を複製しました。arm926_makefile.inc のターゲット プロセッサのビルド設定は次のとおりです。

ビルド スクリプトは、多数のファイルを正常にビルドします。しかし、std名前空間のround、atoi、min、maxなどの数学関数について主に文句を言います。私のターゲット プロセッサのツールチェーン バージョンは arm-linux-g++ (Buildroot 2014.08) 4.9.2 です。同じ tensorflow lite は、Pi ツールチェーン バージョン arm-linux-gnueabihf-g++ (GCC) 8.3.0 を使用して正常にビルドされます。

これらの数学関数がツールチェーンで宣言および定義されているのを確認しましたが、tensorflow-lite ビルドによって識別されていません。ところで.. global ::round() を使用してみましたが、多くの場所や他の数学関数も置き換える必要があります。ツールチェーンからこれらの機能を有効にするには、簡単な方法またはいくつかの構成を渡す必要があります。

誰かが ARM926 用の tensorflow-lite をビルドするための正しい方向を教えてくれますか?

ツールチェーンからのビルド エラーは次のとおりです。

ところで、最新の Rasp Pi ツールチェーンを使用して、コンパイル オプション -march=armv5te および -mcpu=arm926ej-s を使用して、ターゲット プロセッサ用の tensorflow lite をビルドしようとしました。ビルドはしますが実行されません - rasp pi ツールチェーンは、ARM926 および ARMv5te CPU アーキテクチャ用の正しいマシン コードを生成しないと思います。

ARM9 プロセッサのこの tensorflow-lite ビルドの問題を解決するための指針やアイデアを歓迎します。

ありがとう、アーム

0 投票する
0 に答える
64 参照

gcc - crosstool-ng の LD は、カーネルのコンパイル中に「ソース オブジェクト a/b/built-in.o には EABI バージョン 5 がありますが、ターゲット b/built-in.o には EABI バージョン 0 があります」と表示されます。

「arm-unknown-eabi」の crosstool-ng を使用して gcc11 クロスコンパイラを作成し、カーネル (msm8974 チップセットのアンドロイド) をコンパイルしましたが、リンクのある時点で、LD は EABI バージョンに関するこのエラーを表示しますが、ターゲット ファイルはさえ存在しません。crosstool ツールチェーンのコンポーネントは次のとおりです。

  • binutils-2.34.tar.xz
  • gcc-git-46a58c77.tar.bz2
  • gettext-0.20.1.tar.xz
  • gmp-6.2.0.tar.xz
  • isl-0.22.tar.xz
  • libiconv-1.16.tar.gz
  • mpc-1.1.0.tar.gz
  • mpfr-4.0.2.tar.xz
  • ncurses-6.2.tar.gz
  • newlib-3.3.0.tar.gz

エラーを与える完全なコマンドは次のとおりです。

  • /root/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld -EL -r -o drivers/gpu/built-in.o drivers/gpu/drm/built-in.o drivers/ gpu/ion/built-in.o
  • /root/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: エラー: ソース オブジェクト drivers/gpu/ion/built-in.o には EABI バージョン 5 がありますが、ターゲット drivers/gpu/built -in.o には EABI バージョン 0 があります
  • /root/x-tools/arm-unknown-eabi/bin/arm-unknown-eabi-ld: ファイル drivers/gpu/ion/built-in.o のターゲット固有のデータをマージできませんでした

これらのファイルを見る:

  • drivers/gpu/built-in.o: 「drivers/gpu/built-in.o」を開けません (そのようなファイルやディレクトリはありません)
  • drivers/gpu/drm/built-in.o: ELF 32 ビット LSB 再配置可能、ARM、バージョン 1 (ARM)、ストリップされていない
  • drivers/gpu/ion/built-in.o: ELF 32 ビット LSB 再配置可能、ARM、EABI5 バージョン 1 (SYSV)、ストリップされていない

実際のターゲット (drivers/gpu/built-in.o) さえ存在しません。DRM のもの (EABI5 として表示されません) は非常に小さいですが (320 バイト、AR によって作成されたと思いますか?) あります。

別のツールチェーンを使用すると、まったく同じカーネル コード、Makefile などですべてがうまくいきます。以前は musl gcc 10 を使用していました。