用于编写卫星任务程序的语言?

发布于 2024-08-22 16:44:01 字数 40 浏览 4 评论 0原文

出于兴趣,我们知道卫星的制造涉及很多程序。它们是用哪些语言编写的?

Just out of interest , we know there's a lot of programming involved in the making of a satellite . Which languages are they written in ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

皓月长歌 2024-08-29 16:44:01

我参与的 NASA 卫星任务都使用汇编语言来编写机载软件。 NASA 强烈倾向于使用具有传统的飞行软件——重复使用在之前的任务中具有成功经验的组件(硬件和软件)。因此,与其在最新、最强大的处理器上使用编译代码,
我们经常最终在微弱但经过验证的处理器上使用手工编码的汇编。例如,
THEMIS 项目于 2003 年建立并于 2007 年启动,在 Intel 8085 处理器上运行,带有手工编码的组装模块,这些模块继承了之前的任务(如 WIND、CLUSTER 和 STEREO)。

The NASA satellite missions I've been involved with all used assembly language for the onboard software. There is a strong preference at NASA to use flight software with heritage -- reusing components (both hardware and software) with a proven successful history on previous missions. So rather than using compiled code on the latest, most powerful processors,
we often end up using hand-coded assembly on wimpy, but tried-and-true, processors. For example,
the THEMIS project, built in 2003 and launched in 2007, runs on Intel 8085 processors, with hand-coded assembly modules with heritage from previous missions like WIND, CLUSTER, and STEREO.

另类 2024-08-29 16:44:01

由于它们具有连接到各种 I/O 外设的自定义架构,因此应该使用 C/C++ 或直接使用 ASM 进行编程,以获得更好的性能和优化。

它们是完全自定义的,因此我认为没有其他方法可以解决该问题,还认为它们必须使用非常低的能量(并且必须通过太阳能充电),因此它们往往没有那么强大的硬件并且必须真正优化(这就是 ASM 的方式)。您不应该浪费任何一个 CPU 周期!

最后,连接到卫星的设备类型确实不常见,所以我认为很难使用任何类型的标准 API 进行接口(如 RS232 等),我认为它们对于每种情况都是不同的。

如果我发现许多像 Z80s 这样的旧芯片在卫星上做肮脏的工作,我不会感到惊讶,只是因为它们的功能足够强大,尽管它们的 8 位总线可以完成简单的任务!

Since they have a custom architecture connected to miscellaneous I/O peripherals they should be programmed in C/C++ or directly in ASM for better performance and optimizations..

They are fully custom so I don't think there are other approaches to the problem, think also that they have to use really low energy (and must be charged by sun) so they tend to have not so powerful hardware and must be REALLY optimized (that's why ASM is the way). You shouldn't waste any single CPU cycle!

Lastly the kind of devices attached to a satellite are really uncommon so I think it's difficult to use any kind of standard API to interface (like RS232 or so on), I think they're different for every case.

I wouldn't surprise myself to find many old chips like Z80s doing the dirty work on a satellite just because they're powerful enough to do simple tasks although their 8bit bus!

审判长 2024-08-29 16:44:01

除了已经提到的可能性之外,至少有一艘航天器受到控制由 Lisp 编写的软件用于其飞行的一部分。

Aside from the possibilities that have already been mentioned, at least one spacecraft was controlled by software written in Lisp for part of its flight.

桃酥萝莉 2024-08-29 16:44:01

我可以告诉你 火星漫游者至少有一些 C++ 代码(PDF 链接);他们使用了 Rogue Wave 的 Tools.h++ 库

I can tell you that the Mars Rover had at least some C++ code (PDF Link); They used Rogue Wave's Tools.h++ library.

我最亲爱的 2024-08-29 16:44:01

此处提到了 C、C++ 和 Ada(是的,作者可以不要将“Ada”大写)。 C 代码可以手动编写,也可以从 Scade 生成。

C, C++ and Ada are mentioned here (yes, the authors can't capitalize "Ada"). The C code may be written by hand or generated from Scade.

深海夜未眠 2024-08-29 16:44:01

与任何其他软件工作一样,考虑到各种有效的业务和 IT 驱动因素,用于在卫星中执行某些功能的语言将是最合适的语言。

如果您环顾四周,您会发现航空航天领域使用不​​同语言的示例。鉴于您的问题,您可能想看看 Ada,这通常是被称为在“实时系统”中使用,一篇新闻文章,其效果为 这里列出了一些非国防用户在这里

As with any other software endeavour, the language used to perform some function in a satellite will be the most appropriate language given the various business and IT drivers in effect.

You'll find examples of different languages being used in aerospace if you look around. Given your question, you probably want to have a look at Ada, which is often referred to as being used in 'real-time systems', a news article so that effect is here, some non-defence users are listed here.

浪荡不羁 2024-08-29 16:44:01

美国宇航局和洛克希德公司使用的大多数操作语言都以统计和微积分为中心。因此意味着 MATLAB、haskell、Erlang 和 scala。 MATLAB 和 Erlang 是需要配置的主要工具。

而硬件方面的事情将以汇编、C 和 Verilog 为中心。

Most of the operational languages used at NASA and Lockheed center around statistics and calculus. Thus meaning MATLAB, haskell, Erlang, and scala. MATLAB and Erlang being the big ones that was requested for provisioning.

While the hardware end of things is going to be centered around Assembly, C and Verilog.

笑咖 2024-08-29 16:44:01

NASA 使用多种语言,并且根据用途和使用地点的不同而有所不同。为某些计算和某些脚本编写的程序主要是使用 python 编写的。地面仪器和地面控制的程序是用C、C++、Ada等编写的。机载仪器和硬件的关键程序大多是用汇编语言编写的,因为它对硬件的控制能力最强,而且一些旧语言也使用了汇编语言。由于卫星上使用的许多硬件都是旧技术(这并不意味着它们已经过时,因为有些功能没有它们就无法完成),并且其他语言如MatLab、Visual Basic也用于科学计算。

NASA uses many languages and it varies on the basis of its uses and where it is used. The programmes written for some calculation and for some scripting are written in mostly using python. The programmes for ground instruments and ground control are written using C, C++, Ada, etc. The critical programmes written for the on board instruments and hardware are mostly in Assembly Language as it gives the most control over the hardware and some old languages are also used as many hardware on the satellite are of old technologies(It doesn't mean they're out dated cause some functions are impossible to do without them) and other languages like MatLab, Visual Basic is also used for scientific calculations.

无妨# 2024-08-29 16:44:01

你不能只对所有系统使用一种程序,大多数他们使用Matlab和P

you can not use just one program for all system, mostly they use Matlab and P

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文