logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak wgrać program na AT91SAM9260 przez USB bez RS232 i LPT?

vbnero 02 Kwi 2009 15:15 6629 22
REKLAMA
  • #1 6366233
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    Witam wszystkich.
    Ostatnio moja uczelnia zmusiła mnie do zaprogramowania mnimodułu firmy Propox opartego o arma AT91SAM9260. Zakupiony zestaw to:
    minimoduł MMnet1001 http://www.propox.com/products/t_231.html

    płytę ewaluacyjną EVBmmTm http://www.propox.com/products/t_183.html

    wyświetlacz graficzny http://www.sklep.propox.com/index.php?d=produkt&id=2081
    programator JTAG http://www.propox.com//products/t_206.html.

    Na pokładzie wgrany jest linuks Kernel 2.6.28.8, natomiast system oparty jest na OpenWrt.
    Nie jestem z tym tematem za bardzo obeznany i nie posiadam portu RS232 ani LPT, tylko USB, więc stąd moje pytania:
    - Czy zna ktoś dla tego procka środowisko, które wgra mi program przez USB? Wszystkie, które znalazłem, to albo RS, LPT albo po koreańsku. Co prawda znalazłem Crossworks, który łączy się przez J-TAG, ale nie widzę tam nigdzie opcji wgrania programu.
    - Dowiedziałem się, że mogę wgrywać programy prze ethernet, ale muszę wcześniej ustawić hasło łącząc się Hyperterminalem przez RS (którego nie mam w laptopie). Czy jest szansa, że którykolwiek konwerter RS-USB zadziała w tym przypadku? Musze dostać się do portu DBGU, aby ustawić hasło dostępu.

    Może miał ktoś już do czynienia z takim, lub podobnym zestawem firmy propox i chciałby się podzielić ze mną swoją wiedzą, będę bardzo wdzięczny. Muszę napisać program, który będzie pobierał i wysyłał dane przez USB i prawdę mówiąc, nie wiem jak się do tego zabrać. 2 tygodnie już walczę, aby zainstalować jakieś środowisko od edytora kody, przez kompilator do flashera, ale jak na razie idzie mi delikatnie mówiąc kiepsko. Dlatego też zdecydowałem się w końcu na napisanie tego postu.
    Pozdrawiam
    Konrad
  • REKLAMA
  • #2 6367627
    filug
    Poziom 15  
    Posty: 134
    Pomógł: 7
    Ocena: 11
    AT91SAM9260 zaprogramujesz używając atmelowej SAMBY.

    Problem jest tylko taki, że po podłączeniu MMnet do kompa poprzez USB device, nie zostanie wykryto procesor przez windowsa - nie uruchomi się SAM-BA bootloader w samym procesorze.

    Aby go uruchomić trzeba w jakiś sposób uniemożliwić uC start z pamięci Flash. Możesz to zrobić zakładając zworkę JP1 (czyli przywierając PC15) do masy. Wtedy niestety zostanie nadpisana pamięć Flash i już później nie wstanie system - w celu przywrócenia do stanu pierwotnego będziesz musiał programować Flasha od nowa.

    Druga możliwość to odlutowanie rezystora R28 - Flash będzie wtedy niewidoczny dla uC.

    Mam nadzieję, że chociaż trochę naprowadzi Cię to na trop ... sam walczę z tym prockiem tyle, że na MMnet1002.

    --
    pozdrawiam
    filug
  • #3 6368377
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    Używając Samby próbowałem. Ale albo źle próbuję wgrywać, albo nie wiem nic nie działa. Samba wygląda na zwieszoną. Przyznam szczerze, że potrzebuję "gotowca" na teraz, bo mi się termin zbliża. Do napisania mam ciągle komunikację USB, a na razie nie wiem jak to zmusić do życia.
    Niestety nie mogę w żaden sposób ingerować w płytkę. Moim marzeniem jesz tekst na LCD, który wyświetla "Cześć".
    Pozdrawiam
    Konrad
  • REKLAMA
  • #4 6370017
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    A nie da się połączyć przy pomocy Jtaga +samba?
    Jeszcze nie sprawdzałem czy sam9 się tak da programować , ale sam7 tylko tak w ten sposób programuje.
    ps
    Proszę o info czy koś próbował, jak nikt to mogę sprawdzić
    Pozdrawiam

    edit
    Ciekawe dlaczego propox wstrzymał sprzedaż tego programoatora i prosi o kontakt telefoniczny lub mejlowy.
    Osobiście używam AT91SAM-ICE z seguro, jest droższy o 100zl i działa
  • #5 6370914
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    No to jak mówiłem. Używałem samby + jtaga, ale wiesza mi się przy programowaniu.
  • REKLAMA
  • #6 6371137
    filug
    Poziom 15  
    Posty: 134
    Pomógł: 7
    Ocena: 11
    ja na samym początku robiłem tak:

    w opcjach linkera zaznaczałem, że program ma być ładowany pod adres 0x20000000 (czyli SDRAM, kompilowałem program ...

    i później w sambie - zakładka "SDRAM":
    1. wybierasz i klikasz "Enable Sdram",
    2. w "Send File Name" ustawiasz plik z wsadem,
    3. klikasz Send File
    4. w linii komend wpisujesz "go 0x20000000"

    mi w ten sposób udało się zmusić program do wystartowania z pamięci SDRAM.
  • #7 6387587
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    filug napisał:
    ja na samym początku robiłem tak:

    w opcjach linkera zaznaczałem, że program ma być ładowany pod adres 0x20000000 (czyli SDRAM, kompilowałem program ...

    i później w sambie - zakładka "SDRAM":
    1. wybierasz i klikasz "Enable Sdram",
    2. w "Send File Name" ustawiasz plik z wsadem,
    3. klikasz Send File
    4. w linii komend wpisujesz "go 0x20000000"

    mi w ten sposób udało się zmusić program do wystartowania z pamięci SDRAM.


    A możesz mi powiedzieć jakiego środowiska używasz do pisania i kompilacji programów?
  • #8 6387622
    filug
    Poziom 15  
    Posty: 134
    Pomógł: 7
    Ocena: 11
    w chwili obecnej:
    Code Sourcery zainstalowane pod Fedorą - pod Windowsem miałem problemy przy komilacji u-boot'a.

    Było także GNU ARM i okazjonalnie, na samym początku Keil uVersion.

    Sam dopiero zaczynam zabawę z tym uC więc próbuję wszystkiego :)
  • #9 6388626
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    Z tego co wyczytałem, to Code Sourcery jeszcze nie wspiera ARM 9 (którego niestety ja właśnie mam). Ja próbuję pisać używając właśnie GNU ARM, ale jakoś mi nie idzie. Przydał by się taki poradnik krok po kroku jak się za to zabrać (konfiguracja środowiska, jakie łącza, jakie programy). Gdzieś ostatnio coś podobnego znalazłem (dotyczyło Eclipse z pluginem dla ARM), ale niestety zawieruszyło mi się po ostatniej awarii systemu.
  • #10 6388641
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    1. Toolchain od CodeSourcery obsługuje każdego istniejącego ARMa, wliczając w to ARM7, 9, 11 i Cortexy.

    2. Nie ma żadnej sensownej wtyczki do Eclipse dla ARMów.

    4\/3!!
  • #11 6389933
    arrevalk
    Poziom 25  
    Posty: 450
    Pomógł: 94
    Ocena: 7
    @freddie Chopin
    A yagartho? Fakt że trzeba się pomęczyć żeby to skonfigurować, i dodatkowo wiele rzeczy trzeba ręcznie przestawiać. Ale mi się na tym dobrze pracuje.
    @vbnero
    Jeżeli ten moduł ma na pokładzie linuxa to nie jest problemem wrzucać mu programy przez ftp. Kwestia znajomości hasla i loginu.
    Co do konwerterow usb/rs232 to powinien ci zadziałać każdy bo port DBGU ma tylko dwie linie TxD oraz RxD. Mi bardzo dobrze emuluje pełny port rs konwerter z chipem PL2302, kupilem go w markecie za 10zl.
    Pytanie czy aplikacje masz napisać od podstaw czy też może kożystać z linuxa jako systemu operacyjnego.
  • #12 6390140
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    arrevalk napisał:
    @freddie Chopin
    A yagartho?

    Co yagarto? Yagarto obsługuje w zasadzie chyba tylko ARM7 i może niektóre ARM9. Nie jest też żadną wtyczką do eclipse.

    4\/3!!
  • #13 6391351
    arrevalk
    Poziom 25  
    Posty: 450
    Pomógł: 94
    Ocena: 7
    Yagartho to kompilacja GCC a wg dokumentacji GCC(4.3.3) rdzeń arm926ej-s jest na liście wspieranych architektur(zresztą są na niej chyba wszystkie achitektury arm włącznie ze StrongARM). I masz racje nie jest wtyczką do eclipse, mój bład.
  • #14 6391596
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    arrevalk napisał:
    @freddie Chopin
    A yagartho? Fakt że trzeba się pomęczyć żeby to skonfigurować, i dodatkowo wiele rzeczy trzeba ręcznie przestawiać. Ale mi się na tym dobrze pracuje.
    @vbnero
    Jeżeli ten moduł ma na pokładzie linuxa to nie jest problemem wrzucać mu programy przez ftp. Kwestia znajomości hasla i loginu.
    Co do konwerterow usb/rs232 to powinien ci zadziałać każdy bo port DBGU ma tylko dwie linie TxD oraz RxD. Mi bardzo dobrze emuluje pełny port rs konwerter z chipem PL2302, kupilem go w markecie za 10zl.
    Pytanie czy aplikacje masz napisać od podstaw czy też może kożystać z linuxa jako systemu operacyjnego.


    No właśnie problemem jest wrzucanie przez ftp, bo muszę najpierw hasło ustawić :), a do tego potrzebuję RS i hyperterminal (tak twierdzi propox). Ale skoro twierdzisz, że można USB->RS w markecie kupić, to jak mi tylko jakiś otworzą, to zaraz się wybiorę i spróbuję ustawić hasło. Co do aplikacji, to myślę, że może ona korzystać z Linuksa.

    Wiem, że pytanie może głupie, ale jak po wrzuceniu przez ftp uruchomić program ?
  • #15 6392689
    arrevalk
    Poziom 25  
    Posty: 450
    Pomógł: 94
    Ocena: 7
    To jest linux wiec traktujesz ten moduł tak samo jakbyś się zdalnie łączył z jakimś komputerem (telnet,ssh itp). Można też przez wirtualną konsole (która jest na porcie DBGU, może ona być wyłączona, zmienić coś takiego można w bootloaderze, uwaga ta konsola często pracuje w trybie root, wiec prosto nią coś namieszać). Krótko mówiąc musisz mieć jakieś podstawy programowania i obsługi linuxa.
    Jako hosta do tworzenia programów/łączenia z wszelkimi modułami z linuxem embedded ja wykorzystuje innego linuxa (Ubuntu) tak jest prościej.
    I niekoniecznie Hyperterminal, może być Herkules, puTTy itp.
    Poza tym piszesz że już coś próbowałeś zaprogramować na tym module sambą lub jtagiem. Wiec najprawdopodobniej nadpisałeś system tymi działaniami, będziesz musiał go przywrócić. Pewnie jest to opisane w instrukcji do modułu. Jest kilka książek opisujących jak wykorzystywać linuxa w systemach embedded (niekoniecznie o army ale robi się to tak samo):
    Karim Yaghmour, Building Embedded Linux Systems, O'Reilly 2003
    Doug Abbot, Linux for Embedded and Real-time Applications, Newnes 2003
    M. Mitchell, J. Oldham, A. Samuel, Advanced Linux Programming, New Riders 2001 (wydana po polsku)
    N. Matthew, R. Stones, Beginning Linux Programming, Wiley Publishing, Inc. 2007
    Co do uruchamiania programu po skopiowaniu to robi się to mniej więcej tak:
    Po skopiowaniu ftpem programu do katalogu np /home/uzytkownik, logujemy sie telnetem na moduł i przechodzimy do danego katalogu. Nadajemy plikowi prawa do wykonywania (czasem nie trzeba tego robic, a jeżeli już to tylko jednorazowo):
    #chmod +x ./program

    Nastepnie uruchamiamy program:

    I możemy się cieszyć efektami naszej pracy, jeżeli to był program "Hello World!" to w terminalu powinna się pojawić linijka:

    Taki program można też uruchamiać razem ze startem systemu, po prostu trzeba dodać odpowiednią linijkę do skryptu statowego zlokalizowanego w katalogu /etc.
    Można by tak długo jeszcze tłumaczyć wszysko tylko że miejsca na to niema. Jak będziesz miał problemy to postaram się Ci pomóc na bieżąco.
  • #16 6398403
    vbnero
    Poziom 10  
    Posty: 21
    Ocena: 1
    arrevalk napisał:
    Jako hosta do tworzenia programów/łączenia z wszelkimi modułami z linuxem embedded ja wykorzystuje innego linuxa (Ubuntu) tak jest prościej.
    I niekoniecznie Hyperterminal, może być Herkules, puTTy itp.
    Poza tym piszesz że już coś próbowałeś zaprogramować na tym module sambą lub jtagiem. Wiec najprawdopodobniej nadpisałeś system tymi działaniami, będziesz musiał go przywrócić. Pewnie jest to opisane w instrukcji do modułu.

    A więc mam pytanie:
    - co znaczy, że z Ubuntu jest prościej?
    Linux jest wgrany, bo po pierwszych próbach przywróciłem go.
    Z góry dziękuję za odpowiedzi.
  • #17 6469782
    Kalvis
    Poziom 13  
    Posty: 141
    Pomógł: 1
    Ocena: 2
    Witam.
    Od niedawna także mam ten moduł. Do wgrania plików na moduł używam TFTP. Ja z kolei mam problem ze skonfigurowaniem środowiska. Niby w opisie od Propoxu jest napisane, że na płycie (płytkach) jest kompletne oprogramowanie: "Na płycie CD dostarczany jest kros-kompilator, znajduje się on w archiwum OpenWrt-SDKat91-
    for-Linux-i686.tar.bz2" ale go tam nie ma. To samo tyczy się kilku przykładowych programów.
    W tym manualu napisane jest także o konieczności kompilacji programów w środowisku linux. Mam ubuntu odpalonego na wirtualnej maszynie VMware.
    Nie wiem czego użyc do pisania i kompilacji programu pod tego linuxa. Chciałbym chociaż odpalic jakiś prosty programik typu "hello world" żeby by byc pewnym, że mam wszystko przygotowane do właściwego pisania.
    Niestety nie wiem jaki kompilator sciągnąc pod tę platformę i jak go zainstalowac w linuxie. Propox dopiero pisze tego manuala i na bieżąco uaktualnia płytę ale nie chce mi się czekac tak długo.
    Podsumowując:
    Co musze zainstalowac i jak na linuxie aby muc kompilowac program.
    Jakiej komędy użyc do kompilacji.
  • #18 6471142
    arrevalk
    Poziom 25  
    Posty: 450
    Pomógł: 94
    Ocena: 7
    Cytat:
    A więc mam pytanie:
    - co znaczy, że z Ubuntu jest prościej?

    Bo Ubuntu to prosta dystrybucja. Intuicyjna, nie wymagająca znajomości konsoli, architektury systemu do prostych zadan. Łatwo jest na niego przenieść z windowsa. A chodziło mi raczej o to że rozwijanie aplokacji na linuxa embedded kożystając z hosta linuxowego jest prostsze. A dlaczego:
    1. linux to linux wszystko sie na nim robi tak samo niezależnie od platformy(nie mówię o sprawach niskopoziomowych w kernelu)
    2. Kod pisany na system embeded można w 99% przypadków uruchomić bez żadnych albo z niewielkimi zmianami na hoście(dopada pracochłonne przerzucanie programu na target po każdej poprawce)
    3. gcc jest natywny na linuxa.
    Po długich walkach i próbach stworzenia stabilnego środowiska do budowania kernela i aplikacji linuxowych na windowsie stwierdziłem ze po prostu prościej jest zrobić to na linuxie i nie żałuje tej decyzji.
    @Kalvis
    Do programowania pod linuxem potrzeba zainstalować:
    -pakiet build-essential (gcc, make, binutils itp)
    -jeżeli będziesz kompilował kernel za pomocą polecenia menuconfig lub gtkconfig to trzeba zainstalować dodatkowo pakiety -dev do biblitek gtk oraz ncurses
    Aby kompilować kernel potrzebujesz(powinny być dostępne razem z modułem):
    -kompilatora pod daną architekturę + binutils(poszukac na sieci, albo samemu skompilowac go)
    -źródeł bootloadera, kernela, i aplikacji.
    Dokładnie jak to zrobić opisane jest w książkach które podałem kilka postów wyżej. Ogólnie niezależnie jaki jest system na którym rozwijamy aplikacje(host) i system docelowy (target) procedura postępowania jest taka sama, zmieniają się jedynie niektóre parametry w poleceniach, czy prefixy nazw narzędzi.
    Proponuje zajrzeć na forum.ubuntu.pl do działu programowanie tam jest krótki wstęp do programowania w linuxie.
  • REKLAMA
  • #19 6991454
    eros81
    Poziom 14  
    Posty: 175
    Pomógł: 1
    Ocena: 5
    Zamierzam sobie kupić ten moduł.

    Jak tam stabilność jego pracy??
    Macie z nim problemy??
    Jaka jest jego wydajność ??

    Uruchomiliście na nim jakieś ciekawe aplikacje które potrafią wykorzystać moc tego modułu??
  • #20 6991889
    marekos
    Poziom 16  
    Posty: 140
    Pomógł: 14
    Ocena: 4
    Jakość tego modułu jest tragiczna zwłaszcza w porównaniu do oryginalnej płyty Atmela AT91SAM9260-EK, właściwie to nic na niej nie udało mi się uruchomić w między czasie powstała własna płyta z tym prockiem schemat na podstawie Atmela i działa rewelacyjnie. Problemy od początku były z NAND Flashem i systemem plików, a bez tego nie da się zrobić kroku do przodu. Support Propoxu na tym problemie się kompletnie wyłożył i nie potrafił dać żadnych rad co dalej, moduł powędrował do szuflady.
  • #21 6992157
    eros81
    Poziom 14  
    Posty: 175
    Pomógł: 1
    Ocena: 5
    marekos napisał:
    Jakość tego modułu jest tragiczna zwłaszcza w porównaniu do oryginalnej płyty Atmela AT91SAM9260-EK, właściwie to nic na niej nie udało mi się uruchomić w między czasie powstała własna płyta z tym prockiem schemat na podstawie Atmela i działa rewelacyjnie. Problemy od początku były z NAND Flashem i systemem plików, a bez tego nie da się zrobić kroku do przodu. Support Propoxu na tym problemie się kompletnie wyłożył i nie potrafił dać żadnych rad co dalej, moduł powędrował do szuflady.

    Toś mnie przeraził
    To pierwsza taka opinia o tym module.
  • #22 7164597
    kafka
    Poziom 22  
    Posty: 662
    Ocena: 17
    Czy wie ktoś jaką komendą w Sam-bie można zrestartować procka? Mam na myśli komendy samby typu FLASH::Init, FLASH::EraseAll (to są komendy z sam7). Powinna być taka sama niezależnie od procka. O ile istnieje.
  • #23 7263740
    belamy
    Poziom 11  
    Posty: 25
    eros81 napisał:
    marekos napisał:
    Jakość tego modułu jest tragiczna zwłaszcza w porównaniu do oryginalnej płyty Atmela AT91SAM9260-EK, właściwie to nic na niej nie udało mi się uruchomić w między czasie powstała własna płyta z tym prockiem schemat na podstawie Atmela i działa rewelacyjnie. Problemy od początku były z NAND Flashem i systemem plików, a bez tego nie da się zrobić kroku do przodu. Support Propoxu na tym problemie się kompletnie wyłożył i nie potrafił dać żadnych rad co dalej, moduł powędrował do szuflady.

    Toś mnie przeraził
    To pierwsza taka opinia o tym module.



    Bez obawy, nie jest tak źle a może nawet lepiej :)
    Mam dokładnie taki sam zestaw:
    - MMnet1001 z AT91SAM9260
    - EVBmm

    Działa bez żadnych problemów, może dlatego, że mam przejściówkę USB<->RS232 Prolific-a za 10zł ;-)
    Startuje od razu po podłączeniu zasilania, na terminalu RS232 wszystko wyświetla, całe bootowanie: AT91Bootstrap, u-boot i start OpenWRT.

    Właśnie wybieram środowisko RTOS albo Linux-a.
    Na razie żadnych problemów.

    Pozdrawiam.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy programowania modułu Propox MMnet1001 opartego na procesorze ARM AT91SAM9260 przez USB bez użycia portów RS232 i LPT. Standardowe metody wgrywania oprogramowania, takie jak SAM-BA bootloader, wymagają fizycznej ingerencji w sprzęt (np. założenia zworki JP1 lub odlutowania rezystora R28), co może skutkować nadpisaniem pamięci Flash i utratą systemu. Próby programowania przez JTAG i SAM-BA często kończą się zawieszeniem. Alternatywnie można wgrywać programy do pamięci SDRAM i uruchamiać je komendą "go" w SAM-BA. Wgrywanie oprogramowania przez Ethernet (TFTP, FTP) jest możliwe, ale wymaga wcześniejszej konfiguracji hasła, co zwykle wymaga dostępu przez RS232 lub konwerter USB-RS232. Do komunikacji z modułem można używać terminali takich jak PuTTY czy Hercules. Środowiska programistyczne polecane do kompilacji to CodeSourcery, GNU ARM oraz Yagarto, przy czym CodeSourcery obsługuje ARM9. Rozwój oprogramowania na Linux Embedded jest łatwiejszy przy użyciu hosta z systemem Linux (np. Ubuntu), ze względu na natywne wsparcie GCC i prostszą konfigurację narzędzi. Wśród użytkowników pojawiły się opinie o problemach ze stabilnością i wsparciem technicznym modułu Propox, zwłaszcza w porównaniu do oryginalnych płytek Atmela. Jednak inni potwierdzają poprawne działanie zestawu z użyciem konwertera USB-RS232 Prolific i standardowego bootowania systemu OpenWRT.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA