問題タブ [thumb]

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 に答える
2228 参照

assembly - THUMB プッシュ/ポップ命令

THUMB命令を使用して階乗法を作成しようとしていますが、基本的にはそこにいます。

PUSH/オペコードについて 1 つだけ質問がPOPあります。push (so push {r0}) を使用して r0 の値をスタックに格納した場合、後でそれを使用pop {r1}して引き出すことができますか、それとも最初にあったのと同じレジスタを指定する必要がありますか? ? ご協力いただきありがとうございます。

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

android - Android用のqsort_rはありません(または、ThumbがAndroid ARMコードでCLZを使用するように強制する方法)

私がやりたいこと(高レベル):Androidでqsort_rを使用します。

デフォルトの実装はありません。だから私はBSDから1つを取得しました。残念ながら、Androidでも利用できないfls関数が必要です。そこで、Apple Open Source Libcライブラリを入手し、ARM実装をインラインアセンブリにコピーしました。今私はこれを手に入れています:

AFAIRARM-6はThumbモードではサポートしていません。では、この1つのファイルに対して非Thumbモードを強制するにはどうすればよいですか、またはflsで純粋なC実装を使用できますか?

(そして神よ、なぜ私はqsort_rを持つためだけにそのような低レベルをプレイしなければならないのですか...)

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

arm - LPC 1769(cortex m3) Code Red IDE --- g_pfnVectors() at0x0 のソースがありません

スタック PSP を使用してユーザー モードから SVC を呼び出そうとしています。LPC 1769 (cortex m3) でコードをデバッグすると、次のエラーが表示されます------- "g_pfnVectors() at 0x0" のソースがありません 使用している IDE は、LPC 1769 を搭載した CODE RED LPC Xpresso です。アーティスト。

ここにアセンブリコードがあります

SVC 内で、スタック チェックを行い、対応する関数を呼び出してコンソールに出力します。SVC コードは次のとおりです。

printhex/printcaharaacter/printdecimal は、それぞれの値をコンソールに出力するための関数です。

シングル ステップ モードのデバッグ中、SVC 命令の後に、 No source available for "g_pfnVectors() at 0x0" というエラーが発生します。

エラーの原因と到着はまったく予想外です。gdb デバッガーに問題がありますか、それともコードの解釈方法が間違っていますか?

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

objective-c - Xcode4.6非Thumbアーキテクチャのコンパイル

私は、Thumb命令セット(armv6またはarmv7)用にコンパイルされないようにXcodeでプロジェクトをビルドしました。armv7で設定されたThumb命令をコンパイルしないことは最適ではないことは知っていますが、クライアントの要求には応えています。

lib.aファイルと.hファイルで構成されるビルドをテストして、実際にThumb命令セットなしでビルドされたかどうかを確認する方法を知っている人はいますか?

念のため、GCC_THUMB_SUPPORTのユーザー定義のビルド設定を追加し、その値をNOに設定しました。さらに、ビルド設定のOTHER_CFLAGSに-mno-thumbを追加しました。

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

encoding - ARMv7 の 1 つの命令に複数のエンコーディングがあるのはなぜですか?

現在、ARMv7 命令セットを実装する ARM Cortex A9 用の逆アセンブラを実装しようとしています。

そのために、ここからダウンロードできるマニュアル「DDI0406C_b_arm_architecture_reference_manual.pdf」を使用しています(arm Webサイトに登録した後):

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html

このマニュアルでは、命令の詳細を含む A8.8 の部分で、1 つの命令に対して複数のエンコーディング (A1、A2 など) があり、すべてが ARMv7 で実装されているように見える理由がわかりません。

また、ARM Cortex A9 は Thumb-2 を使用していたため、A1/A2/... エンコーディングも実装していますか、それとも T1/T2... のみを実装していますか?

このマニュアルのすべての部分がエンコーディングに関連していることを本当に読みましたが、どのエンコーディングがプログラムに使用されているかを知る方法をまだ理解していません。

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

c - ARM-C インターワーキング

ARM-C インターワーキング用の簡単なプログラムを試しています。コードは次のとおりです。

アセンブリファイルは次のようになります-

LPC1769 (エンベデッド アーティスト ボード) でのデバッグ中に、「result=Start()」命令でハードフォールト エラーが発生しました。上記のステートメント (result=Start()) の実行中の lr 値は 0x0000029F で、ここでフォルト命令は、pc 値は 0x0000029E です。これは、r1でフォールト命令を取得した方法です

誰かが私がどこで間違っているのか説明してもらえますか? どんな解決策でも大歓迎です。前もって感謝します。

私はcortex-m3の初心者で、Code_Redを搭載したNXP LPCXpresso IDEを使用しています。これが私のコードの分解です。

Dwelch さんのアドバイスに従って、r10 を r3 に変更しました。

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

gcc - gcc インライン アセンブリを使用した Cortex m3 svc

svc # を c コードにしたいと思っています。これで、アセンブリを使用して svc の値を取得できます。

しかし、C コードのインライン アセンブリに変換したいと考えています。しかし、ローカル変数などによる関数エントリによってspが変更されることがわかりました。問題を解決することは可能ですか?ありがとう

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

ios - 実行時に iOS で VFP/NEON/Thumb/... を検出する方法はありますか?

そのため、iOS デバイスが実行している CPU の種類を調べるのはかなり簡単sysctlbyname("hw.cpusubtype", ...)ですが、CPU が実際にどのような機能を持っているか (VFP、NEON、Thumb などを考えてください) を調べる明確な方法はないようです。誰かがこれを行う方法を考えることができますか?

基本的に、私が必要としているのgetauxval(AT_HWCAP)は Linux/Android と同様のもので、CPU がサポートする機能のビット マスクを返します。

注意すべき点がいくつかあります。

  1. この情報は、実行時に OS から取得する必要があります。プリプロセッサが定義されていません。
  2. ファット バイナリは解決策ではありません。ARM v6バイナリでこのことを本当に知る必要があります。

前もって感謝します!