kolec
Guest
Mon Jul 30, 2007 7:53 pm
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.
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
Adam Dybkowski
Guest
Mon Jul 30, 2007 10:59 pm
kolec pisze:
Quote:
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?
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.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Piotr
Guest
Tue Jul 31, 2007 3:24 pm
Adam Dybkowski pisze:
Quote:
...
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.
A właśnie. Jak wygląda taki proces? Można gdzieś o tym poczytać od podstaw?
--
Piotr Piwko
http://piotr.piwko.googlepages.com/
AK
Guest
Tue Jul 31, 2007 7:22 pm
Adam Dybkowski napisał(a):
Quote:
Jeżeli chcesz zacząć od ARM7TDMI (czyli np. procesora AT91SAM7S256) -
pozostaje na przykład uclinux. Ale tutaj też warto kupić gotowy
ucLinux na AT91SAM7S256 - 64kB RAM i 256 kB flash ?
Stawiam duzego browca, jak pokazesz mi takie dzialajace cudo :)
Pozdr
AK
MT
Guest
Tue Jul 31, 2007 8:10 pm
Zdziwil bys sie bardzo Kitajce z ARmow wyciagaja cuda fakt ze troche wiecej
RAMu i Flasha ale z Linuxem na pokladzie
www.denx.de
przejrzyj gotowe plyty
AK
Guest
Tue Jul 31, 2007 9:22 pm
MT napisał(a):
Quote:
Zdziwil bys sie bardzo Kitajce z ARmow wyciagaja cuda fakt ze troche
wiecej RAMu i Flasha ale z Linuxem na pokladzie
www.denx.de
przejrzyj gotowe plyty
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
Adam Dybkowski
Guest
Tue Jul 31, 2007 10:34 pm
AK pisze:
Quote:
Jeżeli chcesz zacząć od ARM7TDMI (czyli np. procesora AT91SAM7S256) -
pozostaje na przykład uclinux. Ale tutaj też warto kupić gotowy
ucLinux na AT91SAM7S256 - 64kB RAM i 256 kB flash ?
Stawiam duzego browca, jak pokazesz mi takie dzialajace cudo
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.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Piotr
Guest
Tue Jul 31, 2007 10:41 pm
MT pisze:
Quote:
Zdziwil bys sie bardzo Kitajce z ARmow wyciagaja cuda fakt ze troche
wiecej RAMu i Flasha ale z Linuxem na pokladzie
www.denx.de
Ale dalej pozostaje pytanie jak Oni go tam instalują?
--
Piotr Piwko
http://piotr.piwko.googlepages.com/
Piotr
Guest
Tue Jul 31, 2007 11:08 pm
MT pisze:
Quote:
Tak a'propo, to bardzo ciekawa strona. Ląduje w zakładkach.
--
Piotr Piwko
http://piotr.piwko.googlepages.com/
Adam Dybkowski
Guest
Wed Aug 01, 2007 12:26 am
Piotr pisze:
Quote:
Zdziwil bys sie bardzo Kitajce z ARmow wyciagaja cuda fakt ze troche
wiecej RAMu i Flasha ale z Linuxem na pokladzie
www.denx.de
Ale dalej pozostaje pytanie jak Oni go tam instalują?
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?
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Piotr
Guest
Wed Aug 01, 2007 10:20 am
Adam Dybkowski pisze:
Quote:
...
Ale może nie warto tracić na to czasu tylko wziąć gotowca ze starterkitem?
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ź.
--
Piotr Piwko
http://piotr.piwko.googlepages.com/