01.06.2013 Views

IPC@CHIP Documentation - SC12 @CHIP-RTOS V1.10

IPC@CHIP Documentation - SC12 @CHIP-RTOS V1.10

IPC@CHIP Documentation - SC12 @CHIP-RTOS V1.10

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

};<br />

&myrecv_stack[1024], // top of stack<br />

1024*sizeof(int), // size of stack<br />

0, // attributes, not supported<br />

20, // priority 20(high) ... 127(low)<br />

0, // no time slicing<br />

0,0,0,0 // mailbox depth,<br />

char far * mydevicename = "MyDev";<br />

char far * IPString = "192.168.200.020";<br />

char far * NetmaskString = "255.255.255.000";<br />

DevUserDriver mydevdriver;<br />

int main(void)<br />

{<br />

//***********************************************************************<br />

// Initialize struct mydevdriver;<br />

//***********************************************************************<br />

mydevdriver.DevName = mydevicename; // Unique device name,<br />

// max. 13 chars + 0.<br />

inet_addr(IPString , &mydevdriver.IpAddr); // IP address<br />

inet_addr(NetmaskString, &mydevdriver.Netmask); // Netmask<br />

mydevdriver.iface_type = 1; // Ethernet device<br />

mydevdriver.use_dhcp = 0; // no DHCP<br />

//Important:<br />

// At the first DEV_OPEN_IFACE call for a device, IfaceHandle must be NULL.<br />

mydevdriver.IfaceHandle = 0 ;<br />

// Note: If the interface should be restarted by calling DEV_CLOSE_IFACE<br />

// and DEV_OPEN_IFACE (e.g. for changing IP configuration) the<br />

// IfaceHandle must contain at DEV_OPEN_IFACE the valid IfaceHandle handle<br />

// from the first DEV_OPEN_IFACE call.<br />

// Install your driver functions<br />

mydevdriver.DevOpen = (void far *)mydevOpen;<br />

mydevdriver.DevOpen = (void far *)mydevClose;<br />

mydevdriver.DevSend = (void far *)mydevSend;<br />

mydevdriver.DevRecv = (void far *)myDevReceive1;<br />

mydevdriver.DevFreeRecv = (void far *)0; // Since using TCP/IP buffers<br />

mydevdriver.DevGetPhysAddr = (void far *)myDevGetPhysAddr;<br />

mydevdriver.DevIoctl = (void far *)0; // Currently not supported,<br />

// pass a Null pointer.<br />

//***********************************************************************<br />

// Install the device driver interface<br />

//***********************************************************************<br />

result = Dev_Open_Interface(&mydevdriver, &errorCode); // C-Lib<br />

// if(result).....<br />

//***********************************************************************<br />

// Create the receiver task<br />

//***********************************************************************<br />

result = RTX_Create_Task(&recvID, &myrecv_defblock); // C-Lib<br />

// if(result).....<br />

// Optional, but recommended: Change priority of receiver task to high prio 4<br />

RTX_Change_TaskPrio(recvID, 4, &errorCode);<br />

//***********************************************************************<br />

//If device interface should be configured by DHCP, wait for completion<br />

//of the DHCP configuration process<br />

//***********************************************************************<br />

if (mydevdriver.use_dhcp == 1)<br />

Page 350 / 400

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!