Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[AT91SAM9260][SAM-BA][Rozwiązany] Zawieszająca się SAM-BA na Arch Linux

vmario 25 Lut 2010 20:29 2780 3
  • #1 25 Lut 2010 20:29
    vmario
    Poziom 14  

    Korzystam z płyty ewaluacyjnej MMnet1002, a więc czegoś podobnego pod względem architektury do AT91SAM9260-EK. Mam problem z SAM-B-ą pod Arch Linuksem. Korzystam z najnowszej wersji SAM-B-y CDC (2.9 RC6), ale błąd występuje także w 2.8 i 2.7. Otóż program rozpoznaje procesor, ale zawiesza się podczas ładowania apletu do SDRAM-u:

    Code:
    -I- Waiting ...
    
    -I- TCL platform : Linux
    -I- SAM-BA CDC 2.9 rc6 on : linux
    -I- Retrieved arguments from command line :
    -I- argv 0 : /dev/ttyUSB0
    -I- argv 1 : AT91SAM9260-EK
    -I- argv 2 : MMnet1000_prog.tcl
    -I- Connection : /dev/ttyUSB0 (target(comType) = 1)
    -I- Board : at91sam9260-ek
    -I- Traces Level : 4
    -I- target(handle) : file5
    Read device Chip ID at 0xfffff240 --- get 0x019803a2
    -I- Found processor : at91sam9260 (Chip ID : 0x019803a2)
    -I- External RAM Settings :  extRamVdd=1, extRamType=0, extRamDataBusWidth=32, extDDRamModel=0
    -I- Loading applet isp-extram-at91sam9260.bin at address 0x200000

    I tu SAM-BA zawiesza się na amen. Jeżeli w tym momencie zresetuje się ARM-a, to pokazuje się jeszcze:
    Code:
    -E- Error during external RAM initialization.
    
    -E- External RAM access is required to run applets.

    i SAM-BA kończy działanie.

    Co ciekawe, gdy pod tym samym systemem uruchomię w wirtualnej maszynie ten sam skrypt z tą samą wersją SAM-B-y ale pod Xubuntu, to wszystko jest OK, więc z pewnością błąd nie leży po stronie MMneta ani mojego laptopa.

    Wyśledziłem, że zwiecha występuje przy funkcji TCL_Read_Int w linii 130 pliku applets/isp-project/tcl_lib/common/generic.tcl. Po usunięciu całej pętli wokół tej linii zwiecha występuje przy kolejnym wywołaniu TCL_Read_Int.

    Problem nie jest poważny, bo mogę odpalić wirtualną maszynę i z niej wgrać co trzeba, ale jest to trochę niewygodne, nie mówiąc o zapychaniu RAM-u działającym w tle drugim systemem. Uparłem się więc i analizowałem pliki otwarte przez proces SAM-B-y, wersje jąder obu systemów, googlowałem, ale problem pozostał. Piszę w nadziei, że ktoś może natknął się na taki problem i go rozwiązał i dla informacji, że zwiecha podczas ładowania apletu może być z winy systemu i nie ma co wyrzucać PCB do kosza.

  • #2 26 Lut 2010 19:27
    Peak14
    Poziom 2  

    Ponieważ jest to mój pierwszy post na tym forum (choć zarejestrowany jestem na Elektrodzie od kilku lat), chciałbym wpierw wszystkich pozdrowić.

    Co do Twojego problemu, to właśnie wczoraj to samo ja przeszedłem. Wprawdzie posiadam inną płytę (z 91SAM9263) ale problem ten sam. U mnie (pod XP) SAMBA 2.9 i 2.8 wieszała się dokładnie w tym samym miejscu (biorąc pod uwagę Twoje logi). Ale już 2.6 zadziałała bezbłędnie. Żadnych zmian konfiguracji, tylko uninstall i install.
    Niestety nie mogę nic więcej mądrego o problemie powiedzieć, gdyż jak wspomniałem, poznaję ARM właściwie od wczoraj.

  • #3 25 Kwi 2010 12:11
    zadeqead
    Poziom 11  

    Mam ten sam problem.
    Także posiadam dystrybucję archlinux i wiesza mi się w tym samym momencie.

    Ma ktoś może wersję 2.6 sam-ba pod linuksa? Testowałem 2.7, 2.8 i 2.9 żadna nie działa.
    Programuje procesor AT91SAM7x256.

  • #4 05 Lip 2011 10:31
    vmario
    Poziom 14  

    Problem rozwiązałem, wykorzystując urządzenie /dev/ttyACM*, tworzone przez sterownik modemów USB (moduł cdc_acm), zamiast /dev/ttyUSB*. /dev/ttyACM* nie powoduje zawieszania się apletów SAM-BY, wymaga jednak dodatkowych zabiegów, gdyż SAM-BA nie przyjmuje urządzenia /dev/ttyACM* jako ścieżki dostępu. Należy więc utworzyć link, który SAM-BA zaakceptuje, np. coś z zakresu /dev/ttyUSB0.../dev/ttyUSB29. W tym celu dodajemy do udeva, np. tworząc plik /etc/udev/rules.d/90-atmel.rules, regułkę:

    Code:
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", SYMLINK+="ttyUSB29"


    Po podłączeniu ARM-a dmesg powinien nam powiedzieć coś w stylu:
    Code:
    [ 6084.069439] usb 2-1: new full speed USB device number 27 using uhci_hcd
    
    [ 6084.117346] cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem.
    [ 6084.117374] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

    a w systemie powinien pojawić się link:
    Code:
    lrwxrwxrwx 1 root root 7 07-05 10:18 /dev/ttyUSB29 -> ttyACM0


    PS. Korzystam z SAM-BY w wersji 2.10 i Arch Linuksa z jądrem 2.6.39.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME