メニュー English Ukrainian ロシア語 ホーム

愛好家や専門家向けの無料テクニカル ライブラリ 無料のテクニカルライブラリ


無線電子工学および電気工学の百科事典
無料のライブラリ / 無線電子および電気機器のスキーム

ROMエミュレータを使用したマイクロコントローラのデバッグ。 無線エレクトロニクスと電気工学の百科事典

無料のテクニカルライブラリ

無線電子工学と電気工学の百科事典 / マイクロコントローラー

記事へのコメント 記事へのコメント

マイクロプロセッサを含む電子デバイスの動作プログラムの開発とデバッグの複雑さによって、その開発全体のコストが決まることがよくあります。メモリと一部の周辺デバイスを統合するマイクロコントローラー (MCU) では、これが特に顕著です。デバッグを大幅に容易にするツールの 1 つは、[XNUMX] で説明されている ROM エミュレータです。この記事では、それを操作するためのテクノロジについて説明します。デバッグ機能は、ここで説明した手法に限定されません。このプロセスは、一般的なデザインと同様、ある程度の芸術です。誰もが同じ楽器で「自分の音楽」を作成します。 MK プログラムをデバッグするための独自のツールと方法を共有してくださった読者に感謝します。

MK ソフトウェアのデバッグ プロセスの複雑さと労力は、次の要因によって決まります [2]。

  • システムのソフトウェア部分とハードウェア部分の間の強力な相互接続。
  • MK の内部リソースとコントロール ポイントに直接アクセスできない。
  • 時間的に複雑に分布する信号のマルチビットの性質。
  • システム内の信号の繰り返しの非周期性または非常に低い頻度。
  • さまざまな外部デバイスと、それらと情報を交換するためのプロトコル。

従来のテスト機器 (オシロスコープなど) は、MCU のデバッグには限られた範囲でしか使用できません。

最も単純な (そして同時に最も非効率的な) デバッグ方法は、「トライアル アンド エラー法」です。つまり、プログラムを再プログラム可能な読み取り専用メモリ デバイス (RPM) にロードし、実行を試み、システム内のエラーを検出して修正します。 d. EEPROM チップへのデータの消去と書き込みのプロセスには時間がかかり、一定回数の再プログラミング サイクルの後、完全に失敗します。マイクロ回路の取り付けと取り外しを繰り返すと、ROM ソケットの電気接点の信頼性が低下します。システムに関するデバッグ情報を取得する可能性は事実上ありません。

現在、マイクロコントローラーはパーソナル コンピューターをベースとしたクロスツールを使用してデバッグされることがほとんどです。これにより、MK リソースへの影響を最小限に抑えることができます。図に示すように、デバッグ対象のデバイスは、ROM エミュレータなどの何らかのツールを介してコンピュータに接続されます。このような複合体を使用すると、プログラムをダウンロードして編集したり、テストモジュールをプログラムに入力したり、システムに関する特定の情報を取得したりすることができます。これについては以下で説明します。

ROM エミュレータは唯一または最も強力なデバッグ ツールではありませんが、依然として人気があります。それらの「長寿命」は、MK のタイプからの独立性 (外部プログラム メモリを操作する機能のみが必要)、リアルタイム動作、低価格、および幅広い機器開発者やアマチュア無線家にとってのアクセスのしやすさによって説明されます。 MCS-51ファミリーマイコン(8031、8051、80C31、80C51、KR1816BE31、KR1816BE51、KR1830BE31、KR1830BE51など)を例に、ROMエミュレータを使用したプログラムデバッグ技術を考えてみましょう。

デバッグを開始するときは、システムのハードウェアと MK 自体の機能を確認する必要があります。これを行うには、「無料アカウント」テストを使用できます [3]。これは、MK ポートの行で考えられるすべてのコードの組み合わせを検索することで構成されます。テスト中はポート線が出力状態に設定されますので、まずデバッグ対象デバイスの回路図から他の素子の出力に負荷がかかっていないか確認してください。そのような負荷が存在する場合は、一時的に切断します。

