Elektroda.pl
Elektroda.pl
X
Hotair
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wrganie Linux na mikrokontroler.

cmasterb 17 Sty 2012 19:47 2349 12
  • #1 17 Sty 2012 19:47
    cmasterb
    Poziom 9  

    Witam.
    Ostatnio nabyłem drukarkę, całkiem fajna, dotykowy ekran, ale widać nie mam na nią zbyt dobrego wpływu, bo w trakcie użytkowania cały ekran zniknął i pojawił się tylko mały migający znak podkreślnika.
    To jednak natchnęło mnie dwoma myślami - "na tej drukarce jest Linux, a nie oprogramowanie producenta!" - to pierwsza myśl. Druga - a gdybym ja chciał wgrać Linuxa na mikrokontroler- co musiałbym zrobić?

    I tu właśnie pytanie do Kolegów- co musi mieć na sobie płytka z mikrokotrolerem, żeby linux na niej działał? Ponadto, jak wgrać na takiego linuxa jakiś program, który ma się na naszym hardware wykonywać (tzn. czy wgrywa się najpierw system a później program, czy wszystko naraz)? I w końcu - czy obsługa potencjalnego ekraniku odbywa się poprzez sterowniki, czy jest do tego jakaś kostka?

    Wiem, że moje pytania są baaardzo śmieszne dla ludzi zaawansowanych, ale taka wielka prośba- nie bijcie i nie usuwajcie mojego posta. Chcę uzyskać jakiekolwiek odpowiedzi, bowiem temat mnie zafascynował.

    Pozdrawiam serdecznie i dziękuję za odpowiedzi

    0 12
  • HotAir
  • #2 17 Sty 2012 21:20
    tmf
    Moderator Mikrokontrolery Projektowanie

    Aby uruchomość GNU?Linux musisz mieć CPU z obsługą MMU. A swoje aplikacje uruchamiasz dokładnie tak jak pod linuksem na PC, niczym się to nie różni. Aby odpalić napisany przez siebie program potrzebujesz cross-kompilator, który wspiera CPU na którym działa linuks. Obsługa panela dotykowego odbywa się poprzez sterowniki w systemie, a te mogą się z nim komunikować bezpośrednio (np. za pomocą ADC mikrokontrolera) lub za pośrednictwem specjalizowanego kontrolera (co jest bardziej prawdopodobne). Generalnie jeśli na tej drukarce istotnie działa Linuks to producent musi ci udostępnić jego źródła.

    0
  • #3 17 Sty 2012 22:58
    gaskoin
    Poziom 38  

    Generalnie nie jest to do końca trywialna sprawa i na początek bym Ci polecał jednak coś mniej rozbudowanego np jakiegoś małego darmowego RTOSa (FreeRTOS)

    0
  • #4 19 Sty 2012 18:40
    cmasterb
    Poziom 9  

    Że to nie jest trywialne to ja wiem, do uC próbowałem podchodzić kilka razy; teraz zainwestuję w książkę tmf, bo zbiera same dobre komentarze;).

    Czyli nie każdy mikrokontroler może obsługiwać linuksa. A jaki jest najprostszy CPU z rzeczoną obsługą MMU ?

    Dziękuję za odpowiedzi, pozdrawiam.

    0
  • HotAir
  • Pomocny post
    #5 19 Sty 2012 18:54
    Freddie Chopin
    Specjalista - Mikrokontrolery

    cmasterb napisał:
    A jaki jest najprostszy CPU z rzeczoną obsługą MMU ?

    Takie nigdy nie są proste. Przynajmniej ARM9 albo Cortex-A8.

    4\/3!!

    0
  • Pomocny post
    #6 19 Sty 2012 19:05
    tmf
    Moderator Mikrokontrolery Projektowanie

    Niestety, nie dość, że nie są proste, to jeszcze mają kosmiczne obudowy (w stylu BGA i 400 kulek), w najlepszym wypadku TQFP i 200 nóżek. W dodatku zazwyczaj trzeba podłączyć zewnętrzny FLASH, DRAM, a że procek jest szybki, so samo wykonanie PCB proste nie jest i właściwie 4 warstwy są niezbędne. To już lepiej sobie kupić jakiś access point z linuksem i kompletem narzędzi i dodać do tego ew. to co jest potrzebne. AVR to zupełnie inna para kaloszy i tu z lineksem nie powalczysz zupełnie, no chyba, że myślisz o AVR32, w praktyce o AP7000 (polecam świetną płytkę NGW100).

    0
  • #7 19 Sty 2012 19:05
    tronics
    Poziom 36  

    Freescale Coldfire V4e też działa z Linuksem jeśli mnie pamięć nie myli (tyle tylko, że w PL raczej ciężko o te procki) Za to ten Linux nie przypomina raczej tego czego można by oczekiwać po obejrzeniu np. Mandrivy czy Ubuntu ;)

    0
  • #8 19 Sty 2012 19:30
    cmasterb
    Poziom 9  

    Nie no, wiadomo że mowa o linux bez jakiegokolwiek gui i zbytniego obciążenia.

    Tu akurat nie myślałem o zastosowaniu sieciowym, także acces point raczej odpada.

    Uwzględniając FLASH i DRAM potrzebna jest w zasadzie prymitywna płyta główna.

    NGW100 jest wycofana, jej następczynią jest NGW100 mkII (źródło) i, co najciekawsze- ma preinstalowany (o ile dobrze zrozumiałem) Linux. Bardzo ciekawe i wygodne rozwiązanie.

    A jak wobec tego wygląda wgrywanie cross-kompilatorem?

    0
  • Pomocny post
    #9 19 Sty 2012 19:51
    gaskoin
    Poziom 38  

    W najprostszym przypadku będzie to poprostu kompilacja źródeł lub rozpakowanie gotowej kompilacje i wgranie jej na kartę SD, na procka tylko jakiś boot co załaduje z niej linuksa i można chulać. Jak nie wiesz jak to wszystko działa i współgra ze sobą to nie radziłbym się za to zabierać. Tym bardziej, że nigdy mówisz nie miałeś za bardzo do czynienia z mikrokontrolerami i uwierz mi - to będzie dla Ciebie droga przez mękę.

    Możesz też poczytać o µCLinux bo tenże nie wymaga chyba aż takich zasobów sprzętowych. Da się go chyba nawet na Cortexa-M3 wgrać.

    0
  • Pomocny post
    #10 19 Sty 2012 20:27
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak jak mówi gaskoin. Zacznij od czegoś prostszego, żeby załapać idee, nie rzucałbym się od razu na głęboką wodę. Co do NGW100 czy NGW100MkII, w sumie to jedno, te płyty mają interfejs sieciowy i USB, masz także soft zawierający cross-kompilator i potrzebne biblioteki. Po prostu na PC piszesz i kompilujesz program, a wynikowy plik elf przerzucasz na płytkę z linuksem, przy pomocy karty SD, sieci, USB, jak wolisz. Linuks na tej płytce działa tak samo jak na PC, z tym, że nie ma karty graficznej, więc komunikacja odbywa się przez terminal, w sumie żaden problem. Nie skreślałbym też zbyt pochopnie access pointów itp. To, że nie interesuje cię sieć nie znaczy, że obecność tych interfejsów w czymś przeszkadza. Po prostu z nich nie korzystasz i tyle. Płyty z tych urządzeń to po prostu najtańsze rozwiązanie.

    0
  • Pomocny post
    #11 20 Sty 2012 00:14
    Byron
    Poziom 10  

    Witam.

    Na poczatek proponuje zapoznac sie z QEMU. Olbrzymie mozliwosci emulacji. Lacznie z
    LCD. Stawiasz na tym Embedded Linuxa i eksperymentujesz. Nic Cie to nie kosztuje.

    Gdy zdobedziesz podstawy to proponuje router TP-LINKa MR-3220 (platforma MIPS32), a do tego OpenWrt na poczatek. To bardzo prosta i przyjemna dystrybucja.

    Marcin

    0
  • Pomocny post
    #12 20 Sty 2012 21:19
    1929296
    Użytkownik usunął konto  
  • #13 22 Sty 2012 21:43
    cmasterb
    Poziom 9  

    Dziękuję wszystkim za odpowiedzi.

    Plan działania jest już opracowany - po przetrwaniu sesji PC zaprzyjaźnia się z Ubuntu/Debianem i jazda ze symulatorami. Jak na symulacji coś co byćmoże uda mi się wyprodukować, zwrócę się do Kolegów z dalszymi pytaniami.

    Pozdrawiam

    0