ARM i ethernet

Sep 18, 2007 7 Replies

Witam.



Przymierzam sie do kontrolerow ARM. Chce użyc jakiegos z wbudowanym interfejsem Ethernet. Czy uzycie tego interfejsu jest kłopotliwe (pomijam tu systemy operacyjne) chciałbym uzyc go z poziomu procedur ARM GCC lub jakiejs biblioteki. Nie wiem jak sie do tego zabrac wiec pytam.



Hey.


Podstawowe pytanie to o jakie ARMy chodzi? ARM7, ARM9?

Jeśli ARM7TDMI to z popularniejszych SAM7X, LPC23xx . Do obu znajdziesz stos TCP/IP uIP na

formatting link
. Źródła są pisane pod GCC. Dostępne są kompletne projekty razem z makefile. Testowałem oba projekty na modułach własnej produkcji (SAM7X256 i LPC2378) i działają stabilnie.

Jeśli ARM9 to aż się prosi odpalić Linuxa. Dlaczego pomijasz systemy operacyjne? Ze źródeł Linuxa można się wiele dowiedzieć.

pozdrawiam Krzysztof Kajstura

Look pisze:

Obejrzyj schemat dowolnego starterkitu z procesorem AT91RM9200 - tam zobaczysz jak trzeba podłączyć Ethernet 10/100 do procesora (wymaga dodania układu PHY i oczywiście trafo+gniazka). Większość starterkitów ma preinstalowanego Linuxa na pokładzie więc z komunikacją po sieci nie ma problemów.

Jeżeli chcesz to dłubać po swojemu bez Linuxa - to najpierw napisz, z jakiego innego systemu operacyjnego korzystasz na ARMach. Stos sieciowy jest mocno zależny od systemu i niełatwo go przenieść na całkiem inny system. Bez jakiegokolwiek systemu operacyjnego nie zrobisz na piechotę więcej niż ping czy transmisję UDP. Ja coś takiego pisałem ręcznie kilka lat temu na DSPka ale teraz to bym od razu wziął raczej ARM9 z Linuxem:

formatting link

Do tej pory uzywalem tylko Atmeli i troche sie boje systemow operacyjnych na mikrokontrolery. Powiedzcie mi czy jesli zastosuje ARM + Linux to nie bede mial problemu z realizacją pewnych operacji w scisle okreslonych odstepach czasowych? czy pod OS-em mam nad tym kontrole? Czy da sie tak skonfigurowac Linuxa zeby wykorzystywał jak najmniej zasobow srodowiska? chodzi np. o SDRAM itp.?

Look pisze:

Jako system czasu rzeczywistego lepiej użyć RTLinux albo QNX. Ostatnio wypuścili darmową wersję do użytku niekomercyjnego. Ale trzeba będzie nieco dłubaniny aby to odpalić na twoim sprzęcie.

Jeżeli wolisz jednak Linuxa a odstępy czasowe są krytyczne i mają wywoływać krótką operację to można zmajstrować prosty generator przerwań (na zewnątrz podpinany do ARMa) a na Linuxa napisać sterownik do jego obsługi. Jeżeli do ARMa nie podpinasz nieprzewidywalnych urządzeń (np. dysku twardego) to przerwania powinny ładnie działać nawet w zwykłym Linuxie.

czyli tak to sie robi, rozumiem. A co z obsługą SDRAM? czy da sie w niej wydzielic jakis duzy bufor (powiedzmy 80% pojemnosci) na swoją tablicę danych z której będę korzystał?

Pozdrawiam.

Look pisze:

A czy jest jakiś problem z zaalokowaniem takiego obszaru pamięci przez własną aplikację? Ważne, aby cała reszta wystarczyła na potrzeby systemu i innych procesów.

Apetycznie wylgada procesor ST str912: ! - wbudowany MAC 10/100 ! - darmowy bardzo prosty RTOS

formatting link
z pelnymi bibliotekami do tego procka ! - na stronie ST zrodla prostego servera WWW i stos TCP/IP ! - na stronie ST jest tez stos USB do "mass storage" i portu szeregowego ! - mnostwo wewnetrzengo RAM/FLASH (96kB/256kB) W polsce jakas firma robi sprzedaje gotowe moduly z tym prockiem z gniazdkiem ethernetu. Nie pamietam jaka ale widzielm. Powodzenia.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required