[Sis-ams] AMS successfully ported to VxWorks

Amalaye Oyake amalaye.oyake at jpl.nasa.gov
Fri Jul 14 20:20:26 EDT 2006


Hello all,

 

a little before 12:00 noon today I witnessed successful AMS communication
between a Linux (x86) node and a VxWorks (PPC) node. One of our goals for
AMS was to port AMS to a real-time operating system, such as those used
onboard spacecraft. To this end we (JPL) started a port of the underlying
AMS code to VxWorks last year. The target system was a Motorola MCP 750
running VxWorks 5.5.1 based in the Flight System Test Lab here at JPL.

 

Joseph Moholt, a student from Montana State University (now a fulltime
employee with Interface Control Systems in Maryland) was brought on and
ported much of the underlying framework (ici, icix, dgr).

 

With what that effort done, the remaining steps still proved difficult due
to various VxWorks configuration issues, the lack of an xml parser as well
as a few small subtleties that VxWorks/PPC environment expose.

 

The following steps were taken to accomplish this:

 

* Compiling the all ams libraries, into a loadable object, which entailed
resolving VxWorks include files etc.

 

* Ported the expat XML parser from Linux to VxWorks, in order to load the
AMS MIB XML file.

 

* Configured the VxWorks environment, which entailed:

  Enabling pthreads

  Enabling NFS

  Network routing so the board now sees the configuration server

  Checking the TCP send and receive buffers are set up correctly

 

* Aligning wall clock and free running clock on the VxWorks board. 

  This was a huge issue, which was only exposed after hours of testing.

  If the clocks are not set up correctly, functions like
pthread_cond_timedwait will fail.

  The clocks are aligned by aligning the tick count and clock settings

  tickGet(), clock_settime(CLOCK_REALTIME, &now), etc

 

* Enabled time slicing so that threads of equal priority do round robin
scheduling.

  Failure to do this causes functions like pthread_cond_timedwait to block. 

 

* Added debug information to VxWorks code (- g option) 

  This enabled Scott to resolve one subtle byte-order bug

 

The next few weeks will involve packaging this up in a cleaner distributable
form (mainly removing hardcoded links from the ppc-vxworks Makefiles), and
meshing the ppc-vxworks Makefiles back into the cvs tree.

 

I would like to thank Scott Burleigh and Joseph Moholt for their help in
getting to this point.

 

Sincerely,

Amalaye Oyake

 

 

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ccsds.org/pipermail/sis-ams/attachments/20060714/687343f6/attachment.htm


More information about the Sis-ams mailing list