問題タブ [gnu-arm]

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 投票する
2 に答える
981 参照

assembly - 10進数から16進数への変換はアセンブリでどのように機能しますか?

10 進数の 12345 が 16 進数の 0x39 0x30 を生成する方法を理解しようとしています。誰でもこれを説明できますか?組み立ての紹介からしばらく経ちました。提案された投稿は少し役に立ちましたが、これがどのように機能するかを示す例はありません。

hword が一度に 16 ビットを処理する場合、12345 はどのように 16 進数の結果を示しますか?

値は64ビットでも同じですか? 0xFFでパディングしただけですか?

@dwelch - ありがとうございます。

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

c - STM32 CubeMX/GNU/Eclipse-Toolchain のリターゲット (newlib および libgloss)

Eclipse CDT 4.5.1 (Mars)、ARM GCC 4.9 2015q3、Liviu Ionescu による GnuArmEclipse-Plugin、OpenOCD 0.9.0、および STM32CubeMX 4.11.0 を使用して、STM32F401C Discovery Board 用の Windows ベースのツールチェーンをセットアップしました。

基本的に、STM32CubeMX を使用して SW4STM32 プロジェクトを生成し、すべてを新しい Cross ARM GCC Eclipse C プロジェクトにインポートし、いくつかのパラメーター (シンボル、CPU タイプ、FPU、リンク ファイル) を調整しました。シンプルな LED 点滅の例が正常にビルドされ、OpenOCD で実行できます。ブレークポイントも機能します。

newlib または newlib nano で必要なシステム コール (たとえば、_sbrkおよび) を提供するために、リンカー オプション_writeを使用して開始しました。--specs=nosys.specsこのようにして、動的メモリ割り当ては問題なく機能します。_writeただし、ディスプレイに印刷したり、UART 経由でデータを送信したりするために、関数を自分で実装したいと考えています。

libgloss では、_write関数に弱いシンボルがあるため、再実装するだけで十分です。私はこれを私のmain.cで行いました:

LED が点滅することを期待していましたが、メイン関数内のトグル コマンドだけが効果を示しました。

書き込み関数が呼び出されないのはなぜですか? 私は何か見落としてますか?

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

gcc - libcをコンパイルするデフォルトでgccをアームする

cygwin に組み込みアーム gcc コンパイラを使用して SDK をコンパイルしようとしています。Makefile ベースの SDK です。私のターゲットは、cortex m3 デバイスです。私の問題は、SDK にはターゲット用のカスタム libc 実装があり、arm コンパイラ (arm-none-eabi-gcc) でコンパイルすると、SDK libc ではなく、gnu arm libc を選択するように見えることです。これにより、コンパイル エラーが発生します。Makefile が正しいことは確かです (これが機能していたコンピューターから SDK 全体をコピーして貼り付けました)。そのコンピューターにアクセスして、設定を確認/比較することはできなくなりました。arm gcc コンパイラが libc の独自の実装を探すのを防ぎ、代わりに正しい実装を指すようにする方法がわかりません。どんな助けでも大歓迎です。

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

eclipse - gdbserver に複数の接続を持つことは可能ですか?

Eclipse CDT と GNU ARM QEMU シミュレーターを使用しています。Eclipse は、QEMU で実行されている独自のgdbセッションを開始します。gdbserverOSX 端末からも接続できるようにして、より細かく制御できるようにしたいと考えています。また、Node.js スクリプトから GDB/MI を使用して、登録ステータスなどの有用なデータを取得し、Web ページで視覚化できるようにしたいと考えています。

独自の gdb セッションで QEMU シミュレーターをスタンドアロンで実行している場合は正常に接続できますが、Eclipse の gdb にピギー バックするか、gdbserver.

ありがとう!


https://sourceware.org/gdb/onlinedocs/gdb/Server.html (20.3.1.2)から:

gdbserver が実行されている場合、gdb は後で再度接続できます。このような再接続は、切断されたトレースなどの機能に役立ちます。完全を期すために、一度に接続できる gdb は 1 つまでです。


これまでのところ、私はそれを理解できず、ドキュメントからは不可能であるようです。

私が現在使用している解決策は、QEMU シミュレーターを端末から手動で実行することです。GNU ARM Eclipse デバッガーgdbserver host:portでは、正常に動作するスタンドアロン QEMU を指すことができる を指定できます。

シミュレートされた gdb セッションを可能にするために、Eclipse に直接接続するのではなく、接続するためのカスタム TCP サーバーを作成できますgdbserver。この TCP サーバーは、Eclipse からのすべてのトラフィックを に転送しgdbserver、このチャネルを介して gdb をリッスンしてメッセージを送信することもできます。

最終的な結果として、通常どおり Eclipse でデバッグしてブレークポイントを設定できるだけでなく、Web インターフェースやネイティブ OSX 端末などを介して任意の方法で gdb とやり取りすることもできます。

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

c - 関数 sscanf を変数に割り当てる必要があります。そうしないと、奇妙な動作になります

次のコードを検討してください。

上記のコードを実行すると、内部のステートメントifによってプログラムがクラッシュします (既定のハンドラーに移動します)。

しかし、2 つの (word_getValueおよび word_ getAddres) 関数を次のように変更すると、次のようになります。

できます。ダミーiがその問題を解決すると思われる場合の追加。しかし、なぜそれが逆に機能しないのでしょうか?

GNU ARM v4.8.3 ツールチェーン

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

macros - GNU アセンブラー: マクロ引数を使用してシンボルを作成する

ラベルを作成するマクロがありますが、ラベルがまだ定義されていない場合にのみラベルを作成したいと考えています。問題は、ラベルがマクロ引数を使用して作成され、アセンブラーがマクロ引数を使用して生成されたシンボルを好まないことです。これは動作しないコードです。ifndef でエラーになります。これを書く他の方法はありますか?

エラー: 行末にジャンクがあります。認識されない最初の文字は `\' です