問題タブ [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.
c++ - 組み込み C/C++ 開発の学習に最適な評価キットは何ですか?
ARM アーキテクチャでの組み込み C/C++ 開発を改善しようとしています。最近、68K 開発から ARM に移行したので、余暇を使ってプラットフォームを掘り下げ、特にモバイル プラットフォーム向けの開発に関するベスト プラクティスを学びたいと考えています。
できれば、32 ビット アーキテクチャが開発ツールのサポートに役立ちます。学習プロセス中のちょっとした楽しみは、プラットフォームの理解を深めるかもしれません
embedded - 組み込みシステムのプログラミングに最も適した (最適な) 言語の提案はありますか?
ARM32 プロセッサを搭載した、約 20MHz、6MB RAM のデバイスの組み込みコーディングを検討しています。組み込みシステムのプログラミングに最適/最も適切な言語を提案できる人はいますか? 私は考えています:
- ルア
- TinyPy
- C
- Java ME
- C#
- 誰かが JavaScript を提案しました
助言がありますか?ありがとう
編集 - C と Lua が勝者のようです。乾杯!
編集 - リアルタイムは問題ではありません。RAM/CPU が制限されているためです。
c++ - 組み込み開発における「POR」とはどういう意味ですか?
システムに統合しようとしているサードパーティのデバイスがあり、コードが行うべきことの 1 つは、リセット ピンをアサートしてハードウェア リセットを開始することです。ドキュメントの 1 つは、POR の終了前にピンが解放されると述べています。私はGoogleのビットが私にこれを与えましたが、私が正しいページにいるかどうかを確認して理解したかっただけです.
c++ - C を使用した ARM9 でのアライメントされていないメモリ アクセス例外の回避策は何ですか?
アーキテクチャ ARM9. プログラミング言語 C.
サードパーティのスタックがあり、呼び出しの 1 つがpBuffer
メモリ位置への pointer( ) を取ります。スタック内では、渡されたポインターを自由に移動し、必要に応じてアクセスできます。残念ながら、彼らは渡されたポインターをオフセットし、奇数/一致しないメモリ位置からこれを実行しようとした別の関数にそれを渡しました
wherevalue
は typeuint16
であり、index
境界がチェックされ、indexespBuffer
です。これにより、アラインされていないメモリ アクセス例外が発生します。ヒープ上をpBuffer
指します。char *
前述のように、サードパーティのスタックを覗くことができても、コードを公式に更新することはできません。そのため、プロバイダーに通知し、次のリリースで更新を提供します。
これに対する回避策があるかどうかを理解したいと思います。非整列アクセスに違反せずに上記の割り当てを実行するにはどうすればよいですか? そのような問題を解決するための最良のアプローチは何ですか。
arm - ARM プロセッサのアルゴリズムの MIPS を計算する方法
最近、私たちが開発したアルゴリズムの MIPS (1 秒あたりの命令数) を作成するよう依頼されました。アルゴリズムは、一連の C スタイルの関数によって公開されます。Dell Axim でコードを実行して、さまざまな入力でのパフォーマンスをベンチマークしました。
この質問はハードウェア ベンダーから寄せられたものですが、私は主に HL ソフトウェア開発者であるため、要求にどのように対応すればよいかわかりません。おそらく、同様のハードウェア/ソフトウェアのバックグラウンドを持つ人が助けてくれるでしょう...
私たちのアルゴリズムはリアルタイムではないので、MIPS として定量化する必要はないと思います。組み立て説明書の総数を単純に引用することはできますか?
1 が true の場合、一般的に、または ARM/XScale に特化してこれを行う方法 (つまり、アセンブリ命令の数を測定する方法) を教えてください。
2 は、WM デバイスまたは VS2005 で提供されるデバイス エミュレーター経由で実行できますか?
3 自動化できますか?
どうもありがとうございました。チャールズ
ご助力いただきありがとうございます。S.Lottは釘を打ったと思います。フォローアップとして、さらに質問があります。
5 MIPS の測定方法に関する提案はありますか? MIS を計算するために、アルゴリズムを実行し、それをドライストーン/ホワイトストーン ベンチマークと比較することを提案する人がいると聞きました。
6 アルゴリズムはリアルタイムで実行する必要がないため、MIPS は本当に有用な尺度ですか? (例: factorial(N)) 処理要件を定量化する他の方法は何ですか? (実行時のパフォーマンスは既に測定しましたが、満足のいく結果ではありませんでした。)
7 最後に、MIPS は大雑把な見積もりであり、dep であると仮定します。コンパイラ、最適化設定などについて?
c - C でスレッド間で動的データ転送とメモリ管理を行うにはどうすればよいですか?
プラットフォーム: ARM9
プログラミング言語 C
要件 - プレーン C、外部ライブラリなし、ブーストなし。
OS - REX RTOS
組み込みプラットフォームで 2 つのスレッドを実行しています -
- 1 つは、ハードウェアとのすべての通信とデータ転送を処理するドライバー レベルです。
- 2 番目のスレッドは、ハードウェアとの間のデータを使用するアプリケーションを実行します。
アプリケーション スレッドをドライバー スレッドから切り離すことで、ハードウェアとハードウェア ドライバー スレッドの実装を変更できますが、アプリケーション スレッドへの影響は最小限に抑えることができます。
私の課題は、ハードウェアから受信したデータが動的である可能性があることです。つまり、実行時に決定されるため、アプリケーションスレッドがハードウェアへの/からの各要求に対してどれだけのメモリを確保する必要があるかが事前にわかりません。
私は、ドライバー スレッドがアプリケーション スレッドに、読み取るデータが非常に多いことを通知できると考えていました。次に、アプリケーション スレッドはメモリを割り当て、ドライバー スレッドにデータの読み取りを要求します。それに応じてデータを処理するのは、アプリケーション スレッド次第です。このように、すべてのメモリ管理はアプリケーション スレッド内で行われます。
java - ARM Jazelle の使用経験は?
ARM 用のオープン ソースとクローズド ソースの JVM を評価しています。特に、クローズド ソース JVM は Jazelle (新しい ARM 用の Java アクセラレーション) を利用できます。
この技術の経験はありますか?
(そして、ところで、あなたはそれでどのOSを使用していますか?)
linux - 共有ライブラリからシンボルをエクスポートする方法
Windows ホストで RVDS コンパイラを使用して、オブジェクト コード ファイル (C ソース コード) を使用して共有ライブラリ ( *.so
) を作成しました。*.o
この共有オブジェクトをアプリケーション ( gcc
Linux ホスト上の ARM ターゲットに使用) にリンクし、実行時にセグメンテーション エラーを生成する実行可能ファイルを取得します。(私はそれをデバッグしなければならないことを知っています!)
共有ライブラリを作成する代わりに、同じソース ファイルを使用して静的ライブラリを作成し、アプリケーションとリンクしてアプリケーションを実行すると、期待どおりに動作します。
だから私の質問は:
アプリケーションとリンクしたときに正常に動作するように、いくつかの構成を使用してソース ファイル内のシンボル (アプリケーションにエクスポートされた関数) またはその他のシンボルを明示的にエクスポートする必要がありますか? 何が必要で、どうすればよいですか?
共有ライブラリはどのように機能しますか? つまり、関数がロードされて実行されるアドレスは、ライブラリが作成されたときにライブラリに与えられます。
main()
アプリケーション ( ) は、ライブラリ関数が実行されるアドレスをどのように解決しますか?スタティック ライブラリはどのように機能しますか。つまり、スタティック ライブラリの場合、このアドレス指定と解決はどのように行われるのでしょうか?
c++ - WinCE/Window Mobile 用の RVCT を使用して AMR-nb コーデックをコンパイルする
私は amr 音声コーデック (移植/最適化) に取り組んでいます。voiceage のアーム (WinCE 用) に最適化されたバージョンがあり、パフォーマンス テストの参考として使用しています。これまでのところ、私のライブラリで生成されたバイナリは、他のライブラリよりも約 20 ~ 30% 優れています。私は Vs2008 を使用しており、Microsoft コンパイラで生成できる ARM 命令セットへのアクセスが制限されています。そこで、パフォーマンスの違いが何であるかを確認するために、代替コンパイラを探してみました。RVCT コンパイラがありますが、elf バイナリ/オブジェクト ファイルが生成されます。ただし、Wince 携帯電話 (TyTn 2) でテストを実行しているため、RVCT でコンパイルされたコードを WinCE で実行する方法を見つける必要があります。オプションのいくつかは、1) アセンブリ リストを作成する (armcc の -S オプション)、
私の最初の試みは、エクスポートされた関数を 1 つ含む単純な C++ ファイルを作成し、RVCT でコンパイルしてから、その関数をスマートフォンで実行することです。発行されたアセンブリを ms アセンブラーでアセンブルすることはできません (互換性がないだけでなく、ms アセンブラーは RVCT コンパイラーで生成された命令の一部を拒否します。私の場合は ASR オペコード) 次に、ELF オブジェクトを coff 形式に変換しようとしましたが、それに関する情報が見つかりません。ce 用の gcc ポートがあり、そのツールセットの objcopy がタスクを実行できるはずです。しかし、私はそれを働かせることができません。さまざまなスイッチを試しましたが、入力および出力形式の bfdname として正確に何を指定する必要があるかわかりません。だから、私もそれを機能させることができませんでした。fromelf でダンプして、生成された bin ファイルを使用するのはやり過ぎのようですが、それで、私がやるべきことが何かあるか、または誰かがすでに同様のタスクを行っていて、私を助けることができるかどうか、皆さんに尋ねることにしました。基本的に、コードを RVCT コンパイラでコンパイルして、パフォーマンスの違いを確認するだけです。私のコードは、どの C ランタイム関数にも依存していません。
ありがとう!
iphone - インライン アセンブリ エラー
iPhone のインライン アセンブリを使用しています。デバイス デバッグ モードで作業しています。
指示は次のとおりです。
そして、私はエラーが発生しています:
エラー: tokedn '(' の前に ')' が予期されました エラー: 'asm' 内の不明なレジスタ名 'r'
X コード 3.0 と gcc 4.0 を使用しています。何か案は?