<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="State"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PlaceName"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PlaceType"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Lucida Console";
        panose-1:2 11 6 9 4 5 4 2 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Lucida Console";
        color:blue;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:516966289;
        mso-list-type:hybrid;
        mso-list-template-ids:1654805810 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:920681562;
        mso-list-type:hybrid;
        mso-list-template-ids:-724426140 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:64;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>Hello all,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>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.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>Joseph Moholt, a student
from <st1:PlaceName w:st="on">Montana</st1:PlaceName> <st1:PlaceType w:st="on">State</st1:PlaceType>
<st1:PlaceType w:st="on">University</st1:PlaceType> (now a fulltime employee with
Interface Control Systems in <st1:State w:st="on"><st1:place w:st="on">Maryland</st1:place></st1:State>)
was brought on and ported much of the underlying framework (ici, icix, dgr).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>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.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>The following steps were
taken to accomplish this:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Compiling the all ams
libraries, into a loadable object, which entailed resolving VxWorks include
files etc.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Ported the expat XML
parser from Linux to VxWorks, in order to load the AMS MIB XML file.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Configured the VxWorks
environment, which entailed:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; Enabling pthreads<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; Enabling NFS<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; Network routing so
the board now sees the configuration server<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; Checking the TCP
send and receive buffers are set up correctly<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Aligning wall clock and
free running clock on the VxWorks board. <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; This was a huge issue,
which was only exposed after hours of testing.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp;&nbsp;If the clocks
are not set up correctly, functions like pthread_cond_timedwait will fail.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp;&nbsp;The clocks
are aligned by aligning the tick count and clock settings<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp;&nbsp;tickGet(), clock_settime(CLOCK_REALTIME,
&amp;now), etc<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Enabled time slicing so
that threads of equal priority do round robin scheduling.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; Failure to do this
causes functions like pthread_cond_timedwait to block. </span></font><font
size=2 face="Lucida Console"><span style='font-size:10.0pt;font-family:"Lucida Console"'><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>* Added debug information
to VxWorks code (- g option)</span></font> <font size=2 face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>&nbsp; This enabled Scott
to resolve one subtle byte-order bug<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>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.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>I would like to thank
Scott Burleigh and Joseph Moholt for their help in getting to this point.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>Sincerely,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'>Amalaye Oyake<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Lucida Console"><span
style='font-size:10.0pt;font-family:"Lucida Console"'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>