Forum: Mikrocontroller und Digitale Elektronik OpenTCP MCF5235EVB


von Morph (Gast)


Lesenswert?

Hallo,
habe ein Problem mit der Übertragung meiner Daten zum Host PC,
habe ein MCF5235EVB von Freescale und habe mir den OpenTCP - Stack von 
der Seite geladen um mir Daten von Berechnungen über UDP an meinen 
HostPC zu senden. Hab am HostPC ne kleine Serveranwendung geschrieben 
mit winsockets die UDP Verbindungen entgegenimmt und verarbeitet. Hab 
den Stack soweit angepasst das ich einen UDP Socket erstelle und dann 
über Send erstmal eine kleine Nachricht übermittle, aber es kommt 
einfach nichts an.
Kann mir jmd sagen was daran falsch ist?
Hier ist die Main die aufm Board läuft:
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
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.