MK プログラムのアドレス空間全体に「ノーオペレーション」(NOP) コマンド コードを使用して ROM エミュレータをロードします。 MCS-51 の場合、これはコード 00Н です。このような「プログラム」を実行するとき、マイクロコントローラーはすべてのプログラム メモリ アドレスを順番に検索します。オシロスコープでALE、PME、ポートP0、P2の信号を確認します。ポート ライン上のオシログラムは、アドレスの下位バイトと P0 上のデータの多重化を考慮して、バイナリカウンタのタイミング図に対応する必要があります。

次に、表 1 に示すテスト プログラムを ROM エミュレータにロードして、ポート P1 と R00 をチェックします。 0. 指定されたポートのラインに XNUMXH から XNUMXFFH までの一連のコードを出力し、XNUMX ビット バイナリカウンタをシミュレートします。オシログラムが必要なオシログラムに一致する場合は、ポートから切断された負荷を復元し、MK の動作プログラムのデバッグに進みます。システムのソフトウェア部分とハードウェア部分の両方をデバッグしていることを忘れずに、オシロスコープを使用してテスト ポイントの信号を定期的に監視することを忘れないでください。信号の種類とそれに関するあなたの考えとの間に矛盾がある場合、深刻な反省と追加のチェックが必要になります。

ROMエミュレーターを使用したマイクロコントローラーのデバッグ

開発とデバッグを容易にするために、プログラミングのモジュール原則に従う必要があります。つまり、MK プログラムを機能に応じて複数の部分に分割します。これにより、個々のモジュールを簡単に移動し、必要に応じて他のプロジェクトで使用できるようになります。電源投入または MK リセット後に制御が移るモジュールをメインまたはメインモジュールと呼びます。戻りアドレスでスタックが乱雑にならないように、サブルーチン呼び出しではなくジャンプ コマンドを使用して制御をプログラム エントリ ポイントに転送する必要があります。

予期しないプログラム結果を避けるために、初めて使用する前に、各変数に必ず初期値を割り当ててください。場合によっては、周辺機器の初期化が必要になる場合があります。初期化ブロックはメイン プログラム モジュールの先頭に配置されます。

デバッグ開始時のメイン ソフトウェア モジュールの概略図を表に示します。 2. これには、プログラムへのエントリ ポイントと終了ハンドラーのみが含まれます。このような出力がマイクロコントローラー システムで使用されることはほとんどありませんが、緊急事態を正しく完了するには提供する必要があります。検討中の例では、作業の完了後にプログラムが「ループ」します。この状態から抜け出すには、ハードウェア リセット信号でシステムを再起動する必要があります。

ROMエミュレーターを使用したマイクロコントローラーのデバッグ

デバッグ中、他のソフトウェア モジュールは準備が整うとメイン モジュールに追加されます。接続してデバッグする順序は重要な役割を果たします。情報出力デバイス (ディスプレイ、デジタル/アナログ コンバーターなど) のドライバーから開始し、その呼び出しをメイン モジュールに配置する必要があります。次に、残りの周辺機器のドライバーとデータ処理ルーチンがデバッグされ、その後ですべてのソフトウェア モジュールの共同動作がチェックされます。英数字ディスプレイがある場合、そのドライバーが最初にデバッグされ、後でデバッグ情報 (MK の内部データ メモリの内容など) を表示するために使用されます。 ROM エミュレータが、それに含まれる情報を制御コンピュータとデバッグ対象デバイスの両方で読み書きできるように使用される場合、MK は ROM エミュレータの空きメモリ領域にデバッグ データを配置し、制御コンピュータコンピュータはそれらを読み取り、ディスプレイに表示します。

例えば、MK の内部データ RAM の内容を出力するには、MK の書き込み信号出力を外部データメモリ (WR) に接続し、ROM エミュレータの書き込み信号入力に接続し、表に示すサブルーチンを使用します。 3. デバッグ対象のデバイスのプログラム メモリ サイズが 32 KB を超えないと想定されているため、エミュレータ メモリに配置されるデバッグ情報はアドレス 8000H から始まります。レジスタ R0 と R1 の内容は、後でループを編成するためにサブルーチンで使用されるため、別々に送信されます。デバッグ情報の出力後、MK プログラムは一時停止され、8000H-807FH ROM エミュレータのメモリセルの内容が制御コンピュータによって読み取られ、表示および解析されます。同様の方法で、プログラムでアクセス可能なすべての MK レジスタの内容を表示できます。

ROMエミュレーターを使用したマイクロコントローラーのデバッグ

周辺デバイス ドライバーのデバッグを開始するときは、プログラム内のエラーによるデバイスの障害の可能性を回避するために、MK によって生成された制御信号を周辺デバイス ドライバーから一時的に切断します。プロセスが 1 回限りの場合は、プロセスを「ループ」し、必要に応じてオシロスコープの同期信号をプログラムし、MC によって生成された信号をオシロスコープで監視してドライバーをデバッグします。制御信号のタイミング図が必要なタイミング図に対応していることを確認した後、周辺機器を接続し、実際のハードウェアでドライバーのデバッグを続けます。最後に、ソフトウェア モジュールからデバッグ要素を削除し、最終的な形式での動作を確認します。

さまざまなモジュールによる共有 MK リソースの使用により、別のサブルーチンが追加されたときにデバッグされたプログラムが動作しなくなることがよくあります。そのため、次のモジュールをデバッグした後、以前にデバッグされたすべてのドライバとサブルーチンが引き続き正しく動作することを確認してください。プログラムで割り込みを使用する場合は、絶対に必要な場合を除き、割り込みを無効にしないでください。デバッグされたモジュールは、現時点では必要ない場合でも、プログラムから削除しないでください。

MK がフリーズした場合は、次のエラー位置特定方法が役立ちます。プログラムに制御ポイントを入力し、ディスプレイ上に連続して増加する数値を表示します。フリーズ後、最後に正常に通過したチェックポイントに対応する番号が表示されます。これらのポイントのいくつかが無限ループに陥ると、ディスプレイ上の数値が急速に変化します。どのポイントがループに含まれているかを判断するには、たとえばアイドル ループの形式で各ポイントを出力するときにソフトウェア遅延を設定して、数値の変化を人為的に遅くする必要があります。デバッグ対象のシステムにディスプレイが内蔵されていない場合、ROM エミュレータの空きメモリ領域を介して制御コンピュータのディスプレイに情報を表示できます。

すべてのデバイス ドライバーをデバッグしたら、他のルーチンのデバッグを開始します。それらのいずれかがデータの処理または変換のための複雑なアルゴリズムを実装している場合、1 つまたは複数の中間変数値を表示するだけでは、エラー分析に十分な情報が得られないことがよくあります。必要なボリュームのデバッグ情報を ROM の空きメモリ領域に書き込みます。エミュレータは、ここでの困難を克服するのに役立ちます。

すべてのソフトウェア モジュールが正常に動作するようになったら、それらをまとめてデバッグできます。この場合に生じる問題は 2 つのグループに分けられます。 1 つ目には、算術論理演算ユニット、データ メモリ、入出力ポートなど、マイクロコントローラの共通リソースの共有の問題が含まれます。 2 つ目は、リアルタイムでのマイクロコントローラー デバイスの動作に関連します。

