J
jacob navia
Mankind has now two robots wandering about in the planet Mars. No,
it wasn't Mars that invaded Earth, but Earth that landed in Mars
more than two years ago.
After some initial OS glitches (Chris Torek can comment
on those probably) in the Spirit robot, software has done
smoothly ever since.
All the software is written in C, what is a good decision
but also a bad one, C with its warts and all...
In the last two weeks, a software upgrade was sent from
earth to Mars, and the upgrade is scheduled to be
tested this days. Software upgrades take a lot of time
when they are done with several million kilometers
distance!
The Mars Exploration Rover software (MER) is around
650 000 lines of C. The Ames research center developed a
static tester for the software [2] and in 30 minutes
it discovered...
o Un-initialized variable usage
o Returning the address of a local variable (!!!!)
o Overflow in constant expression.
I wonder what kind of compilers does the VXWorks system
use, but almost all compilers I know of will try to
diagnose this kind of errors...
In a news item published in Space daily [1], Green Hills software
boasted that
< quote >
"Green Hills Software Tools Critical To Mars Rover Missions"
Both the "Opportunity" rover, launched July 7, and the "Spirit" rover,
launched June 10, are being directed and controlled by software programs
and systems written with the use of Green Hills development tools.
< end quote >
Green Hills doesn't emit a diagnostic for returning the address of
a local variable?
References:
[1]
http://www.marsdaily.com/reports/Green_Hills_Software_Tools_Critical_To_Mars_Rover_Missions.html
[2]
http://ic.arc.nasa.gov/researchinfusion/materials/CGS/SMC-IT03.pdf
it wasn't Mars that invaded Earth, but Earth that landed in Mars
more than two years ago.
After some initial OS glitches (Chris Torek can comment
on those probably) in the Spirit robot, software has done
smoothly ever since.
All the software is written in C, what is a good decision
but also a bad one, C with its warts and all...
In the last two weeks, a software upgrade was sent from
earth to Mars, and the upgrade is scheduled to be
tested this days. Software upgrades take a lot of time
when they are done with several million kilometers
distance!
The Mars Exploration Rover software (MER) is around
650 000 lines of C. The Ames research center developed a
static tester for the software [2] and in 30 minutes
it discovered...
o Un-initialized variable usage
o Returning the address of a local variable (!!!!)
o Overflow in constant expression.
I wonder what kind of compilers does the VXWorks system
use, but almost all compilers I know of will try to
diagnose this kind of errors...
In a news item published in Space daily [1], Green Hills software
boasted that
< quote >
"Green Hills Software Tools Critical To Mars Rover Missions"
Both the "Opportunity" rover, launched July 7, and the "Spirit" rover,
launched June 10, are being directed and controlled by software programs
and systems written with the use of Green Hills development tools.
< end quote >
Green Hills doesn't emit a diagnostic for returning the address of
a local variable?
References:
[1]
http://www.marsdaily.com/reports/Green_Hills_Software_Tools_Critical_To_Mars_Rover_Missions.html
[2]
http://ic.arc.nasa.gov/researchinfusion/materials/CGS/SMC-IT03.pdf