?? root2.c
字號:
#include "errno.h"
#include <stdio.h>
#include <psos.h>
#include <tmlib/tmtypes.h>
#include <assert.h>
#include <sys/stat.h>
#include <stdarg.h>
#include <stdlib.h>
#include <tmlib/dprintf.h>
#include "sys_conf.h"
#include "cs8900a.h"
#include "ping.h"
#include "csio.h"
#define REMOTEPORT 2000
volatile unsigned short testSignal;
extern int csInMemoryMode;
void MyFatalHandler(long error, long node )
{
/* this is for errno,display mystring:[errno string] */
const char* s="errno";
perror(s);
printf("errno =%d\n",errno);
printf("fatal error enter myfatalhandler\n");
printf("%d\n",error);
printf("%d\n",node);
}
void testtask(void)
{
unsigned short regRead;
if (csInMemoryMode)
regRead = inMEMw((unsigned short *)testSignal);
tm_wkafter(10);
}
void root(void)
{
char *mymsg = "hello,if you see this message,then the Cs8900a has sent packets success\n";
int i,msgSize;
unsigned long task1;
unsigned short Event1,Event2,Event3,Event4,st1,st2,st3,st4,le1,le2,le3,le4;
MMIO(AO_FREQ)=((UInt32) (0.5 + ( 477218588.0 * 512000.0 /
66000000.0))) |
(1U << 31); /* ensures that VO is aware of new calculation method*/
/* Read an event from the Interrupt Status Queue */
Event1 = inMEMw( (unsigned short *)(PKTPG_ISQ) );
st1 = inMEMw( (unsigned short *)(PKTPG_RX_STATUS) );
le1 = inMEMw( (unsigned short *)(PKTPG_RX_LENGTH ) );
Event2 = inMEMw( (unsigned short *)(PKTPG_ISQ) );
st2 = inMEMw( (unsigned short *)(PKTPG_RX_STATUS) );
le2 = inMEMw( (unsigned short *)(PKTPG_RX_LENGTH ) );
Event3 = inMEMw( (unsigned short *)(PKTPG_ISQ) );
st3 = inMEMw( (unsigned short *)(PKTPG_RX_STATUS) );
le3 = inMEMw( (unsigned short *)(PKTPG_RX_LENGTH ) );
Event4 = inMEMw( (unsigned short *)(PKTPG_ISQ) );
st4 = inMEMw( (unsigned short *)(PKTPG_RX_STATUS) );
le4 = inMEMw( (unsigned short *)(PKTPG_RX_LENGTH ) );
t_create("testtask",100,10000,10000,0,&task1);
t_start(task1,T_PREEMPT |T_TSLICE |T_ISR,testtask,0);
sain.sin_family=AF_INET;
sain.sin_port=htons(REMOTEPORT);
sain.sin_addr.s_addr=htonl(SD_DEF_GTWY_IP); /* det_addr= 202.112.135.65/69 */
memset(sain.sin_zero,0,8); /* Zero the rest of the struct */
socksend = socket(AF_INET,SOCK_DGRAM,UDP);
if(socksend==-1)
{printf("sock create error\n");
printf("%d\n",errno);
}
else
{
printf("sock number is %d\n",socksend);
/*bind a local port */
/*since no need to listen a port now,bind can be omitted */
/* bind(sockfd,&sain,sizeof(struct sockaddr_in)); */
msgSize = sizeof(mymsg);
for(i=0;i<2;i++)
sendto(socksend,mymsg,72,0,&sain,sizeof(struct sockaddr_in));
close(socksend);
}
for(;;)
{}
_psos_exit(-1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -