問題タブ [microprocessors]
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 - ARM ハードウェア スタックを理解していない (IAR を使用)
私は現在 IAR Embedded Workbench を使用して、NXP LPC2378 micro の開発を行っています。CPU がクラッシュし続けるため、IRQ と CSTACK を大きくする必要があるという問題が発生していると思います。これらの領域が周囲のメモリ領域に「流出」することに気付きました。これらのメモリ領域と他のメモリ領域が何に使用されているのか、私は本当に理解していないと思いますか? ISR 用に RAM を予約する RTOS (CMX) を使用していますが、これは別のもののようです。
RTOS を使用している場合に使用される IRQ_STACK、CSTACK、SVC_STACK、FIQ_STACK、UND_STACK、および ABT_STACK は何ですか? またはそれらはまったく別のものですか?
emulation - 命令セットエミュレータガイド
ゲームボーイやその他のハンドヘルド コンソール用のエミュレータを作成することに興味がありますが、最初のステップは命令セットをエミュレートすることであると読みました。ここで、初心者が Commodore 64 8 ビット マイクロプロセッサをエミュレートするようにというリンクを見つけましたが、命令セットのエミュレートについては何も知りません。私は mips の命令セットを知っているので、他の命令セットはなんとか理解できると思いますが、問題はそれらをエミュレートすることの意味です。
注: 誰かが初心者向けの命令セット エミュレーションのステップバイステップ ガイドを提供してくれれば、本当にありがたいです。
注 2: C で書く予定です。
注 3: これは、エミュレーション全体を学習する最初の試みです。
ありがとう
編集:有望と思われるエミュレーターを作成するための詳細なステップバイステップガイドであるこのサイトを見つけました。私はそれを読み始め、エミュレーターの作成を検討している他の人々にも役立つことを願っています.
assembly - シャドウレジスタ-アーム
シャドウレジスタは、割り込みレイテンシを減らすために使用されます。
Armには15個のレジスタがありますが、これらのシャドウレジスタはどこに保存されていますか?
「シャドウレジスタ」という用語は、バンクレジスタと非バンクレジスタに関連していますか?
x86-16 - 'mov cx、[bp + 6]'で使用されるアドレッシングモードは何ですか?
「movcx、[bp + 6]」ではどのアドレッシングモードが使用されていますか?プロセッサはIntel8086です。私はダグラスV.ホールによる「マイクロプロセッサとインターフェース」を研究しています。私はそのメモリアドレッシングモードを知っています。しかし、ベースのアドレッシングモードかインデックスアドレッシングモードかわからないのですか?
memory - 8051 を外部 RAM-EEPROM に接続する
8051 を外部メモリに接続する場合、ソフトウェアで RD 信号と WR 信号を変更する必要がありますか、それとも MOVX コマンドを使用するときにプロセッサ自体によって行われますか?
たとえば、メモリのある場所から読み取ります。
ここでCLR読み取りコマンドが必要か、またはプロセッサがコードが
assembly - 8085 命令コードの MVI 命令のバイナリ コードについて混乱しています。参照してください
レジスタ A (Intel 8085 マイクロプロセッサ) に 32H をロードする命令 MVI A,32H を検討してください。
私の本によると、これは 2 バイトの命令で、最初のバイトがオペコードで、2 番目のバイトがオペランドです。最初のバイトは 0011 1110 (16 進数で 3E) で、2 番目のバイトは 0011 0010 (16 進数で 32) です。
オペコード部分がどのように正確にマシンコードに変換されるかについて、私は混乱しています。つまり...「0011 1110」のどの部分が「MVI」を表し、そのどの部分がレジスタ A がロードされることを示しているのでしょうか? 「3E」はマイクロプロセッサに両方の情報をどのように伝えますか? つまり、データとターゲットレジスタをロードする必要があります。それとも、このオペコード全体が事前定義されており、オペコードで「MVI」と「ターゲットレジスタ」を分離できないということですか?
私の質問が理にかなっていることを願っています笑。
logic - Shift、Rotate、Rotate All: これらは何に使用され、すべて必要なのですか?
私の質問: Rotate All 関数は正確には何に使用され、必要に応じてソフトウェアで別の方法で実装できますか?
なんで?私は、ここで説明されている SAP-2 Simple-As-Possible Computer と同様に、ディスクリート ロジック チップから CPU を構築しようとしています。SAP-2 は Rotate-Left/Right のみを実行でき、キャリーは無視されます。キャリー フラグを利用する関数をいくつか追加したいのですが、設計を過度に複雑にしたくありません。
キャリーで左/右にシフトできる回路がありますが、キャリーですべて回転するのは実装が難しく、両方の機能を持つとさらに複雑になります。現在の動作は次のとおりです。
アキュムレータに CY=1 が含まれている場合 A=0111 0100
次に、キャリー=で左に回転します
CY= 0 A=1110 100 0
または Carry= で右回転
CY= 0 A= 0 011 1010
ご意見をお寄せいただきありがとうございます。
c# - C# で WORD または Nibble を数値として解釈するにはどうすればよいですか?
私は低レベルの開発経験がないので、以下の命令を整数に変換する方法がわかりません...
基本的に、どのIOがアクティブか非アクティブかを知らせるマイクロプロセッサがあります。デバイスに ASCII コマンドを送信すると、デバイスは 15 の I/O のどれが開いているか閉じているかについての WORD で応答します... 指示は次のとおりです。
- ユニットは、DIn0 のみオンの場合は「A0001/」、すべての入力がアクティブの場合は「A????/」と応答します。
- Awxyz/ - w=0 から ? の MSB の上位ニブル ASCII 文字 0001=1、1111=?、z=LSB の下位ニブル。
結局のところ、15(または16?)の入力のうちどれがアクティブかを示す数値に変換できるようにしたいだけです。
15 番目の I/O ポートに何か接続しているのですが、"A8000" という応答が返ってきました。誰かが私のためにこれを片付けてもらえますか?
embedded - 例を通してクロックサイクルが何であるかを理解する試み
クロックサイクルとは何かを完全に理解しようとしているので、誰かに確認または解消して理解を深めてもらいたいテスト例を思いつきました。この単純なコード行、while ループがデバイス上で実行されているとします。
コマンド: int x = 5 はクロック サイクルごとに 1 回実行されますか? つまり、クロック速度は、デバイスが単位時間あたりにコマンドを読み取って実行できる速度ですか?
matlab - マイクロコントローラ用の OpenCV プログラムからの HEX DUMP ? [画像処理]
マイクロコントローラ/マイクロプロセッサ用のOpenCVプログラムからHEX DUMPを取得することは可能ですか? または、MatLab を強くお勧めしますか?
画像処理用。