OpenTCP MCF5235EVB

Gast #1829448
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
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.