回答:
より高いレベルのものによってあなたが何を意味するかを定義します。ハードウェアと通信するドライバーやその他の種類のソフトウェアを作成することは、おそらく、組み込みソフトウェアについて言及するときにほとんどの人が考えていることです。それはその一部ですが、それはほんの一部です。すべての設定が済んだら、まだ実際にハードウェアと直接通信することのないアプリケーション全体が記述されています。ほとんどの場合、これが開発作業の大部分です。これは、あるレベルでは「より高い」レベルのプログラミングに匹敵する可能性があります。ただし、組み込みの世界では、特に計算能力とメモリの点で、いくつかの制約の下で作業している可能性があります。以下は、私が日常的に考えていることのリストです。ほとんどの場合、より高いレベルの開発ではおそらくそれほど重要ではありません。
また、組み込みプラットフォームは、一般的な異種混合コンピューティングのプラットフォームとして設計されたPCとは対照的に、特定の目標を達成するために高度に専門化されている傾向があります。これはおそらく、移植性があるかもしれないしそうでないかもしれない多くのカスタムコードを持っているということです。
組み込みシステムは、1つまたはいくつかの専用機能を実行するように設計されたコンピューターシステムで、多くの場合、リアルタイムコンピューティングの制約があります。
つまり、この用語は、汎用PCではないあらゆるシステムに適用できます。これは、シンプルなマイクロコントローラーからネットワーキングハードウェア、最新のゲームコンソールまでさまざまです。
「高水準のもの」を「高水準プログラミング言語を使用する」または「大規模なオブジェクト指向プロジェクト」であると見なすと、もちろん、組み込みシステムに非常に高水準のソフトウェアを使用できる可能性があります。 。
一般に、ソフトウェアが「組み込み」システム上にあることを指定することにより、ソフトウェアが何らかの方法で組み込みシステムに結合され、移植性が低下する可能性があることを意味します。
実際、これは非常に広い用語です。「Embedded」と呼ばれることを期待していないのは、PCソフトウェア、Webアプリケーション、およびサーバーソフトウェア全般です。ただし、組み込みソフトウェアがあらゆる種類の高レベルのプログラミングや設計を除外するという保証はありません。
「組み込み」が「ボックス内のコンピューター」を意味するジョブ、通常は1つの特定のタスクを実行するジョブを見ていると思います。ほとんどのLinuxディストリビューションまたはMicrosoft OSを実行している可能性がありますが、それはかなり完全であり、標準のGUI IDEなどを使用できるようになります。組み込み部品は、デバイスがマルチチャネルビデオレコーダー、メディアストリーミングデバイス、または盗難警報器として出荷されたときに実際に使用されます。
最近では、1Wデバイスで多くの処理を実行できるため、組み込みの定義はそれに応じて拡大しています。しかし、20年前でさえ、かなり標準的なDOSを実行するバッテリ駆動の組み込みデバイスがあり、その日のIDEを使用してそれらのプログラムを構築していました(たとえば、SymbolバーコードスキャナーにはCおよびPascal用のライブラリがあったため、Win3.1でTurbo Pascalを使用して実行可能ファイルをビルドします)。しかし、DOSを起動してからソフトウェアを起動する「工業用PC」も出荷しました。入力は、ステンレス製のボックスに取り付けられたいくつかの大きな防水ボタンに限定されていました。そのボックスのガラスの後ろにある15インチLCDには多くの出力オプションがありましたが、キーボードを取り付けるとボックスが開かれました(食品工場の内部)。これらはいくつかの観点からは埋め込まれていると見なされる可能性があります。ほとんどの場合、ユーザーにはエラー回復オプションがほとんどありませんでした-電源を入れ直してください。