Systemy wbudowane.

Witam.

Przeglądałem kilka dni internet i niestety nie mogę znaleźć odpowiedzi na nurtujące mnie pytanie. Przyjrzałem się systemom wbudowanym, które obsługują procesory ARM, i jak dla mnie nie trzyma się to wszystko kupy. Jak to jest? Kupuje sobie procesor ARM, robię do niego otoczenie np. wyświetlacz LCD, UART, USB, LED itd, ale co z tym systemem operacyjnym? Jak go zainstalować i odpalać na nim jakieś programy? Czy trzeba skompilować system do pliku hex i wrzucić na kontroler, ale co z programami na niego? Proszę o przybliżenie mi tego tematu, bo niestety nie potrafię tego zrozumieć bazując na internecie. Chodzi mi o takie systemy jak QNX, uClinux itp.

Dziękuję za pomoc.

Reply to
kolec
Loading thread data ...

kolec pisze:

  1. Kupujesz starterkit z procesorem ARM9, np. AT91RM9200 czy AT91SAM9261.
  2. W starterkicie masz najczęściej zainstalowanego od razu Linuxa - wystarczy tylko podłączyć zasilanie i działa.
  3. Programy kompilujesz na pececie i uruchamiasz w starterkicie, najczęściej producent starterkitu dostarcza płytkę z niezbędnym oprogramowaniem (co skąpsi dają jednak tylko trial kompilatora komercyjnego ale zwykle wystarcza do zabawy arm-elf-gcc).
  4. Większość programów linuxowych chodzących w trybie tekstowym da się odpalić na starterkicie, o ile nie używają jakichś wydumanych bibliotek wspólnych czy pecetowych peryferiów.

Jeżeli chcesz zacząć od ARM7TDMI (czyli np. procesora AT91SAM7S256) - pozostaje na przykład uclinux. Ale tutaj też warto kupić gotowy starterkit z preinstalowanym systemem, bo sam będziesz długo walczył aż zadziała na twojej własnej wymyślonej płytce.

Możesz też pomyśleć o innych, małych systemach, niekoniecznie będących kopią Linuxa. Takich jak na przykład FreeRTOS czy Nut/OS.

Reply to
Adam Dybkowski

Adam Dybkowski pisze:

A właśnie. Jak wygląda taki proces? Można gdzieś o tym poczytać od podstaw?

Reply to
Piotr

Adam Dybkowski napisał(a):

ucLinux na AT91SAM7S256 - 64kB RAM i 256 kB flash ? Stawiam duzego browca, jak pokazesz mi takie dzialajace cudo :)

Pozdr AK

Reply to
AK

Zdziwil bys sie bardzo Kitajce z ARmow wyciagaja cuda fakt ze troche wiecej RAMu i Flasha ale z Linuxem na pokladzie

formatting link

przejrzyj gotowe plyty

Reply to
MT

MT napisał(a):

ucLinux na 16/32MB RAM i 4/8MB flash to nie problem, jak by sie uparl to i na 8 MB RAM-u pojdzie. Chociaż w przypadku uCLinux-a na blackfinie 16 MB RAM-u bylo troche za malo do jakiejs sensownej pracy - system dzialal ok, ale zeby jeszcze poscic na tym jakas konkretna aplikacje, trzeba bylo 32MB zalozyc. A tu byla mova o konkretnym procesorze z 64kB RAM i 256 kB FLASH :) Na tym uCLinux nie za bardzo bedzie dzialal.

Pozdr AK

Reply to
AK

AK pisze:

Masz rację - tak się rozmarzyłem. :) Oczywiście bez większej pamięci nie da rady a ten SAM nie ma w ogóle EBI więc z nim szanse marne.

Reply to
Adam Dybkowski

MT pisze:

Ale dalej pozostaje pytanie jak Oni go tam instalują?

Reply to
Piotr

MT pisze:

Tak a'propo, to bardzo ciekawa strona. Ląduje w zakładkach.

Reply to
Piotr

Piotr pisze:

A na którym etapie masz problem?

Najpierw trzeba zacząć od zaopatrzenia się w kroskompilator (czyli kompilator ARMa chodzący na pececie, np. arm-elf-gcc z pakietu gnuarm). Potem kompilujesz co się da, rozczajasz z czego może się zabootować procesor (np. AT91RM9200 umie wstać m.in. bezpośrednio z pamięci DataFlash), przygotowujesz odpowiednio binaria dla takiej pamięci (dalej ciągnąc przykład - to opisuje Atmel w dokumentacji bootloadera) czyli w szczególności w magicznym miejscu wektorów przerwań na początku pamięci zapisujesz ile ma cały kod przeznaczony do załadowania do RAMu. I tak dalej, kolejnymi krokami aż do odpalenia kernela Linuxa. Popatrz jak wstają gotowe dystrybucje Linuxa do systemów wbudowanych to nieco Ci się rozjaśni. Potem trzeba napisać sterowniki do konkretnego proca (jeżeli jeszcze ich w Linuxie nie ma, np. do portu szeregowego, USB, pamięci SD/MMC itp) albo spaczować obecne. Przejrzyj np. kod źródłowy oprogramowania prawie dowolnego routera Linksys'a - jest oparty na Linuxie ale chodzi w dość ograniczonym środowisku na prostej płytce, do tego obsługuje niestandardowe peryferia. Ale może nie warto tracić na to czasu tylko wziąć gotowca ze starterkitem?

Reply to
Adam Dybkowski

Adam Dybkowski pisze:

Tak, tylko kiedyś może się okazać, że przydałoby się zainstalować jakiś system na swoim urządzeniu i wtedy start-kity niestety nie pomogą.

Dziękuję za odpowiedź.

Reply to
Piotr

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.