リアルタイム システムは通常マルチスレッドです。いくつかのソフトウェア タスク (スレッド) が並行して実行され、相互に対話し、共有リソースを使用します。ただし、MC はその構造上、各瞬間にそのうちの 1 つだけを解決し、優先順位を考慮して他の問題に交互に切り替えます。タスク間の競合は、リソースの不足とデータ処理の時間の不足の両方によって発生します。したがって、ソフトウェア モジュールで使用される MC リソースには特に注意し、デバッグ情報を表示して状態の変化を監視することがよくあります。可能な限りグローバル変数の数を減らし、ローカル変数に置き換えるようにしてください。スタックの状態を監視します。プログラムの重要なセクションの実行時間を見積もり、実際に可能な入力信号のさまざまな値についてシステムをテストします。

ROM エミュレータを使用すると、MK の内部メモリで動作するように設計されたプログラムを外部プログラム メモリに一時的に配置してデバッグすることもできます。この場合、ポート P0 と P2 は外部メモリへのサービスでビジーになるため、MK の残りの空き I/O ラインが十分でない場合、P0 と P2 は外部データ メモリ セルとしてアドレス指定された I/O ポートに置き換えられます。これらは標準回路に従って接続され、トリガー レジスタを使用して出力ラインの数を増やし、XNUMX つの出力状態を持つ要素を使用して入力ラインの数を増やします。

エミュレータを使用してシステムをデバッグした後、システムからデバッグ要素を削除し、プログラムを ROM (または MK の内部プログラム メモリ) に書き込み、デバイスの最終的な形式での動作を確認します。

文学

  1. Vydolob G.、Kudryashov V.、Samoilov V. ROM/RAM エミュレータ RE020。 - ラジオ、1997 年。第 11 号、30 ~ 32 ページ。
  2. Zelenko G.V.、Ivannikov A.D.、Sypchuk P.P. マイクロプロセッサ システムの設計とデバッグ。 - 機械工学修士。 1982年。
  3. Williams G.B. マイクロプロセッサ システムのデバッグ: Trans。英語から-Mエネルギーアトミズダット。 1988年

著者: G.Vydolob、V.Samoylov、モスクワ (ゼレノグラード)

他の記事も見る セクション マイクロコントローラー.

読み書き 有用な この記事へのコメント.

<<戻る

科学技術の最新ニュース、新しい電子機器:

庭の花の間引き機 02.05.2024

現代の農業では、植物の世話プロセスの効率を高めることを目的とした技術進歩が進んでいます。収穫段階を最適化するように設計された革新的な Florix 摘花機がイタリアで発表されました。このツールには可動アームが装備されているため、庭のニーズに簡単に適応できます。オペレーターは、ジョイスティックを使用してトラクターの運転台から細いワイヤーを制御することで、細いワイヤーの速度を調整できます。このアプローチにより、花の間引きプロセスの効率が大幅に向上し、庭の特定の条件や、そこで栽培される果物の種類や種類に合わせて個別に調整できる可能性が得られます。 2 年間にわたりさまざまな種類の果物で Florix マシンをテストした結果、非常に有望な結果が得られました。フロリックス機械を数年間使用しているフィリベルト・モンタナリ氏のような農家は、花を摘むのに必要な時間と労力が大幅に削減されたと報告しています。 ... >>

最先端の赤外線顕微鏡 02.05.2024

顕微鏡は科学研究において重要な役割を果たしており、科学者は目に見えない構造やプロセスを詳しく調べることができます。ただし、さまざまな顕微鏡法には限界があり、その中には赤外領域を使用する場合の解像度の限界がありました。しかし、東京大学の日本人研究者らの最新の成果は、ミクロ世界の研究に新たな展望をもたらした。東京大学の科学者らは、赤外顕微鏡の機能に革命をもたらす新しい顕微鏡を発表した。この高度な機器を使用すると、生きた細菌の内部構造をナノメートルスケールで驚くほど鮮明に見ることができます。通常、中赤外顕微鏡は解像度が低いという制限がありますが、日本の研究者による最新の開発はこれらの制限を克服します。科学者によると、開発された顕微鏡では、従来の顕微鏡の解像度の 120 倍である最大 30 ナノメートルの解像度の画像を作成できます。 ... >>

