組み込みシステムプログラミングとその言語とは
システムは、複数のユニットを組み合わせたものであり、指定された指示に従って機能するように組み立てられています。組み込みシステムは、ハードウェアとソフトウェアの両方の組み合わせであり、指定された期間内に特定のタスクを実行します(つまり、洗濯機のように1つの特定のタスクのみを実行する必要があります)。アプリケーションで組み込みシステムを使用する主な利点は、サイズとコストを最小限に抑え、タスクの信頼性と効率を向上させることができることです。この記事では、組み込みソフトウェア言語、組み込みシステムプログラミング、およびそれらの機能の概要を説明します。
組み込みシステムのコンポーネント
以下は組み込みシステムのコンポーネントです
- 組み込みハードウェア: マイクロコントローラーは組み込みシステムの心臓部であり、通信目的で複数の周辺機器が組み込みハードウェアに接続されています。
- 埋め込みRTO: 組み込みのリアルタイムオペレーティングシステムは、すべての複雑な(ar操作)を実行するために使用されます。
- デバイスドライバー: オペレーティングシステムと周辺機器の間のブリッジとして機能します。
- 通信スタック: 外部デバイスとの通信に使用されます。
- 組み込みアプリケーション: 組み込みデバイスの事前定義された機能を実行します。
組み込みソフトウェア
組み込みソフトウェアまたは組み込みシステムプログラミングは、一連の命令を提供することによってデバイスを制御するために使用されるコンピューターソフトウェアです。ファームウェアとも呼ばれ、組み込みソフトウェアを使用して、設計上の制約(応答時間の制約、厳密な期限、処理されたデータなど)を維持し、最終データをメモリ(Ram / Rom)に保存することで、さまざまな機能を備えたさまざまなデバイスをプログラムできます。
ソフトウェアは、マシンインターフェイスによって制御または開始されます。組み込みソフトウェアは、自動車、電話、ロボット、セキュリティシステムなどのすべての電子機器に組み込まれており、最大数KBのメモリを使用して8ビットマイクロコントローラーで簡単に実行できます。複雑な操作の処理に役立ち、正確な計算フレームワークを決定します。
組み込みシステムプログラミング言語
組み込みソフトウェアは、一度に複数のタスクを実行するリアルタイムオペレーティングシステムであるオペレーティングシステムを使用します。組み込みプログラムは、C / C ++、Phyton、およびJava Scripts言語を使用してプログラムされ、Linux OS、VxWorks、Fusion RTOS、Nucleus RTOS、micro C / OS、OSEなどのオペレーティングシステムで処理されます。プログラミング言語の選択により、以下に示す特定の要因に基づく組み込みソフトウェアの開発における重要な役割
- サイズ :組み込みプロセッサ(マイクロコントローラ)には、そのアプリケーションに基づいて特定の量のROM(読み取り専用メモリ)があるため、プログラムに必要なメモリの量は重要な役割を果たします。
- 速度 :プログラムの実行速度は速くなければなりません
- 移植性: 1つのプログラムを使用してさまざまなプロセッサをコンパイルできます。
- 実装は難しい
- メンテナンスは困難です。
アセンブリ言語での組み込みシステムのプログラミング
組み込みシステムをアセンブリ言語(入力)でプログラミングし、アセンブラーを使用してマシンレベル言語(出力)に変換する方法は、次の例を使用して説明できます。 2つの別々のレジスタを使用して2つの数値を加算し、結果を出力レジスタに格納します。
入力
こちら:MOV R0、#01H
MOV#1、#02H
MOV A、R0
A、R1を追加
MOV P0、A
ここに入力
出力
アドレスオペコードオペランド
0002 0000 78 01 E8 02
0004 79 -
0005 29 -
0006 F5 80
0008 80 00
アセンブリコードは、サイズと速度の点で効率的なコードを開発するために使用されます。アセンブリ言語でより大きなコードを開発することは困難になり、ソフトウェア開発コストが高くなる可能性があり、コードの移植性が失われます。したがって、この欠点を克服するために、埋め込みCなどの高級言語を使用します。
C、C ++、Java、およびEmbeddedCについて
Cプログラミング
C言語は構造指向の言語であり、DennisRitchieによって開発されました。単純なコンパイラを使用してメモリアクセスを減らし、マシンの指示に従ってデータを効率的に配信します。組み込みシステムからスーパーコンピューターまで幅広く適用できます。
埋め込みC
組み込みCは、組み込みシステムの開発に使用されるC言語の拡張です。構文はC言語に似ています(メイン関数、関数宣言、データ型宣言、ループなど)。組み込みC言語と標準C言語の主な違いは、ハードウェアの入出力アドレス指定、固定小数点演算、およびアドレス空間の処理です。
次の利点による組み込みシステムでのCの使用
- プログラムは小さく、習得、理解、デバッグが簡単です。
- すべてのCコンパイラはすべての組み込みデバイスと互換性があります
- これはプロセッサに依存しません(つまり、特定のマイクロプロセッサまたはマイクロコントローラに固有ではありません)。
- C言語は、アセンブリ言語と高級言語の機能の組み合わせを使用します
- かなり効率的で、信頼性が高く、柔軟性が高く、異なるプラットフォーム間での移植性が高くなっています。
- Cで開発されたプログラムは、理解、デバッグ、保守が簡単です。
他の高級言語と比較してください。Cは比較的小さな構造指向言語であり、低レベルのビット単位のデータ操作をサポートしているため、柔軟性が高くなります。
C ++
C ++のようなオブジェクト指向言語は、組み込みデバイスのような研究制約環境で効率的なプログラムを開発するためのオプションではありません。仮想関数とC ++の例外処理は、システムのスペースと速度の点で効率的ではないいくつかの特定の機能です。
JAVA
組み込みシステムは、多くのリソースにアクセスするJAVA仮想マシン(JVM)を使用して、JAVA言語でプログラムできます。これは主にハイエンドアプリケーション(携帯電話など)での使用を検出し、アプリケーションを処理するためのシステム間での移植性を提供します。小型の組み込みデバイスには適していません。
埋め込みCプログラミングアーキテクチャと例
組み込みCプログラミングアーキテクチャは、8051マイクロコントローラーの使用例で理解できます。その機能は、コントローラーとコンパイラーのPORT1に接続されているLED電球を点滅させることです。使用されているのはKeilCコンパイラです。 LED点滅のコードは次のとおりです。
#include
Void delay(int)//遅延関数の宣言
Void main(void )//主な機能
{
P1 =0x00; // port1がオフになっているため、LEDがオフになり、reg51.hに保存されます。
while(1)//無限のループ
{
P1 =OxFF; //// port1がオンになっているため、LEDがオンになっています
delay(1000); //遅延を割り当てます
P1 =0X00; // port1 off
delay(1000);
}
}
Void delay(int d)//遅延関数の割り当て
{
unsigned int i =0; //ローカルに割り当てられた変数
for(; d> 0; d-)
{
for(i =250; i> 0; i–);
for(i =248; i> 0; i–);
}
}
利点
組み込みソフトウェアの利点は次のとおりです
- データの読み込みが高速です
- コストが低い
- 使用するリソースが少なくて済みます。
デメリット
組み込みソフトウェアの欠点は次のとおりです
- アップグレードは複雑です
- 問題が発生した場合は、毎回リセットする必要があります
- 小さな値のスケーラビリティは困難です。
アプリケーション
以下は組み込みソフトウェアのアプリケーションです
- バンキング
- 自動車
- 家電製品
- 車
- ミサイルなど
よくある質問
1)。組み込みソフトウェアとは何ですか?
組み込みソフトウェアまたは組み込みシステムプログラミングは、命令を提供することによってデバイスを制御するために使用されるコンピューターソフトウェアです。
2)。組み込みシステムソフトウェアで使用されるプログラムは何ですか?
組み込みシステムソフトウェアプログラムは、CまたはC ++、Phyton、およびJavaスクリプトでプログラムされています。
3)。組み込みシステムと通常のシステムの違いは何ですか?
組み込みシステムは、特定の目的のために設計されたハードウェアとソフトウェアの組み合わせです。プロセスは順番に処理されます。通常のプロセッサはRTOのリアルタイムOSですが、並列実行が必要な場合は必要です。
4)。組み込みシステムの種類は何ですか?
組み込みシステムは2つのカテゴリに分類されます
- パフォーマンスと機能要件に基づいて、リアルタイム、スタンドアロン、ネットワーク、モバイルにさらに分類されます。
- マイクロコントローラーのパフォーマンスに基づいて、さらに小規模、中規模、および高度なスケールに分類されます
5)。組み込みシステムの主な用途
組み込みシステムの主なアプリケーションは
- 洗濯機
- デジタルカメラ
- 音楽プレーヤーなど
組み込みシステムは、ハードウェアとソフトウェアの組み合わせです。組み込みシステムでは、マシンやコンピューターのパフォーマンスを制御するなど、さまざまな目的でさまざまなプログラミング言語が使用されます。現在、コンピューターのプログラマーはこれらの言語を選択するためのいくつかのオプションがありますが、プログラミング言語の間にはさまざまな相違点があります。組み込みソフトウェアプログラムがCまたはC ++、Phyton、およびJavaスクリプトでプログラムされている場合。 Linux OS、micro C / OS、QNXなどで動作します。C言語は、組み込みソフトウェアコードを記述するための基本言語を形成します。したがって、これは組み込みソフトウェアとそのアーキテクチャの概要であり、プログラムを使用して説明されています。
埋め込み