問題タブ [arm7]
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.
gcc - ARM7のKeil対GCC?
KeilはARM7開発に関してGCCとどのように比較されますか?私は中規模のプロジェクトにハードウェアコンサルタントを選ぶ過程にあり、一部はkeilを使用し、一部はgccを使用しています。どちらのオプションを使用する場合の落とし穴も知りたいのですが...
vga - ARM7 を使用した VGA ビデオ
AT91SAM7SE512 から VGA 信号を出す必要があります。追加のコントローラーを使用せずにこれを行うにはどうすればよいですか? Web で見たことがありますが、特定のピクセルを変更できる必要があります。
gcc - ARM7 での GPS アプリケーション
ARM7 マイクロプロセッサを使用して、Linux で GPS アプリケーションを開発しています。
どのコンパイラをお勧めしますか? GPS アプリケーションを開発する準備が整ったライブラリを備えたツールキットがあるかどうか知っていますか?
私の友人は gcc をすすめました... 皆さんはどう思いますか?
ありがとうございました
embedded - 外部割り込みを効率的に処理するために、Vector Interrupt Controller (VIC) をどのように使用しますか?
VIC が外部割り込みを効率的に処理する方法を知りたい
embedded - カスタム ARM セットアップへの newlib の移植
これは私の最初の投稿であり、約 1 年間取り組んだりやめたりしようとしてきたことをカバーしています。
基本的には、次のように要約されます: LPC2388 (NXP の ARM7TDMI) で動作させようとしている newlib のコピーがあります。これは、arm-elf-gcc を使用する Linux ボックス上にあります。
私が持っている質問は、newlib の移植について話している多くのチュートリアルを見てきたということです。それらはすべてスタブ (exit、open、read/write、sbrk など) について話しているので、かなり良い考えを持っています。これらすべての機能を実装する方法。しかし、どこに置くべきですか?
私は、sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz から newlib ディストリビューションを入手しました。 arm) には、更新する必要があるすべてのスタブが含まれていますが、それらはすべてかなり完成した外観のコードで埋められています (これは、crt0.S なしでは機能しないようで、それ自体は私のチップでは機能しません)。
これらの関数を自分で一掃して、書き直すべきですか?それとも別の場所に書くべきですか?「アーキテクチャ」の名前で newlib/libc/sys にまったく新しいフォルダーを作成し、ターゲットを一致するように変更する必要がありますか?
このようなものをオープンソースプロジェクトとしてリリースした後、配布する際の適切なエチケットがあるかどうかも興味があります。現在、binutils、arm-elf-gcc、newlib、および gdb をダウンロードしてコンパイルするスクリプトがあります。newlib ディレクトリにあるファイルを変更する場合、スクリプトが自動適用するパッチを渡す必要がありますか? または、変更した newlib をリポジトリに追加する必要がありますか?
わざわざ読んでくれてありがとう!これに続いて、私がやっていることのより詳細な内訳があります。
私のセットアップに関する詳細情報が必要な人のために:
Uzebox プロジェクト ( http://belogic.com/uzebox/ )に大まかに基づいて、ARM ビデオゲーム コンソールを構築しています。
私はそれを理解しようとして、多くの異なるリソースから引き出してあらゆる種類のことをしてきました. ここで私の冒険の始まりについて読むことができます (sparkfun フォーラム、私が自分でそれを理解するので、誰も応答しません): forum.sparkfun.com/viewtopic.php?f=11&t=22072
私は、これらすべてに続いて、newlib の移植に関する Stackoverflow の質問を読み、さまざまなチュートリアル ( wiki.osdev.org/Porting_Newlib など) をいくつか見ましたが、どこに、誰が、何を、いつ、どのように!
assembly - ARM7アセンブラで64ビット値を効率的に右回転させる方法は?
ARM7コマンドセットは、アセンブラで32ビット値を任意の量だけ右回転する効率的な方法を提供します。演算の第2オペランドの場合、シフターオペランドとしてror #nを指定することで「無料」になりますが、64ビット整数の場合、命令セットによる直接サポートは提供されません。1、31、33、または63ビット位置(0または32は言うまでもなく)でローテーションする特殊なケースを除いて、私は4つの命令を使用して64ビット値をローテーションする方法しか知りません(非常に簡単なので、書きませんここにあります)。4つの特殊なケースでは、これを3つの命令に減らすことができますが、一般的にそれを行う方法がわかりません。だからここに私の質問があります:
2つのレジスタ(たとえばR0とR1)に64ビット値がある場合、3つのARM7命令だけでこの値をn位置(任意のnに対して)右回転させることは可能ですか?
assembly - ARM7の組み立てラインを理解しようとしている
私はこの組立ラインを持っています:
PC = 0x01000AD8 の場合
R3 = 0x00000008
CDPS = 800000D3 (つまり、C=0、Z=0)
この行を実行すると、PC の新しい値は (LDRLS を正しく理解している場合*)
PC = 0x01000AD8 + 0x00000008 * 4 = 0x01000AF8
しかし代わりに、結果は 0x00000BAC です
なんで?
この行コードが実行されると、MMU がアクティブになることを追加できます。
PS * 私の研究では LDRLS の「LS」の意味がわかりませんでした...
編集:CPSR値を追加
performance - ARM7 Cortex A8 での浮動小数点ステータス転送
比較があります:
ここで、val0 と val1 は double 変数です。
Apple LLVM コンパイラによって生成されるコードは次のとおりです。
この種の転送を回避する方法はありますか?
[更新] コードは Cortex-A8 プロセッサで実行されています。
assembly - arm7tdmiIRQおよびFIQの優先度
こんにちは私は現在、「ベアメタル」で実行されているAT91SAM7X256を使用しています。私はデータシートとアーキテクチャマニュアルをよく読みました。そのことを念頭に置いて、FIQはIRQよりも優先度が高いため、FIQはIRQに取って代わられるべきではないという結論に達しました。
ただし、実際には、CPSRのFビットに触れていなくても、IRQがFIQハンドラーの実行を一時停止していることに気づいています。IRQにサービスを提供するためにFIQを一時停止すべきではないと想定するのは間違っていますか?
FIQサービスルーチンが中断されないようにするには、何をする必要がありますか?
ありがとうございます
linux - この ARM7 ボードを使い始める
この不良少年は最近ポストに到着しました。しかし、説明書、CD-ROM、開発キットなどはありませんでした。
説明書はありませんが、DS-5、JTAG ケーブル、および組み込み Linux を使用すれば、うまくいくはずです。目標は、小さな Web サーバー/サイトをその上で実行することです。
SEP 4020 ARM7 チップを搭載した UB4020EVB ボードです。JTAG、USB、およびイーサネット接続があります。
誰もが知っていますか?a)OSで起動して実行するために必要なハードウェアキット、およびb)必要な特定のJTAGケーブルがあるかどうか。
どんな助けでも感謝します。
ありがとう!
T