組み込みの基本

(1) - 組み込み開発に必須のハードウェア知識

組み込みシステムを開発する場合、多くの場合、ハードウェアに触れる必要があります。組み込み開発を行うには、デジタル回路とアナログ回路についてある程度の理解が必要です。

このようにしてのみ、綿密な研究を進めることができます。以下では、組み込み開発におけるハードウェア関連の概念をいくつか簡単に紹介します。

バス

組み込みシステムでは、プロセッサチップのほかに、プロセッサと連携して製品の機能を実現する外部デバイス(以下、周辺機器)としてのチップが存在します。複雑な製品は多くの場合、多数のチップで構成されます。その場合、必然的にすべての周辺機器をプロセッサに接続する必要があります。最も簡単なのは、独立した (ノート独立した) 信号線を使用して、すべての周辺機器をプロセッサに接続することです。この利点は理解しやすいことです。しかし、問題はは:それは実現不可能です。

プロセッサチップは必要な配線が多すぎるため、チップ生産や製品生産の観点から現実的ではありません。さらに、プロセッサ (ここではプロセッサがマルチコアではなくシングルコアであると仮定します) によるトランザクションの処理は、顕微鏡的にはシリアルです。つまり、ある瞬間にペリフェラルの読み書きをしたい場合、可能です。これは、多数の周辺機器のうちの 1 つで実行されます。つまり、プロセッサは複数の周辺機器に微細に同時にアクセスすることはできません。

ここではマクロと区別するためにミクロという概念が提案されていることに留意されたい。マクロの観点からは、複数のタスクがプロセッサ内で同時に実行できますが、ミクロの観点からは、これらのタスクは 1 つずつ実行されます (ここでは「1 つずつ」を説明するためにシリアルを使用します)。重要な役割を果たしているオペレーティング システム。

本題に戻りますが、各ペリフェラルに独立した信号線を使用してプロセッサに接続するのは現実的ではなく、プロセッサは一度に 1 つのペリフェラルにのみアクセスするため、共有信号線を使用できますか? すべてのチップを接続する場合はどうでしょうか?一緒に?これがバスのコンセプトの由来です。平たく言えば、私たちの周りに 10 家族がいる場合、これら 10 家族のうち 2 家族が相互に移動できるようにするために、2 家族ごとに別々の (別々であることに注意してください) 道路を建設する必要はありません (もしそうであれば)。したがって、45 本の道路を建設する必要があります)。ただし、主要道路を 1 つ建設すれば、すべての家がその主要道路に接続されます。

バスに関しては、バスはプロセッサーのものであり、他の周辺機器がバス上にぶら下がっているとよく言われます。問題は、バス上にあるペリフェラルには一度に 1 つしかアクセスできないため、これらのペリフェラルをどのように区別するかということです。道路と同じように、各家庭を区別するために住所が必要ですが、バスでも住所が区別されます。

このようにバスはその機能に応じて2つに分類されます。1 つのタイプはアドレス バスで、このバス上のデータはプロセッサからペリフェラルにのみ「流れ」ます。これは一方向です。もう 1 つのタイプはデータ バスで、プロセッサからペリフェラルへのデータ転送 (プロセッサの観点からは書き込み操作)、またはペリフェラルからプロセッサへのデータの転送 (プロセッサの観点からは) に使用されます (プロセッサの観点からは読み取り操作)。データバスは双方向です。言い換えれば、私たちの組み込みシステムには、プロセッサと通信する必要があるすべてのチップを接続するアドレス バスとデータ バスの両方が存在します。

道路が「3車線」や「4車線」に分かれているのと同じように、バスにも幅があり、32ビットプロセッサというのはデータバス幅が32ビット、つまり「32台の車が走れる」という意味です。同時に。」 「明らかに、幅が広ければ広いほど、周辺チップからのデータにより速くアクセスできるため、プロセッサーも高速になります。そのため、コンピューターは 64 ビットに向けて開発されています。」同様に、アドレス バスにも幅があり、32 ビット プロセッサの場合、最大幅は 32 ビットです。

