📄 leddemo.c
字号:
#include "netstart.h"
#include "ledDemo.h"
#include "uart.h"
#include <string.h>
#include "isr.h"
#include "mac.h"
#include "timer.h"
#include <stdio.h>
#include <stdlib.h>
#include "segment7.h"
#include "..\software\source\includes.h"
#include "..\lwip064\src\include\tcpincludes.h"
extern int TEST(void);
char gAppName[24];
int nLedMode = 0;
void C_Entry ( void );
void Diag ( void );
#define FRAME_Q_SIZE 100
void *OutQSize[FRAME_Q_SIZE];
void *InQSize[FRAME_Q_SIZE];
OS_EVENT * MessageBox;
OS_EVENT * LanSendFinishSem;
OS_EVENT * FrameOutQ;
OS_EVENT * FrameInQ;
OS_STK FrameSendTaskStk[1000];
OS_STK MainTaskStk[1000];
OS_STK TestTaskStk[1000];
OS_STK TaskArpTmrStk[1000];
OS_STK TimeoutTaskStk[1000];
extern void FrameSendTask(void *pdata); // implemented in macinit.c
extern void TimeoutTask(void *pdata); // implemented in sys.c
void MainTask(void *pdata)
{
struct netconn *conn,*newconn;
struct netbuf *buf;
struct ip_addr local_addr,remote_addr;
char *data;
int i;
u16_t len;
IP4_ADDR(&remote_addr,202,204,77,27);
IP4_ADDR(&local_addr,202,204,77,64);
newconn=netconn_new(NETCONN_TCP);
netconn_bind(newconn,&local_addr,7000);
netconn_listen(newconn);
while(1) {
conn=netconn_accept(newconn);
if(conn==NULL || netconn_err(conn)!=ERR_OK) {
if(conn!=NULL)
netconn_delete(conn);
OSTimeDly(10);
continue;
}
while((buf = netconn_recv( conn ) )!=NULL) {
netbuf_first(buf);
do {
netbuf_data(buf,(void *)&data,&len);
netconn_write(conn,data,len,NETCONN_COPY);
} while( netbuf_next(buf) >= 0);
netbuf_delete(buf);
}
netconn_delete(conn);
}
}
void TestTask(void *pdata)
{
pdata=pdata;
int i=0;
int chk=0;
struct pbuf *p=NULL;
INT8U err;
struct netif *inp;
while(1) {
OSTimeDly(200);
Set7Segment((i++)%16);
if(chk)
{
IOPDATA=0x30080;
chk=0;
}
else
{
IOPDATA=0x00080;
chk=1;
}
}
}
void Time1ISR()
{
static int i=0;
i++;
}
extern err_t ethernetif_init(struct netif *netif);
void TaskArpTmr( void *pdata)
{
struct ip_addr ipaddr;
struct ip_addr netmask;
struct ip_addr gw;
IP4_ADDR(&ipaddr,202,204,77,64);
IP4_ADDR(&netmask,255,255,255,0);
IP4_ADDR(&gw,202,204,77,254);
etharp_init();
stats_init();
mem_init();
memp_init();
ip_init();
netif_init();
pbuf_init();
tcp_init();
udp_init();
netif_add(&ipaddr, &netmask,
&gw,
NULL,
ethernetif_init,
ip_input);
InitInterrupt();
UART_Initialize();
tm_init(TIMER_DEV0,ONE_SECOND/TICKS_PER_SECOND);
tm_init(TIMER_DEV1,ONE_SECOND/TICKS_PER_SECOND);
SysSetInterrupt(nTIMER0_INT, OSTimeTick);
SysSetInterrupt(nTIMER1_INT, Time1ISR);
LanInitialize() ;
Enable_Int(nGLOBAL_INT);
struct pbuf *tempbuf;
int i;
static char temp[100];
for(i=0;i<100;i++)
{
if(i<40)
temp[i]=i;
else temp[i]=0;
}
tempbuf=pbuf_alloc(PBUF_RAW,64,PBUF_POOL);
if(tempbuf)
memcpy(tempbuf->payload,temp,100);
int j=0;
IOPMOD=0x30080;
IOPDATA=0x00080;
Timer0Start();
Timer1Start();
while(1)
{
OSTimeDlyHMSM(0,0,3,0);
}
return;
}
extern int example(u8_t *ptr, int index);
void C_Entry(void)
{
int i;
for(i=0;i<100;i++)
TestTaskStk[i]=i;
OSInit();
OSTaskCreate(MainTask,(void *)0,&MainTaskStk[999],15);
OSTaskCreate(TestTask,(void *)0,&TestTaskStk[999],7);
OSTaskCreate(TaskArpTmr,(void *)0,&TaskArpTmrStk[999],4);
OSTaskCreate(FrameSendTask,(void *)0,&FrameSendTaskStk[999],5);
OSTaskCreate(TimeoutTask,(void *)0,&TimeoutTaskStk[999],8);
FrameOutQ=OSQCreate(&OutQSize[0],FRAME_Q_SIZE);
FrameInQ=OSQCreate(&InQSize[0],FRAME_Q_SIZE);
MessageBox=OSSemCreate(0);
LanSendFinishSem=OSSemCreate(1);
tcpip_init(NULL, NULL);
OSStart();
Diag();
}
void Diag(void)
{
int i;
int nShift = 3;
int count=0;
InitInterrupt();
UART_Initialize();
// Mytask((void *)12345);
// tm_init(TIMER_DEV0,ONE_SECOND/TICKS_PER_SECOND);
Enable_Int(nGLOBAL_INT);
// Timer0Start();
// void *p=malloc(1000);
IOPMOD=0x30080;
IOPDATA=0x030080;
put_byte('A');
put_byte('B');
put_char(1,'A');
put_char(1,'B');
int temp;
temp=TEST();
ARMEnableInt();
// IntConfig();
MacTest();
for(;;)
{
#if 0
LedMode0( );
delay();
LedMode1( );
delay();
LedMode2( );
delay();
LedMode3( );
delay();
PrtSysTime(TIMER_DEV0,"\r\nCurrent Time is ");
#endif
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -