Microblaze Webserver

Gast #3727084
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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.