バスの概念が整ったところで、次の問題は、各周辺機器にアドレスがあるとしても、そのアドレスはどこに記録されるのかということです。周辺チップ上に配置されていますか? だとすると問題があり、各ペリフェラルのアドレスが重複してはいけない、また同一のチップを2つ必要とする製品の場合、2つのチップのアドレスが区別できない、という動作があるようです。問題。また、この場合、各周辺機器を (たとえば 32 の) データ バスに完全に接続し、プロセッサが自分自身を「呼び出している」かどうかを理解するためにデータ ラインをリッスンする必要がありますが、これは非常に複雑です。

また、ペリフェラルの種類の増加により、アドレスが使い果たされる可能性もあります。一般に、アドレスを周辺チップに保存することはできません。では、アドレスがプロセッサに置き換えられ、読み取りおよび書き込みアクセスが必要であることを周辺機器にどのように知らせるのでしょうか? 答えはチップセレクト(CS、チップセレクト)信号、またはイネーブル信号(ENable)です。

チップセレクト(CSまたはEN)

周辺チップの場合、チップ セレクト信号は (または) 通知信号であり、チップに「ドアを開けてください。何かを入れたい、または何かを取り除きたいのです。」と伝えます。ここでのものはデータのみです。穂軸付きトウモロコシなどではあり得ません。そこで疑問がありますが、この信号源はどこから来ているのでしょうか? 明らかに、プロセッサからのみです。これはバスのようなもので、すべてのチップがラインを共有して相互に接続されているのでしょうか?

この場合、プロセッサが「ドアを開ける」ときに、すべてのチップが「ドア」を開ける可能性があります。プロセッサがデータを書き込む場合、同じデータがすべてのチップに書き込まれる可能性があります。データをフェッチするとき、各周辺チップはデータを「スロー」します。これは、バス上に 1 を「スロー」するチップと 0 を「スロー」するチップがあるため、確実にデータ バスの競合を引き起こします。この場合、プロセッサは「おかしく」なります。 1 を取得すべきか 0 を取得すべきかがわからないからです。

この場合、すべてのチップセレクト信号を一緒に接続することはできず、各チップのチップセレクト信号は独立するしかないことは明らかである。先ほどアドレスバスの話が出ましたが、周辺チップとの接続にはアドレス線を使うのでしょうか?または、他の方法を使用してください。1 つのアドレス ラインを使用して 1 つの周辺チップを接続する場合、最大 32 個のチップしか接続できない可能性がありますが、これは明らかに不可能です。

実際には、周辺チップのアドレスを表すには 32 ビットの数値が使用され、たとえば 1 はチップ A、6534 は別のチップ B を表すことができます。この観点から、理論的には 2 の 32 乗 (4294967296) のデバイスを表すことができますが、これはデバイスによっては多数のアドレスを占有するためです。この場合、32 ビットのアドレス バスがチップのチップ セレクト信号に変換されたらどうなるか、という別の疑問が生じます。これには、デコーダの概念を導入する必要があります。

デコーダ)

デコーダはデータを信号線上の信号に変換するもので、例えば3/8デコーダはビット幅3ビットのデータを8本の(2の3乗)完全に独立した信号線に変換することができます。データ側に書き込まれる場合は 8 ラインの 3 番目に相当し、バイナリ 111 が入力される場合は 8 ラインの最後に相当します。デコーダにより、プロセッサのアドレス線が簡素化され、32 本のアドレス線と外部デコーダさえあれば、多数の周辺チップにアクセスできます。外部デバイスの選択の問題は解決しました。今度はデータ バスを振り返る必要があります。

組み込みシステムでは、すべてのチップのデータ バスが直接接続されていると考えることができます。なぜ「理解できる」という言葉が使われているかというと、バスの積載量を増やすためにバスの運転士が増員されるからです。これを理解するために、私たちの生活の中にある水道水を見てみましょう。例えば、北京では、理論的にはすべての水道管がつながっているかもしれませんが、水圧を上げるために、小さな給水所がたくさんあるのかもしれません。北京のすべての水道水を 1 つの浄水場から供給することは不可能です。

