Witam.
Po kilku dniach ślęczenia udało mi się w końcu wysłać i odebrać pinga do karty sieciowej na układzie um9008 i AVRka.
Ale mam pytanie odnośnie zapisu/odczytu pakietu w buffer ring.
Wszędzie w dokumantacji pisze, że przed pakietem wstawiane są cztery bajty:
1- status 2- next_ptr_nieodebrany - numer strony następnego pakietu 3- liczba odebranych bajtów Lo 4- liczba odebranych bajtów Hi 5 - ........ pakietNie wiem dlaczego, ale u mnie jest to prawdziwe tylko dla pierwszego odczytu tzn: przy inicjalizacji karty ustawiłem rejestry tak:
RBCR0 = 0x0 RBCR1 = 0x0 RSAR0 = 0x0 RSAR1 = 0x0 PSTART = 0x40 PSTOP = 0x80
BNDRY = PSTART
CURR = PSTART + 1 (jak ustawiałem CURR=BNDRY= PSTART to karta wogóle nie chciała czytać chyba traktowała to jako przpełnienie bufora)
next_ptr = PSTART + 1 (numer strony nieprzeczytanego pakietu) itd.......
przed pierwszym odczytem (remote read) dma ustawiam: RBCR0 = 0xFF RBCR1 = 0xFF RSAR0 = 0x00 RSAR1 = next_ptr_nieodebrany itd.......
po odczycie pierwszego pakietu ustawione jest niby dobrze
next_ptr = next_ptr_nieodebrany (PSTART + 2) BNDRY = PSTART + 1 CURR = PSTART + 2
przed drugim odczytem znów ustawiam: RBCR0 = 0xFF RBCR0 = 0xFF RSAR0 = 0x00 RSAR0 = next_ptr_nieodebrany itd.....
i już przy tym drugim i następnych odczytach wszystko jest jakby przesunięte o jeden bajt do dołu tak jakby RSAR0 trzebaby ustawiać na 0x01.
1- jakiś bajt ........... 2- status 3- next_ptr - adres następnego pakietu 4- liczba odebranych bajtów Lo 5- liczba odebranych bajtów Hi 6 - ........ pakietNie wiem co to jest ten jakiś bajt czy ta moja karta coś dodaje o czym nie piszą w dokumentacji?
Może miał ktoś do czynienia z takim czymś i wie gdzie robię błąd?
Serdeczne dzięki za pomoc Pozdrawiam Pawełr