// 测试2平台的 byte order, 经实测的结果见注释:供 porting code  分析参考

// x86 platform

#include "stdafx.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
 long int str[2] = {0x41424344, 0x0}; /* ASCII "ABCD" */

 struct
    {
      unsigned short y;
      unsigned short x;
    } p; 

  
   p.x = 0x1234;  
   p.y = 0x5678;

   unsigned long *lparam,a;

   lparam = (unsigned long *)&p;
   a =  *lparam;

   printf ("%s\n", (char *)&str);       // x86    : "DCBA"  PowerPc: "ABCD"                                 
   printf ("%0x\n", a);                      // x86    :  12345678 (打印并非按内存次序)
   printf ("%0x\n", *((char*)&a+1)); // x86    :  56

                                  // powerpc: "ABCD"
                                  // powerpc: 56781234
                                  // powerpc: 78
          
   //  x86:                                         PowerPc
   //  &a 内存分配 78 56 34 12       56 78 12 34
   //  &p 内存分配 78 56 34 12                
 return 0;
}

/*--------*/
/* PowerPC application test */

#include "stdio.h"
#include <sysLib.h>
#include <vxWorks.h>
#include <taskLib.h>

void t1()
{
  long int str[2] = {0x41424344, 0x0}; // ASCII "ABCD"

 struct
    {
      unsigned short y;
      unsigned short x;
    } p; 

  
   p.x = 0x1234;  
   p.y = 0x5678;

   unsigned long *lparam,a;

   lparam = (unsigned long *)&p;
   a =  *lparam;

   printf ("%s\n", (char *)&str);  
   printf ("%0x\n", a);         
}

int t2()
{

   long id;
   id=  taskSpawn("abc",120,VX_FP_TASK,20000,(FUNCPTR)t1,
   0,0,0,0,0,0,0,0,0,0);
   return 0;
}