すべてのデータ バスは相互に接続されているため、問題が発生する可能性があります。外部デバイスにデータを書き込む場合、プロセッサはまずターゲットペリフェラルのアドレスをアドレスバスに送信し、アドレスデコーダはそれをチップセレクト信号に変換してターゲットペリフェラルに送り、ターゲットペリフェラルがこの信号を受信した後、オープンします。ドア"。次に、プロセッサはペリフェラルに送信するデータをデータ バス上に置きます。ターゲットのペリフェラル チップだけが「ドア」を開けているため、データはターゲットのペリフェラルにのみ入力され、他のペリフェラルは何も受信しません。 。素晴らしいですね! プロセッサが外部にデータを書き込むのには問題はないはずです。次に、データの読み取りを見てみましょう。

読み取りの場合、ペリフェラルからプロセッサにデータが転送されるため、ターゲットのペリフェラルの「ドア」を開ける書き込みと同じ方法が使用されますが、この時点では他のペリフェラルもデータ バス上にあり、それらのペリフェラルがデータ バス上に存在する可能性があります。 1 はデータ バス上にあります。1 は 0 にもあります。ターゲットのペリフェラルからデータを読み取るプロセッサの能力に影響しますか? もちろん結果はそうではありませんが、高抵抗状態という別の概念を導入する必要があります。

高抵抗状態

明らかに、プロセッサがターゲット ペリフェラルからデータを読み取るとき、選択されていない他のチップのデータ バスがターゲット ペリフェラルによって送信されるデータに影響を与えないことが望まれます。実際、チップが選択されていないとき、そのデータ バスはハイ インピーダンス状態になります。

いわゆるハイインピーダンス状態とは、このピンがペリフェラルチップ内部で切断されている状態を意味すると理解でき、その結果、ターゲットペリフェラルからデータを読み取るプロセッサには明らかに影響を与えません。チップが選択されていない場合、または有効になっていない場合、そのデータ バスはハイ インピーダンス状態でなければならないと言います。先ほど「ドア」の開閉を例えにしましたが、「ドア」とは何を意味するのでしょうか?ペリフェラルのデータ バスを指し、チップ セレクト信号の機能は、ペリフェラルのデータ バスとプロセッサのデータ バスの接続または切断を制御することです。

ドライブ

データをバスに置いた人がその瞬間の運転手になります。つまり、プロセッサがペリフェラルにデータを書き込むときはデータ バスを駆動し、プロセッサがターゲット ペリフェラルからデータを読み取るときはターゲット ペリフェラルがデータ バスを駆動します。アドレス バスの場合、プロセッサからターゲット ペリフェラルへの書き込みのみが可能であるため、アドレス バスは常にプロセッサによって駆動されます。チップが選択されていない場合、そのチップはデータ バスを駆動していないと言います。

トライステートゲート

先ほど、周辺チップのデータバスは非選択時はハイインピーダンス状態であると述べましたが、選択時はハイ(1)またはロー(0)のレベルになります。このように、周辺データバスのチップピンはトライステートゲート、つまりハイレベル、ローレベル、高抵抗状態の3つの状態があると言えます。

レベルの有効性

先ほど、チップ選択信号とは何かを学び、スリーステート ゲートについても説明しましたが、チップ選択信号は通常、スリーステート ゲートではなく、ハイ レベルまたはロー レベルの 2 つの状態しかないことに注意してください。 。先ほども言いましたが、チップセレクト信号は「ドアを開ける」ために使用され、チップセレクト信号にはハイレベルとローレベルがありますが、ハイレベルは「ドアを開ける」ことを意味するのでしょうか?それとも低レベル?

この問題については、レベルがチップ選択信号の「ドアが開いている」ことを示している場合、それがこの信号の有効レベルであると言います。たとえば、チップ セレクト信号の場合、ロー レベルが「ドアを開ける」ことを意味する場合、チップ セレクト信号はロー レベルでアクティブであると言います。ここではレベルの有効性をチップセレクト信号で説明していますが、後述するリード信号やライト信号など、多くの信号には有効性の問題があります。

タイミング

プロセッサがペリフェラル チップにデータを書き込みたい場合、まずアクセスする必要のあるペリフェラルのアドレスをアドレス バスに入力する必要があると前述しました。次に、デコーダがアドレス バス上のデータをチップ セレクトに変換します。信号が入力されると、チップ選択信号がターゲット周辺チップを有効にし、プロセッサがデータ バスにデータを書き込み、書き込み動作を完了します。明らかに、アドレス ライン上のデータは、プロセッサがデータ バスにデータを書き込む前に一定期間保持する必要があります。そうしないと、デコーダはチップ選択信号を長時間アクティブに保つことができません。

データ書き込み操作が完了すると、プロセッサはアドレス バス上のアドレスが有効であることを確認する必要がありません。この一連の操作には、タイミングと呼ばれる一定の厳密な時間順序があることがわかります。タイミングは、プロセッサと外部デバイス間のインタラクティブな信号の「手順」を表しており、この「手順」に従うことによってのみ、プロセッサと外部デバイス間の正常な通信が保証されます。これは道路の信号機のようなもので、歩行者や車両が信号の指示に従わないと事故が発生します。通常、タイミング図は、チップ間の通信のための信号の「手順」を説明するために使用されます。

ADDRESS はアドレス バス、DQ はデータ バス、CE はロー レベルでアクティブになるチップ セレクト信号であり、その幅は読み出し動作中に常に有効であることを保証する必要があります。組み込みシステム開発では必然的にチップを扱う必要があるため、タイミング図の読み方を学ぶことは非常に役立ちます。

シーケンス図では、通常、多くの時間要件情報が特定されます。スタートアップ コードを記述するときは、チップ セレクト アドレス レジスタを初期化し、各アドレス空間の読み書きタイミングを初期化する必要があります。タイミング設定は周辺チップからの時間要件に基づいており、これはチップ マニュアルの非常に重要な部分です。アドレス空間に複数の周辺チップがある場合、それらの中で最も遅い周辺チップの時間要件を考慮する必要があります。そうしないと、一部のチップが適切に動作しなくなります。

読み取り信号

プロセッサが周辺チップから信号を読み取る必要がある場合、チップ選択信号を生成するだけでなく、これが書き込み動作ではなく読み取り動作であることを周辺チップに伝える必要があり、これは信号を読み取ることで実現されます。

書き込み信号

先ほどリード信号の話をしましたが、ライト信号も理解するのは難しくないと思いますが、この信号は周辺チップにデータを書き込む動作であることを周辺チップに伝えるために使用されます。

I/Oポート

ペリフェラル (チップ) については前述しましたが、今度はペリフェラルを分類します。一般的にペリフェラルはメモリペリフェラルと非メモリペリフェラルの2つに分類され、後者はI/Oデバイスと呼ばれることが多いです。出力。I/O ペリフェラルは非常に幅広い概念であることがわかります。メモリ周辺機器の場合、占有スペースが連続したものであることが特徴です。たとえば、SDRAM メモリはメモリ周辺機器であり、その容量が 8M バイトであれば、メモリが占​​有するアドレス空間も 8M になります。

メモリ ペリフェラルとは異なり、I/O ペリフェラルは通常、使用するアドレスが非常に少ないです。たとえば、I/O ペリフェラルには複数の制御レジスタがある場合があります。プロセッサの観点からは、これらの制御レジスタは複数の I/O ポート (アドレス) です。このアドレスへのデータの書き込みは、ペリフェラルに対応するレジスタへのデータの書き込みを意味します。逆も同様です。 、と読むこともできます。たとえば、シリアル ポート チップには複数のレジスタがあり、1 つはチップのステータスのクエリに使用され、1 つはチップの機能の設定に使用され、もう 1 つはシリアル ポート ラインからチップが受信したデータの読み取りに使用されます。 、シリアルラインにデータを送信するためにチップにデータを書き込むために使用される別のものもあります。このシリアル ポート チップのレジスタは、プロセッサの観点からは独立した I/O ポートです。

I/O ポートには読み取りと書き込みの問題があります。一部のポートは読み取り専用、一部は書き込み専用、一部のポートは読み取りと書き込みの両方が可能です。それらの読み取り/書き込み機能は周辺チップのレジスターによって決まります。チップのデータシートに記載されています。一部のメモリ周辺機器には、特定の制御を提供する I/O ポートもあることに注意してください。I/Oポートという名前から察するに、プロセッサにとって、外部からデータを読み込んだり、外部にデータを出力したりするインターフェースの総称です。