昆虫用エアトラップ 01.05.2024

農業は経済の重要な分野の 1 つであり、害虫駆除はこのプロセスに不可欠な部分です。インド農業研究評議会 - 中央ジャガイモ研究所 (ICAR-CPRI) シムラーの科学者チームは、この問題に対する革新的な解決策、つまり風力発電の昆虫エアトラップを考案しました。このデバイスは、リアルタイムの昆虫個体数データを提供することで、従来の害虫駆除方法の欠点に対処します。このトラップは風力エネルギーのみで駆動されるため、電力を必要としない環境に優しいソリューションです。そのユニークな設計により、有害な昆虫と有益な昆虫の両方を監視することができ、あらゆる農業地域の個体群の完全な概要を提供します。 「対象となる害虫を適切なタイミングで評価することで、害虫と病気の両方を制御するために必要な措置を講じることができます」とカピル氏は言います。 ... >>

アーカイブからのランダムなニュース

急速加熱のための冷たさ 19.02.2020

一部の材料を加熱する最も速い方法は、最初に冷却することです。 この考え方は、温水が冷水よりも速く凍ることがあるムペンバ効果と似ています。

ピザのスライスを再加熱するために、最初に冷やしたいと思うことはほとんどありませんが、理論的研究によると、加熱する前の最初のステップとして冷却することが、一部の材料を再加熱する最速の方法である可能性があります.

この概念は、効果を一貫して再現することが非常に難しいため、これまで科学者に理解されていないムペンバ効果に似ています。 スペインのバダホスにあるエストレマドゥーラ大学の物理学者アンドレス・サントス氏は、今回の研究には関与していないが、「ムペンバ効果のような効果を別の視点から見る方法」であると述べている。

イスラエルのレホヴォトにあるワイツマン科学研究所の物理学者 Amit Gal と Oren Raz は、磁極が上または下を向いている原子の XNUMX 次元グリッドである Ising モデルと呼ばれる理論システムを研究しました。 特に、彼らは、隣り合う原子がそれらの極を反対方向に向けるイジングモデルの変形を考えました。 この振る舞いは反強磁性と呼ばれます。 また、このシステムは、予冷段階の後、より速く加熱できます。

新しい効果が現れるためには、システムは予冷の影響を受ける均一な温度以外の対応する特性を持っている必要があります。 そうしないと、事前に冷却してウォームアップしたシステムと、ウォームアップしたばかりのシステムとの間に違いはありません。

反強磁性イジングモデルの場合、研究者は、すべての原子によって作成された全体的な磁化の特性と、反対方向を向いている磁石の数を考慮しました。 材料を冷却すると、これら XNUMX つの特性の関係が変化し、その後の加熱がはるかに速くなります。

その他の興味深いニュース:

▪ 冷たい飲み物用のラピッドコールドブリューコーヒーメーカー

▪ ケージが後退する

▪ インターネット中毒は遺伝子に隠されている

▪ 気候変動により空の旅が快適ではなくなる

▪ レーザーはナノドットを置く

科学技術、新しいエレクトロニクスのニュースフィード

 

無料の技術ライブラリの興味深い資料:

▪ サイトの車のセクション。 記事の選択

▪ 記事 このすべてがジャズです。 人気の表現

▪ 記事 なぜ人間の目のタンパク質の一つがピカチュウにちなんで名付けられているのでしょうか? 詳細な回答

▪ 記事 労働保護要件を遵守するための従業員の内部動機の管理

▪ 記事 コンパクトな電気はんだこて。 無線エレクトロニクスと電気工学の百科事典

▪ 記事 帽子の下にコイン。 フォーカスシークレット

この記事にコメントを残してください:

Имя:


Eメール(オプション):


コメント:





このページのすべての言語

ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー

www.diagram.com.ua

www.diagram.com.ua
2000-2024