开发者

Languages used to write programs for satellite-missions?

开发者 https://www.devze.com 2022-12-20 18:36 出处:网络
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 ?The NASA satellite missions I\'ve been involved

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 ?


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.


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!


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.


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


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.


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.


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.


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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号