割り込み

ハードウェアの観点から見ると、割り込みはハイレベルとローレベルを生成できる信号線ですが、それを理解するにはプロセッサの観点から始める必要があります。すでに述べたように、微視的な観点から見ると、プロセッサによって行われる作業は順番に実行され、プログラムの処理は 1 つの命令を次々と実行することによってのみ行われます。周辺チップにアクセスする必要がある場合、プロセッサから読み取りまたは書き込みコマンドが発行された後、周辺機器は通常プロセッサよりもはるかに遅いため、周辺チップが必要なデータを準備するのに時間がかかる可能性があります。 。この場合、プロセッサが後続の命令を実行する前に周辺チップからの戻りデータを待機すると、他の作業に使用できる貴重な時間が無駄になります。

マクロの観点から見ると、プロセッサは多くの場合マルチタスクであり、タスクとはオペレーティング システムによって提供されるスケジューリング単位を指すことを忘れないでください。タスクが周辺チップからのデータの待機中にブロックされた場合、別のタスクに切り替えることで処理効率を向上させることができます。質問がありますが、プロセッサが別のタスクを処理しているときに、周辺チップのデータが準備できたら、プロセッサに通知したらどうなるでしょうか? それは割り込み信号によるものです。割り込み信号の High レベルと Low レベルを使用して、特定のイベント (ペリフェラル データの準備ができたときのイベントなど) を処理するためにプロセッサの注意を必要とする割り込みがあるかどうかを示すことができます。

この観点から見ると、割り込みの導入によりプロセッサの効率が大幅に向上します。プロセッサで割り込みを使用するには、まずプロセッサの割り込みコントローラを初期化する必要があります。たとえば、必要な割り込みサービス ルーチンまたは ISR (割り込みサービス ルーチン) と呼ばれるものをインストールし、次に割り込みマスク ビットをオンにします。割り込みサービス ルーチンでは次の操作を行う必要があります。

  1. 周辺デバイスからのデータの読み取り、または周辺デバイスへのデータの書き込み。通常、読み取りまたは書き込みを行うには、ペリフェラルの割り込みステータス レジスタを読み取って判断する必要があります。

  1. ペリフェラル割り込み信号をクリアします。割り込み信号は周辺チップによって駆動されることがわかっていますが、プロセッサが必要な作業を完了したことを周辺チップに伝えるために、プロセッサは特定の方法で周辺チップに通知する必要があります。この方法は、周辺チップのレジスタの特定のビットにデータを書き込む方法です。たとえば、割り込みのクリアを示す 1 を書き込むか、割り込みのクリアを示す 0 を書き込むことができます。これは通常、周辺機器のデータマニュアルが見つかりました。ペリフェラルがプロセッサのクリア割り込み要求を受信すると、割り込みラインを駆動してそれを無効にします。例えば、ペリフェラルの割り込みラインがローレベルの場合、割り込みが発生していることを示し、ローレベルからハイレベルに変化することは、ドライバが非アクティブであることを意味します。

  1. プロセッサの割り込み信号フラグをクリアします。プロセッサは、外部割り込み信号が発生したかどうかも保存することが多く、周辺チップの割り込みを処理した後、次の割り込みに備えるためにプロセッサ上のフラグをクリアする必要もあります。ペリフェラルをクリアするための割り込みは、プロセッサ割り込みフラグが要求される前に発生する必要があることに注意してください。

割り込みに関するトリガーの問題もあります。トリガー方法には 2 つあり、1 つはレベル トリガー、もう 1 つはエッジ トリガーです。レベル トリガは、ペリフェラルに割り込みがあるかどうかをレベルのレベルで示すことを意味し、エッジ トリガは割り込みラインのレベルの立ち上がりまたは立ち下がりで表現できます。エッジ トリガには 2 つの方法があります。1 つは、割り込みラインがロー レベルからハイ レベルに変化するときであり、これを立ち上がりエッジ トリガと呼びます。もう 1 つは、割り込みラインがハイ レベルからロー レベルに変化するとき、これを立ち下がりエッジ トリガと呼びます。一般に、割り込みトリガ方法には、レベル トリガ、立ち上がりエッジ トリガ、および立ち下がりエッジ トリガが含まれます。割り込み設定は、レベルトリガー方法において非常に重要なステップです。

