Microblaze Webserver

Gast #3727084
Lesenswert?

Hallo zusammen,

ich habe folgendes problem!
ich will mit meinem virtex 5 board einen webserver zusammenstellen, hab 
auf dem gebiet leider noch nicht sehr viel erfahrung sammeln können. ich 
habe mir schon mehrere reference designs angesehn werde aus ihnen leider 
auch nicht schlauer...

ich hab den mircoblaze mit der ethernetlite konfiguriert und würde gerne 
etwas über die lan schnittstelle nach außen schicken, nun habe ich schon 
folgenden code um dies zu bewerkstelligen:
1
int main(void)
2
{
3

4
    int Data=0b1011101010111010,ByteCount=4;
5

6

7
    XEmacLite MacLite;
8
    XEmacLite_Initialize(&MacLite, XPAR_XEMACLITE_NUM_INSTANCES);
9
    XEmacLite_CfgInitialize(&MacLite,XPAR_EMACLITE_0_BASEADDR,NULL);
10
    XEmacLite_SetMacAddress(&MacLite,&macaddress);
11
    XEmacLite_SetTxStatus(XPAR_EMACLITE_0_BASEADDR,1);
12
    while(1) XEmacLite_Send(&MacLite,Data,ByteCount);
13
}

mein momentanes problem ist dass das programm beim debuggen in der zeile
1
XEmacLite_SetMacAddress(&MacLite,&macaddress);
 hängen bleibt, da es in einer headerdatei auf eine rüggabe wartet 
(denke ich?):


xemaclite.h
1
void XEmacLite_SetMacAddress(XEmacLite *InstancePtr, u8 *AddressPtr)
2
{
3
  u32 BaseAddress;
4

5
  /*
6
   * Verify that each of the inputs are valid.
7
   */
8
  Xil_AssertVoid(InstancePtr != NULL);
9

10
  /*
11
   * Determine the expected TX buffer address.
12
   */
13
  BaseAddress = XEmacLite_NextTransmitAddr(InstancePtr);
14

15
  /*
16
   * Copy the MAC address to the Transmit buffer.
17
   */
18
  XEmacLite_AlignedWrite(AddressPtr,
19
        (u32 *) BaseAddress,
20
        XEL_MAC_ADDR_SIZE);
21

22
  /*
23
   * Set the length.
24
   */
25
  XEmacLite_WriteReg(BaseAddress,
26
        XEL_TPLR_OFFSET,
27
        XEL_MAC_ADDR_SIZE);
28

29
  /*
30
   * Update the MAC address in the EmacLite.
31
   */
32
  XEmacLite_SetTxStatus(BaseAddress, XEL_TSR_PROG_MAC_ADDR);
33

34

35
  /*
36
   * Wait for EmacLite to finish with the MAC address update.
37
   */
38
  while ((XEmacLite_GetTxStatus(BaseAddress) &
39
      XEL_TSR_PROG_MAC_ADDR) != 0);
40

41
}
 in der letzen while bleibt er hängen, meine frage ist warum? habe ich 
etwas übersehen oder vergessen? wie bekommt der den tx status ?

danke im vorraus !


bussi chantal :-*

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren