1 | #define UDP_PORT 1234
|
2 | #define UDP_RMTHOST_IP 0xC0A8010B
|
3 | #define UDP_RMTHOST_PRT 1234
|
4 |
|
5 | int main (void)
|
6 | {
|
7 |
|
8 | int16 len;
|
9 | int16 reset_timer;
|
10 | int16 packet_status;
|
11 | int8 retVal = 0;
|
12 | uint8 i = 0;
|
13 | uint8 net_buf[12];
|
14 | uint32 udp_host_ip = ((UINT32)IPS1)<<24 | ((UINT32)IPS2)<<16 | ((UINT32)IPS3)<<8 | IPS4;
|
15 | uint16 udp_host_port = 1234;
|
16 | /* Enable interrupts */
|
17 | mcf5xxx_wr_sr(0x2000);
|
18 |
|
19 | printf("\nMCF523x Initialization Complete!\n");
|
20 |
|
21 | /* Init Opentcp UDP Connection*/
|
22 |
|
23 | eth_stub_init();
|
24 | init_timerpool();
|
25 | fec_init(&fec_nif);
|
26 | arpinit();
|
27 | udp_init();
|
28 |
|
29 | /* Set 10 ms timer for OpenTCP timers */
|
30 |
|
31 | MCF_PIT_PCSR0 = MCF_PIT_PCSR_PRE(0x09); /* Divide fsys/2 by 512 --> 16.8 us/tic */
|
32 | MCF_PIT_PCSR0 |= MCF_PIT_PCSR_OVW | MCF_PIT_PCSR_PIE |
|
33 | MCF_PIT_PCSR_PIF | MCF_PIT_PCSR_RLD |
|
34 | MCF_PIT_PCSR_EN;
|
35 |
|
36 | MCF_PIT_PMR0 = 1465; /* Interrupt every 10 ms */
|
37 |
|
38 | MCF_INTC0_ICR36 = MCF_INTC0_ICRn_IL(TIMER_NETWORK_LEVEL);
|
39 | MCF_INTC0_IMRH &= ~MCF_INTC0_IMRH_INT_MASK36;
|
40 |
|
41 | /* Enable FEC Rx Frame interrupts to ColdFire core */
|
42 | MCF_INTC0_ICR27 = MCF_INTC0_ICRn_IL(FEC_LEVEL);
|
43 | MCF_INTC0_IMRL &= ~(MCF_INTC0_IMRL_INT_MASK27 | MCF_INTC0_IMRL_MASKALL);
|
44 |
|
45 |
|
46 | /* Initialize network device */
|
47 | //fec_init(&fec_nif);
|
48 |
|
49 |
|
50 | /* Write ethernet address in the NIF structure */
|
51 | fec_nif.hwa[0] = mac[0];
|
52 | fec_nif.hwa[1] = mac[1];
|
53 | fec_nif.hwa[2] = mac[2];
|
54 | fec_nif.hwa[3] = mac[3];
|
55 | fec_nif.hwa[4] = mac[4];
|
56 | fec_nif.hwa[5] = mac[5];
|
57 |
|
58 | /* Initialize Network Buffers */
|
59 | //nbuf_init();
|
60 |
|
61 | /* Register protocol handlers */
|
62 |
|
63 | nif_bind_protocol(&fec_nif, FRAME_IP, opentcp_fechandler, "IP PROTOCOL");
|
64 | nif_bind_protocol(&fec_nif, FRAME_ARP, opentcp_fechandler, "ARP PROTOCOL");
|
65 |
|
66 | /* Start ethernet */
|
67 |
|
68 | fec_nif.reset(&fec_nif);
|
69 | fec_nif.start(&fec_nif);
|
70 |
|
71 | /* Set OpenTCP localmachine */
|
72 |
|
73 | localmachine.localip = ((UINT32)IP1)<<24 | ((UINT32)IP2)<<16 | ((UINT32)IP3)<<8 | IP4;
|
74 | //localmachine.localip = 0xC0A80101;
|
75 | localmachine.localHW[0] = mac[0];
|
76 | localmachine.localHW[1] = mac[1];
|
77 | localmachine.localHW[2] = mac[2];
|
78 | localmachine.localHW[3] = mac[3];
|
79 | localmachine.localHW[4] = mac[4];
|
80 | localmachine.localHW[5] = mac[5];
|
81 | localmachine.defgw = ((UINT32)GW1)<<24 | ((UINT32)GW2)<<16 | ((UINT32)GW3)<<8 | GW4;
|
82 | localmachine.netmask = ((UINT32)SM1)<<24 | ((UINT32)SM2)<<16 | ((UINT32)SM3)<<8 | SM4;
|
83 | localmachine.tos = 0;
|
84 |
|
85 | printf("IP Address: %d.%d.%d.%d\n", IP1, IP2, IP3, IP4);
|
86 | printf("Subnet Mask: %d.%d.%d.%d\n", SM1, SM2, SM3, SM4);
|
87 | printf("Gateway: %d.%d.%d.%d\n", GW1, GW2, GW3, GW4);
|
88 |
|
89 |
|
90 |
|
91 | /* Start UDP Connection */
|
92 | socket = udp_getsocket(0 , udp_eventlistener , UDP_OPT_SEND_CS | UDP_OPT_CHECK_CS);
|
93 | if(socket == -1 )
|
94 | {
|
95 | DEBUGOUT("No free UDP sockets!! \r\n");
|
96 | RESET_SYSTEM();
|
97 | }
|
98 | udp_open(socket,UDP_PORT);
|
99 |
|
100 | /* Creating message */
|
101 | for(i=0;i<12;i++)
|
102 | net_buf[UDP_APP_OFFSET+i]='a';
|
103 |
|
104 |
|
105 | /* Start sending message */
|
106 | while(1)
|
107 | {
|
108 | udp_send(socket,UDP_RMTHOST_IP,UDP_RMTHOST_PRT,net_buf,NETWORK_TX_BUFFER_SIZE,12);
|
109 | }
|
110 |
|
111 |
|
112 | }
|