マルチメータ

マルチメーターは通常、レベルや抵抗などを確認するために使用され、一般的に使用される不可欠なツールの1つです。組み込みシステム開発では、デジタル マルチメーターがよく使用されます。

レベル

デジタル回路ではハイレベルとローレベルに分けられ、それぞれ1と0で表されます。デジタル回路のピンは常に、ハイかロー、または 1 から 0 までのレベルを持ちます (実際には、別の状態があります)。

オシロスコープ

組み込みシステムの開発では、必然的に周辺チップを扱う必要があります。ドライバーをデバッグするときは、チップのデータシートを完全に理解することに加えて、ソフトウェア開発プロセス中に、予想される信号レベルがチップ上で発生するかどうかも確認する必要があります。たとえば、ドライバーを作成する場合、I/O ポートに書き込むことで周辺チップを動作させる必要がありますが、対応する I/O ポートに書き込む際には、対応するチップのチップ セレクト信号が有効である必要があることがわかっています。 、予想どおりに起こったかどうかを確認する必要があります。これにはオシロスコープの使用が必要です。一般的なオシロスコープでは、2本の信号線の信号状態を同時に観測できます。

オシロスコープはすべて、信号キャプチャ方法の設定などの特定の機能を提供します。オシロスコープの非常に重要なパラメータは、その収集周波数です。ナイキストの収集定理によれば、オシロスコープを使用して周波数 100 MHz の信号を表示したい場合、そのサンプリング周波数は少なくともその 2 倍でなければなりません。 、200MHz。「なぜマルチメータを使って確認しないのですか?」と疑問に思う人もいるかもしれません。マルチメータの収集周波数は非常に低く、高速な信号変化を収集できないからです。

ロジックアナライザー

簡単に言うと、ロジック アナライザは、多くの信号チャネルを備えたオシロスコープです。ロジック アナライザーを通じて、アドレス バスとデータ バス上のデータを確認できます。ロジック アナライザーはすべて、バス上のデータ収集をいつ開始するかをプログラミングするための特定のプログラミング機能を提供します。

(2)—ハードウェアの基礎知識

組み込みシステムは、デバイスまたは機器の一部である特殊なコンピューター システムです。中国で一般的に認識されている組み込みシステムの定義は、コンピュータ技術に基づいたアプリケーション中心の特殊なコンピュータ システムであり、そのソフトウェアとハ​​ードウェアは、機能、信頼性、コストなどのアプリケーション システムの厳しい要件を満たすように調整できます。音量や消費電力など。いくつかの例を挙げると、携帯電話、電子時計、スマート警報装置、自動モニター、タクシーメーターなどはすべて組み込みシステムです。——編集・提供:Houxue.com
組み込みシステムはハードウェアとソフトウェアの組み合わせですが、携帯電話を例に組み込みシステムの具体的なブロック図を見てみましょう。

(ハードウェア)
1. 回路の基礎知識
組み込みハードウェアでも多くの回路を構築する必要があるため、組み込みを学ぶ前に、回路の基礎知識をある程度身につけておく必要があります。一般的に使用される基本的なデバイスを理解し、基本的な機器を使用し、一定の回路解析能力を備えています。この方法によってのみ、組み込みシステムのハードウェア回路図を理解し、その後の開発の基礎を築くことができます。
具体的な操作: CD に応答してメイン メニューを表示し、次に 109 に応答してビデオ ダウンロード メニューに入り、アナログ回路教示ビデオをダウンロードしてから、104 に応答してハードウェア テクノロジに入ります。コンポーネントの基礎、一般的な回路、その他の知識を学びます。

2. 基本的な言語知識:
組み込みドライバー プログラムを作成するには C 言語を使用する必要があるため、組み込みを学習する前に、C 言語の基本構文に習熟し、通常のプログラム コードをいくつか作成できる必要があります。ここで注意する必要があるのは、C 言語を学習する際には、メモを追加したり、組版に注意を払ったりするなど、標準化されたプログラミングの習慣を身につけておくことです。これは、将来のプログラムの精度に大きな影響を与えます。
具体的な操作: CD に応答してメイン メニューを表示し、次に 109 に応答してビデオ ダウンロード メニューに入り、C 言語教育ビデオをダウンロードしてから、105 に応答してソフトウェア テクノロジに入ります。運転の基礎やその他の知識を学びます。

3. シングルチップマイコン(51シングルチップマイコン)
初心者が初めて組込みプロセッサに触れるのは、比較的簡単で汎用性の高い51シングルチップマイコンです。開発ボードを購入して実践的に学ぶことができます。たとえば、ランニングライト、キースキャン、デジタルチューブ、液晶ディスプレイ、AD/DAサンプリングなどの簡単なプログラムの書き方を学びます。
具体的な操作: CD に返信してメイン メニューを表示し、109 に返信してビデオ ダウンロード メニューに入り、マイコンのティーチング ビデオをダウンロードし、ビデオに従って操作します。

4. マイクロコントローラーに基づく電子システムの自己設計
. これまでの学習経験により、開発ボードから抜け出し、自分で回路図を設計および描画したり、PCB ボードを自分で溶接または製造したり、小型の電子システムを設計したりできます。たとえば、ラインハンティングカー、温度収集、時計表示、その他の組み込みシステムの設計などです。
特定の操作: CD に返信してメイン メニューを表示し、次に 109 に返信して Protel ビデオ チュートリアルをダウンロードし、回路基板の描画を学習してから、106 に返信して組み込みシステム メニューに入り、マイクロコントローラーに基づく電子システム設計を学習します。

5. 430、STM32、Cortex-M3 (オプション)
430 マイクロコントローラー、STM32 および Cortex-M3 プロセッサーは、組み込みオペレーティング システムを学習する前の移行段階であり、自分で学習することを選択できます。なぜ移行にそれらを使用する必要があるのでしょうか?
51 マイクロコントローラには内部レジスタが非常に少ないため、プログラムを作成するときに GPIO ポートを設定する必要はなく、デフォルトですでに入力または出力されています。プロセッサーが強力な場合、1 つの GPIO で USB 機能、IIC 機能、UART 機能などの複数の機能を実装できることがよくあります。この種の GPIO を使用する場合は、最初にニーズを満たすように構成する必要があります。したがって、時間のある学生は、新しいオペレーティング システムを学習する前に、これらのマイクロコントローラーから移行することができ、その後の学習が混乱することはありません。
特定の操作: CD に返信してメイン メニューを表示し、次に 109 に返信して 430/STM32 マイクロコントローラーのビデオをダウンロードします。

6.
ARM9/ARM11 ベア メタルのベア メタル プログラミングを学習します。つまり、オペレーティング システムを使用しないプログラミングです。その機能は、上記の 430 マイクロコントローラーの機能と似ています。目的は、ARM アーキテクチャに慣れ、より深い知識を持つことです。 ARM レジスタを理解すると、将来役立つため、ドライバーの作成は非常に便利になります。同様に、ベアメタル プログラムを学習するには、51 マイクロコントローラーなどの開発ボードを購入し、開発ボード上で割り込み、GPIO、および UART 操作を実行できます。
特定の操作: CD に応答してメイン メニューを表示し、次に 106 に応答して組み込みシステム メニューに入り、基本的な組み込みアーキテクチャなどを学習します。もちろん、直接メッセージを残していただくことも可能です。

7. Linux システム移植とブートローダー
Linux システム移植では、組み込みシステムの学習に特に注意が必要であり、システム移植とシステムのカスタマイズが学習の難所となります。組み込みOSの開発環境、つまりクロスコンパイル環境の構築も面倒なので、段階的に練習しながら学習する必要があります。
ブートローダーは、オペレーティング システムを起動する前にハードウェアを初期化し、オペレーティング システムの動作環境を構築するコードであり、PC の BIOS プログラムに似ています。BOOTLOADER は主にハードウェアに関するものであり、プロセッサのレジスタに関する知識がかなり必要となるため、学習の初期段階では U-Boot などの学習方法を参考にすることができます。

おすすめ

転載: blog.csdn.net/weixin_43153548/article/details/82898879