1. ホーム
  2. c

[解決済み] 身近な機械はどのようにプログラムされているのか?[クローズド]。

2022-05-06 10:39:01

質問

<余談
クローズド . この質問はもっと必要です 集中的 . 現在、回答は受け付けておりません。

<パス

この質問を改善したいですか? 問題を更新して、1つの問題だけに焦点を当てるようにする。 本論文の編集 .

クローズド 昨年 .

身近な機械(コンピュータやモバイル機器というより、家電やデジタル時計など)は、どのようにプログラムされているのでしょうか?コカ・コーラの自動販売機のプログラミングには、どんなコードが使われているのでしょうか?私のコーヒーメーカーは、あらかじめプログラムされた時刻を受け入れ、その時刻になったら何時間か後にコーヒーを淹れ始めるのだろうか?

この種の機械にはOSが搭載されているのでしょうか、それとももっと基本的なものなのでしょうか。アセンブリ言語、C言語、その他の言語で書かれているのだろうか?

そして、これらのオペレーティングシステムや基礎となるコードシステムをリストアップしているリソースを、可能であればソースコードも含めて見つけたいと思います。もし誰かがそのようなリソースを知っていれば(検索しても何も出てきません)、それは素晴らしいことです。

解決方法は?

あなたが話していることのほとんどは、C言語が利用できないかもしれない贅沢な組み込みシステムです。 特に、設計者が使用するチップを「マイクロコントローラ」と表現している場合は、デスクトップや携帯電話のようにOSの下で動作する個別のプログラムでないことがよくあります。

ほとんどの場合、ソフトウエアはC言語かアセンブリで書かれています。 C言語はそのプラットフォーム用に書かれたコンパイラが必要ですが(うまく最適化しないと肥大化した非効率なasmを生成するかもしれません)、単純なアセンブラはテキストを1行ずつマシンコードにするだけなので、簡単に書くことができます。 (そして、もしベンダーが自社のマイクロコントローラーを誰かに買ってもらいたいのであれば、開発を魅力的にするために少なくともアセンブラは存在するようにするでしょうし、時には非最適化ではありますがCコンパイラも存在することが多いでしょう)

コーヒーポットや、そのようなシンプルなシステムのほとんどは、オペレーティングシステムを搭載していないんだ。 単にメモリ内の開始アドレスからロードして、そこにコードを置くだけです。 多くの場合、これらのシステムは、システムのハードディスクとして機能するEEPROMにコードを書き込んでいます。 EEPROMやフラッシュの種類によっては、RAMにロードすることなく、フラッシュから直接コードを実行できる場合もあります。 (デバイスは自身のフラッシュメモリに書き込むことができないかもしれませんが、それは外部ツールを使って行います。 編集/コンパイル/実行のサイクルには、シミュレータでテストしない場合、実際のハードウェアのフラッシュを再プログラミングすることが含まれます)。

コカコーラ社のマシンやルーターなどは、一般的にQNXやEMBOS、運が良ければRTlinuxなどのリアルタイムOSを使用しています。 これらのほとんどは、高額なライセンス料を払って購入するプロプライエタリなOSですが、Cコンパイラやハードウェアと連動するドライバなどが用意されています。

http://www.qnx.com/

http://www.segger.com/cms/embos.html

http://www.microsoft.com/windowsembedded/en-us/campaigns/compact7/default.aspx?WT.srch=1&WT.mc_ID=SEARCH

RTLinux