興味深いことに、人工衛星の製造には多くのプログラミングが必要です。どの言語で書かれていますか?
9 に答える
NASA の衛星ミッションでは、搭載ソフトウェアに使用されるすべてのアセンブリ言語に関与してきました。NASAでは、以前のミッションで実績のある成功の歴史を持つコンポーネント (ハードウェアとソフトウェアの両方) を再利用して、遺産を備えたフライト ソフトウェアを使用することを強く望んでいます。そのため、最新の最も強力なプロセッサでコンパイルされたコードを使用するのではなく、最終的には弱いが実証済みのプロセッサで手動でコーディングされたアセンブリを使用することになります。たとえば、2003 年に構築され、2007 年に開始された THEMIS プロジェクトは、Intel 8085 プロセッサ上で実行され、WIND、CLUSTER、STEREO などの以前のミッションから継承されたアセンブリ モジュールを手作業でコーディングしています。
さまざまな I/O ペリフェラルに接続されたカスタム アーキテクチャを備えているため、C/C++ でプログラムするか、ASM で直接プログラムして、パフォーマンスと最適化を向上させる必要があります。
それらは完全にカスタム化されているため、問題に対する他のアプローチはないと思います。また、非常に低いエネルギーを使用する必要がある (そして太陽によって充電する必要がある) ため、それほど強力なハードウェアを持たない傾向があり、本当に最適化する必要があると考えています。 (それがASMが道である理由です)。単一の CPU サイクルを無駄にするべきではありません。
最後に、衛星に接続されているデバイスの種類は非常にまれであるため、標準的な API (RS232 など) をインターフェイスに使用するのは難しいと思います。それらはすべてのケースで異なると思います。
Z80のような多くの古いチップがサテライトで汚れた仕事をしているのを見つけても、私は驚くことはありません。単純なタスクを実行するのに十分強力だからです。
すでに述べた可能性は別として、少なくとも1 つの宇宙船は、飛行の一部を Lisp で書かれたソフトウェアによって制御されていました。
火星探査機には少なくともいくつかの C++ コード(PDF リンク)があったと言えます。彼らは Rogue Wave のTools.h++ ライブラリを使用しました。
NASA は多くの言語を使用しており、その用途と使用場所によって異なります。一部の計算および一部のスクリプト用に作成されたプログラムは、ほとんどが python を使用して作成されています。地上計器および地上管制用のプログラムは、C、C++、Ada などを使用して記述されています。搭載計器およびハードウェア用に記述された重要なプログラムは、ハードウェアを最大限に制御できるため、ほとんどがアセンブリ言語で記述されており、一部の古い言語も使用されています。衛星の多くのハードウェアは古い技術で使用されているため (古い技術が使用されているわけではありませんが、これがないと一部の機能が実行できません)、MatLab などの他の言語、Visual Basic も科学計算に使用されます。