問題タブ [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 投票する
4 に答える
51699 参照

gcc - arm-elf または arm-none-eabi としての arm gcc ツールチェーンの違いは何ですか?

gcc ツールチェーンをビルドする場合、arm-elf または arm-none-eabi としてビルドする可能性がありますが、違いは何ですか?

私は今日eabiを使用していますが、それは他の人がそうしているように見えるからです.

注: このツールチェーンは、stm32 のような Cortex-M3 ベースの mcu:s のコードをクロスコンパイルします。

ありがとう


いくつかのリンク:

えび:

妖精:

0 投票する
3 に答える
23557 参照

android - armeabi および armeabi-v7a フォルダー

私は Android プロジェクトに取り組んでおり、NDK を使用してネイティブ メソッドを呼び出しています。2 つのライブラリ (.so ファイル) があり、1 つはlibs/armeabiフォルダーにあり、もう 1 つはlibs/armeabi-v7alib フォルダーにあります。

アプリケーションを実行しようとすると、/libs/armeabiフォルダーにライブラリが読み込まれません。ライブラリ ファイルをlibs/armeabi-v7aフォルダに移動すると、ライブラリが読み込まれますが、5 ~ 10 分後にクラッシュし、セグメンテーション違反エラーが発生します。

ライブラリの場所 (別のフォルダー) がこの問題を引き起こすのではないかと思っていました。

0 投票する
6 に答える
50154 参照

android - AndroidでのARM EABI v7aシステムイメージの使用は何ですか?

Android 開発で ARM EABI v7a システム イメージは何のために必要ですか? その特定の画像の目的は何ですか?

0 投票する
3 に答える
47435 参照

arm - ARM ABI と EABI の目的は何ですか?

この PDF ( Application Binary Interface for the ARM Architecture: The Base Standard ) を見れば見るほど、その意味がわかりません。また、 Procedure Call Standard for the ARM ArchitectureELF for the ARM Architectureについてコメントをお願いします。

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

gnu - Powerpc gnu eabi レジスタの初期化

codesourcery gnu powerpc eabi lite ツールチェーンを使用してコンパイルし、USB JTAG TAP を使用して powerPC ターゲットにロードする最小限のベア メタル アプリケーションを作成しました。アプリケーションは、ハードウェアの構成と eabi のレジスタのセットアップに使用されるアセンブリ ファイル、無限ループを含む main.c ファイル、リンカー スクリプト、および Makefile から作成されます。

powerpc のスタートアップ コード、eabi のレジスタの初期化、およびリンカー スクリプトを作成するための gnu リンカーに関する多くのドキュメントを見つけたので、詳しく調べてみました。

メインに到達するまで、アプリケーションをコンパイルして実行します。私が抱えている問題は、アセンブリ ルーチンが完了し、rfi が実行されたときに、PC が期待どおりに main() に移行することです。ただし、main の最初の命令 (lis r9, 0) を実行すると、例外 0x700 (無効な命令または fp 例外) が発生します。

アセンブリ ルーチンには当初、L1 データおよび命令キャッシュを無効にして無効にし、L1 命令キャッシュのみを有効にするコードが含まれていました。そのコードの一部が間違っているのではないかと疑って、その多くを削除し、最低限のものだけにしました。

C ランタイムの初期化ステップが欠落している可能性はありますか? 他のアイデアはありますか?事前にご協力いただきありがとうございます。

アセンブリ コードは、次のもののみで構成されるようになりました。

リンカー スクリプトは次のとおりです。

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

qt - Qt Arm リモート デバッグ

私はLPC1768に取り組んでいます。qt Creator で arm-none-eabi-gdb を使用して test_ram.elf ファイルをデバッグしたいと考えています。http://www.yagarto.de/download/yagarto/LPC1768Test.zipからテストするコードをダウンロードしました

残念ながら、リモート デバッグを処理できませんでした。j-link gdbserver を使用してデバッグしたい。

私は試してみました Debug->Start Debugging->Attach to Remote debug server And

上記の設定を行った後、次の警告が表示されました。

タイプ 'unknown-unknown-unknown-unknown-unknown' のバイナリをデバッグするための優先デバッガ エンジンは利用できません。デバッガー エンジン 'Gdb エンジン' がフォールバックとして使用されます。詳細: CDB デバッグ エンジンは、unknown-unknown-unknown-unknown-unknown ABI をサポートしていません。

前もって感謝します

0 投票する
3 に答える
3002 参照

gcc - arm-eabiとarm-elfを混在させることはできますか?

「arm-elf」を生成するコンパイラ(gnuarm GCC 4.1.1)を使用してブートローダーとアプリケーションをコンパイルする製品があります。

ブートローダーとアプリケーションは、リンカースクリプトの異なるフラッシュメモリ領域に分離されています。

このアプリケーションには、ブートローダーを呼び出すことができる機能があります(2つのパラメーターを持つ単純なc関数として)。

世界中の既存の製品をアップグレードできる必要があります。これは、常に同じコンパイラを使用して安全に行うことができます。

ここで、arm-eabiを出力する新しいGCCバージョンを使用してこの製品アプリケーションをコンパイルできるようにしたいと思います。

アプリケーションとブートローダーの両方が同じツールチェーンを使用してコンパイルされる新製品ではすべて問題ありませんが、既存の製品はどうなりますか?GCC 4.6.xとarm-none-eabiでコンパイルされた新しいアプリケーションをフラッシュした場合でも、アプリケーションは古いarm-elfブートローダーからブートローダー関数を呼び出すことができますか?


さらに、上記の質問とは直接関係ありませんが、arm-elfでコンパイルされたオブジェクトファイルをarm-eabiでコンパイルされたバイナリに混合できますか?


編集:

何か違いがあれば、ベアメタルARM7用に構築していることを明確にするのは良いことだと思います...

0 投票する
2 に答える
787 参照

gcc - LinuxカーネルをARM-EABI用にコンパイルしますが、4バイトのラージタイプアラインメントを使用しますか?

デフォルトでは、大きなタイプ(4バイトより大きい)はEABIで8バイトにアラインされます。これは、function(u32, u64)が呼び出されると、u32がにr0なり、u64がとに分割されr2て未使用r3のままになることを意味します。r1

代わりに、コンパイラに4バイトにアラインさせるにはどうすればよいですか?私はこれ(ABIを壊す)などの結果を理解していますが、私は本当に気にしません。カーネル構成でOABIを有効にすると、ARMv7のサポートが無効になるため、OABIの使用を提案しないでください。

4バイトのアラインメントでは、u32は引き続き使用されますr0が、u64はとの間で分割されr1ますr2

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

arm - ARM EABI ツールチェーン

今日、ARM ツールチェーン EABI (クロスコンパイラ) で奇妙な問題に直面しました。

この問題は、浮動小数点値を string に変換するために snwprintf() を使用しようとしたときに、渡した実際の浮動小数点値を持たないジャンク文字列を取得していたことです。

サンプルコードは次のようになります。

その後、snwprintf をデバッグしたところ、可変引数リスト (va_arg) が正確なデータ値を指していないことがわかりました。そして、メモリをダンプすることで、可変引数リストに存在する正確なデータを見つけることができました。va_arg が指すデータが異なります。

統合値が正常に機能しているため、これはエンディアンの問題ではないと思います。問題は double 値のみです。

誰でもこの問題で私を助けることができますか?

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

arm - ARMEABI浮動小数点の問題

私のARM9コードには、varargsを使用するデータ変換関数があります。私は数年前からarm-elfyagartoディストリビューションを問題なく使用しています。最近、yagartoサイトからarm-eabi-none yagartoパッケージにアップグレードしましたが、浮動小数点値に問題があることがわかりました。私が最終的に発見したのは、doubleが8バイト境界に強制されており、既存のvarargs浮動小数点ハンドラーがargsにギャップを見つけることを予期していなかったことです。

ポインタを手動でチェックして、8バイト境界まで強制することはできますが(実際、これを実行すると、問題は完全に修正されました)、なぜこれが突然発生し始めたのかを知りたいです。

スタック上、関数呼び出し、またはそのようなものでデータアライメントを指定するコンパイラスイッチはありますか?また、32ビット(4バイト)アーキテクチャでデフォルトで8バイト境界になっているのはなぜですか?

これらの問題について誰もが提供できるアドバイスや洞察をいただければ幸いです。

コードは単純です:

使用していたGCCのバージョンは4.7.1です。

コンパイルオプション:

ツールチェーンのコンパイルオプション:

アプリケーションコンパイラオプション: