問題タブ [armv6]
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.
iphone - ARMv6、ARMv7、および i386 アーキテクチャ用の f2c をビルドする
ARMv6、ARMv7、および i386 アーキテクチャ用の f2c ライブラリを構築したいと考えています。
このリンクftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/libf2c/README.htmlを見つけましたが、ARM ライブラリを使用すると、Xcode は次の警告を生成します。
「ファイル/Projects/Demo/FortranDemo/libf2c.aを無視します。ファイルは、リンクされているアーキテクチャではないアーカイブ用にビルドされました(armv6)」およびarmv7についても同じです。
誰でもこれで私を助けることができますか?
arm - 割り込みベクタ テーブルの設定、ARMv6
ARMv6 ベア メタル アプリケーションでユーザー モードと SVC を使用しようとしていますが、そのためには、ARMv6 割り込みベクトル テーブルの SVC エントリを設定して、割り込みハンドラに分岐する必要があります。しかし、これを行う方法の良い例を見つけることができません (つまり、どのメモリアドレスを正確に設定する必要があるのか、何に設定する必要があるのか)。私は過去に同様のことをしましたが、常により包括的なブートローダー (RedBoot) を使用して、これらの一部をセットアップしました。どんな助けでも大歓迎です。
以下を使用してアプリケーションをテストしています。
gcc - C、GCC(ベアメタル)からARMアセンブリを呼び出す
ARMでGCCを使用してベアメタルプログラミングを実行し、QEMUでテストしようとしています。CからARMラベルを呼び出すたびに、プログラムがハングします。https://gist.github.com/1654392に問題を示す簡単なコード例があります。そのコードでactivate()を呼び出すと、ハングします。
objdumpを使用して、アセンブリからCコードに(_startからのように)blを実行すると、thumb命令に切り替わる小さなラッパーが生成されることを確認しました。Cコードはすべてthumb命令で生成されているようですが、私のアセンブリはすべてARM(32ビット)命令で生成されています。これがなぜなのか、どうやって修正するのかわかりません。
arm - ARM例外ベクトルを再配置しますか?
ARM例外ベクトルをどのように再配置しますか?
基本的に、ある方法でそれらを再マップできる必要があるため、ARMコアがベクターを実行しようとすると、にあるROMではなく、カーネルのRAMビットに格納されているカスタム例外ベクターを実行する必要があります0x0
。それは可能ですか?それとも、 ROMからカーネルに割り込みをルーティングするつもりですか?
つまり、基本的に、ARMコアに「ベクターテーブルの新しいアドレスはここにあります」と伝える方法はありますか?CPUを高ベクトルモードで起動できることは知っていますが、それは私が探しているものではありません。ベクターベースをカスタムアドレスに動的に設定できる必要があります。
arm - ARM11トランスレーションルックアサイドバッファ(TLB)の使用法?
ARM1176JZF-SコアでTLB(トランスレーションルックアサイドバッファ)テーブルを使用する方法を説明する適切なガイドはありますか?
そのARMプラットフォームの技術文書を調べても、TLBが何であるか、またはどのように見えるかはまだわかりません。私が理解している限り、各TLBエントリは仮想ページを物理ページにマップし、メモリのアクセス許可を再マップおよび制御できるようにします。
それを除けば、私はそれらをどのように使用するかについて全く手がかりがありません。
- TLBエントリにはどのような構造がありますか?新しいエントリを作成するにはどうすればよいですか?
- ユーザースペーススレッドのコンテキストスイッチでVMを処理するにはどうすればよいですか?それらのスレッドが親プロセスに割り当てられた特定のページにのみアクセスできるようにするにはどうすればよいですか(メモリ保護を適用します)。コンテキストごとにTLB状態を保存しますか?
- なぜ2つのTLBがあるのですか?MicroTLBが10エントリしかない場合、何に使用できますか?確かに、10個以上必要です。
- メインTLBの一部の1つは、「ロック可能な8つの要素の完全な連想配列」であると書かれています。それは何ですか?メインTLBのエントリは8つしかありませんか?
前もって感謝します。誰かがTLBとは何かについて説明してくれたら本当にうれしいです。私は現在、カーネルのメモリマッパーに取り組んでおり、ほとんど行き詰まっています。
gcc - libgcc を使用する ARMv6 でベアメタル mod (%) がハングする
ARM ベアメタル プログラムの C コードで % を使用しようとすると、libgcc のラッパーが必要になります。問題ありません。リンクできます。そうすると、リンカは不平を言うのをやめますが、mod の使用時にプログラムがハングします (レジスタを監視すると、実際には不可解な方法で循環を開始します)。% で行をコメントアウトすると、プログラムはこのようにハングしなくなります。これは間違いなく問題です。
https://gist.github.com/1724746で問題の簡単な例を作成しました
以下を使用してテストを実行します。
次に ^ax で終了し、 % 行をコメントアウトすると、出力に期待するバイトが得られますが、そこに行があると、そのような出力は得られません。
ここで何が起こっているのか分かりますか?
編集:私が使用しているクロスコンパイラは、Ubuntuのデフォルトです:https ://launchpad.net/gcc-linaro
ios - Xcode 4.2 + armv6 +リリース=バグ?
問題がどこにあるのかよくわかりませんが、シナリオは次のとおりです。ユニバーサルアプリを3.2とBaseSDKiOS5.0の展開ターゲットに設定しています。プロジェクトはXcode4.2で作成されました。
「デバッグ」と「リリース」にarmv6とarmv7の両方を含めるようにアーキテクチャを設定しました
「アクティブなアーキテクチャのみを構築する」が「いいえ」に設定されている
アプリの開発中に、xとyの値が古いデバイスで正しく出力されないという奇妙なバグに遭遇しました(yは常にxと等しくなります)。
「Info.plist」から「必要なデバイス機能」を削除すると、問題は解決しました。
ただし、実際にアプリをアーカイブして配布しても、問題は解決しないようです。これはどのように説明できますか?他に何を確認できますか?
android - ARM NEON アセンブラ - 使用法と理解
アセンブラと NEON プログラミングは初めてです。私の仕事は、NEON 命令を使用してアルゴリズムの一部を C から ARM アセンブラーに変換することです。このアルゴリズムは int32 配列を取り、この配列からさまざまな値をロードし、ビットシフトと Xor を実行して、結果を別の配列に書き込みます。後で 64 ビット値の配列を使用しますが、今はコードを書き直してみるだけです。
NEON命令に関する私の質問は次のとおりです。
1.) 次のようなレジスタをロードした場合:
メモリから 32 ビットのみをロードするのか、それとも 2x32 ビットをロードして 64 ビットのネオン D レジスタを埋めるのか?
2.) D レジスタの 2/4/8 (i32、i16、i8) 部分にアクセスするにはどうすればよいですか?
3.) オフセットを使用して配列から異なる値を読み込もうとしていますが、うまくいかないようです...何が間違っているのでしょうか...これが私のコードです:(これは整数配列なので、私は'たとえば、オフセットが 64 ビット = 8 バイトの 3 要素をロードしようとしている場合)
ここで、「a」は配列で、「out」は整数へのポインターです (デバッグ用)。
4.) 配列から値をロードした後、右にシフトする必要がありますが、うまくいかないようです:
5.) 必要な 1 バイトだけを取得するために何かをシフト/マスクする必要がないように、Neon レジスタに 1 バイトだけをロードすることは可能ですか?
6.) インライン アセンブラを使用する必要がありますが、最後の行が何のためにあるのかわかりません。
7.) コード例を含む適切な NEON リファレンスを知っていますか?
プログラムは、違いがある場合、Samsung Galaxy S2、cortex-A9 プロセッサで実行する必要があります。助けてくれてありがとう。
- - - - - - - - 編集 - - - - - - - - - -
それが私が見つけたものです:
- 常に完全なレジスタ (64 ビット) をロードします。
- 「vmov」命令を使用して、ネオン レジスタの一部をアーム レジスタに転送できます。
- オフセットはアーム レジスタにある必要があり、メモリ アクセス後にベース アドレスに追加されます。
- それは「破壊された登録リスト」です。入力リストにも出力リストにもない、使用されているすべてのレジスタをここに書き込む必要があります。
ios5 - 既存のアプリ: iOS 4.2 から iOS 5.0 へのアップグレード
iOS5 を使用して、iTunes ストアにあるアプリを書き直しました。
- 元のアプリは、iOS 4.2 以降で armv6 と armv7 をサポートしていました。
- 新しいアプリは、iOS5.0 以降の armv7 のみをサポートしています (iOS5 API は armv7 でのみサポートされているため)。
そこで問題です。一部のユーザーがアップグレードを取得できないことを意味するため、iTunes はアプリのアップグレードを許可しません。エラーメッセージ:
このバンドルは無効です。
UIRequiredDeviceCapabilities
の には、Info.plist
このアプリケーションが以前のバージョンでサポートされていたデバイスでの実行を妨げる値が含まれていない可能性があります。
の値UIRequiredDeviceCapabilities
は armv7 です。armv7 は iOS5 api で必要です。
私は何をしますか?古いアプリをプルして、新しいアプリに置き換えますか? 私の顧客はどうですか?どうすればアップグレードできますか? 回避策はありますか?