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

at91sam7s256 + cross studio1.5 nie działają przerwania

elmar18 26 Paź 2010 11:29 2796 28
REKLAMA
  • #1 8664940
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    Witam
    Mam taki problem w cross studio nie działają mi przerwania, ten sam kod kompiluje przy pomocy winARM i tam ten problem nie występuje wszystko dział jak należy wiec kod jako taki odpada. Sadze ze problem leży w plikach Cstartup makefile tip ponieważ z tych plików korzysta winarm a nie korzystam z nich cross-studio. W cross-studio robię tak ze dodaje nowy projekt wybieram procesor i program mi dołącza te pliki "startowe" po czym ja dodaje kod. Kompiluje się to wszystko bez żadnych error-wo, a po załadowaniu do procka wszystko działa oprócz przerwań... ma ktoś jakiś pomysł co to będzie. Mi osobiście wydaje się ze adresy etykiety przerwań są źle ustawione ale nie mogę znaleźć gdzie się je przestawia w plikach z cross-studio.Ewentualnie może zna ktoś taki kompilator który bez problemu przyjmie gotowy program z pod winarma oraz da mi możliwość debugowania, próbowałem z eclipse ale nie chce łyknąć makefila a ja nie potrafię go przerobić( dopiero zaczynam z ARM-ami na poważnie). Może ktoś był by w stanie pomóc w przerobieniu plików projektu:http://www.freddiechopin.info/index.php/download/category/6-przyklady# tak by użyć do tego at91sam7s256. Za wszelka pomoc będę wdzięczny

    Pozdrawiam
    Marcin
  • REKLAMA
  • #2 8664957
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Znalazłeś przykłady, to poszukaj na stronie artykułu ARM toolchain - tutorial. Debuggowanie pod Eclipse działa, nie używaj przestarzałego WinARMa tylko tego o czym pisze w artykule.

    https://www.elektroda.pl/rtvforum/topic1313509.html
    https://www.elektroda.pl/rtvforum/topic1339518.html

    4\/3!!
  • #3 8665211
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    Eclipse zainstalowałem i skonfigurowałem i wszystko działa. Jeśli otworze projekt http://www.freddiechopin.info/index.php/download/category/6-przyklady# kompiluje się wiec eclipse jest ok, tylko ze to jest pod procesory lcp. Chciałbym teraz użyć procka at91 i tu pojawia się problem a mianowicie, mam już parę sampli( nie mojego autorstwa) które działają pod winarm, teraz gdy te sample dodaje do projektu w Eclipse to wyrzuca mi taki komunikat

    
    -------- begin (mode: ROM_RUN) --------
    process_begin: CreateProcess(NULL, arm-elf-gcc --version, ...) failed.
    make (e=2): Nie można odnaleźć określonego pliku.
    
    cs-make: *** [gccversion] Error 2
    


    domyślam się ze chodzi o plik make-file który jest "zerżnięty" z winarm. Pewnie trzeba by przerobić ten plik ale nie wiem jak.
    Moje sample pochodzą z książki "Mikrokontrolery at91sam7 w przykładach" dlatego zależny mi zęby je odpalić niestety nie potrafię tego pod Eclipse.

    Pozdrawiam
    Marcin
  • REKLAMA
  • #5 8665262
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    mniemam ze chodzi o to w makefile:

    
    # Define programs and commands.
    SHELL = sh
    CC = arm-elf-gcc
    CPP = arm-elf-g++
    OBJCOPY = arm-elf-objcopy
    OBJDUMP = arm-elf-objdump
    SIZE = arm-elf-size
    NM = arm-elf-nm
    REMOVE = rm -f
    COPY = cp
    


    tylko nie wiem na jaką... wiem ze to wygląda ze wszystko bym chciał mieć na tacy podane.. no ale za świeży jestem w tym temacie.. proszę o wyrozumiałość :)
  • #7 8665334
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    JA cię udało mi się :) zmieniłem na coś takiego


    # Define programs and commands.
    SHELL = sh
    CC = arm-none-eabi-gcc
    CPP = arm-none-eabi-g++
    OBJCOPY = arm-none-eabi-objcopy
    OBJDUMP = arm-none-eabi-objdump
    SIZE = arm-none-eabi-size
    NM = arm-none-eabi-nm
    REMOVE = rm -f
    COPY = cp

    skompilowało w pełni teraz zostało mi skonfigurować resztę a mianowicie połączyć opennocd. I tu tez rodzi się pytanie gdy w konsoli pisze:



    C:\>openocd -f interface/arm7_wig.cfg -f target/at91sam7sx.cfg

    to dostaje takie coś:

    Open On-Chip Debugger 0.4.0 (2010-02-22-19:05)
    Licensed under GNU GPL v2
    For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
    parport port = 0x378
    Runtime error, file "C:\Program Files\OpenOCD\0.4.0\bin\../interface/arm7_wig.cf
    g", line 9:
    invalid command name "jtag_speed"

    nie za bardzo wiem co jest sknocone sprzęt to klon wigera i płyta z at91sam7s256 wszystko sprawne bo działa z innymi środowiskami.
    Zmieniałem wartość w lini jtag _speed na 100 i nic to nie daje..
    urzywam openodc 0.4.0 z twojej strony :)


    [/code]
  • #8 8665418
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    A jakby tak zastosować standardowy plik do wigglera (parport.cfg) albo choć podejrzeć co tam jest? Nie mówiąc już o przeczytaniu manuala do OpenOCD...

    4\/3!!
  • #9 8668539
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    ok openocd ogarnięty i teraz trafiłem na kolejną przeszkodę a mianowicie nie mogę skonfigurować debuggera w Eclipse sciągnołem najnowaszą wersje i brakuje mi obcji a mianowicie robie tak jak jest w tutorialu i tak jak jest na w ostatnim pocsie tu:https://www.elektroda.pl/rtvforum/topic1313509-60.html
    Z tym ze u mnie nie ma zakładki startup i a w zakładce debbuger wymagane są dwa pliki z czego jednego gdb comand file nigdzie nie mogę znaleźć. Kurcze już jestem tak blisko upragnionego celu i dalej moja nie wiedza stanowi przeszkodę nie do pokonania, będę wdzięczny za podpowiedzi jak sobie z tym poradzić :)


    Pozdrawiam
    Marcin
  • #10 8668840
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    elmar18 napisał:
    teraz trafiłem na kolejną przeszkodę a mianowicie nie mogę skonfigurować debuggera w Eclipse sciągnołem najnowaszą wersje i brakuje mi obcji a mianowicie robie tak jak jest w tutorialu i tak jak jest na w ostatnim pocsie tu:https://www.elektroda.pl/rtvforum/topic1313509-60.html
    Z tym ze u mnie nie ma zakładki startup i a w zakładce debbuger wymagane są dwa pliki z czego jednego gdb comand file nigdzie nie mogę znaleźć.

    Zerknij na tego posta - https://www.elektroda.pl/rtvforum/topic1313509-60.html#8668849

    Nie ma takiej opcji, żeby nie było zakładki startup, zaś w zakładce Debugger przecież trzeba podać jedynie ścieżkę do GDB... Wrzuć screeny.

    4\/3!!
  • #11 8669311
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    no ja mam cos takiego:
    at91sam7s256 + cross studio1.5 nie działają przerwania

    jeszcze spróbuje odinstalować tą wtyczkę i zainstalować nową

    Pozdrawiam
    Marcin
  • REKLAMA
  • #12 8669482
    G-Men
    Poziom 11  
    Posty: 8
    Pomógł: 1
    Ocena: 1
    Jeśli masz najnowszego eclipsa i CDT 7.0 to jest tam bug polegający na tym ze nie masz w menu "GDB Hardware Debugging". Ściągnij gołego eclipsa i zainstaluj CDT 7.0.1

    http://eclipse.org/cdt/downloads.php - tu masz opisane co trzeba zrobić

    Tak to powinno później wyglądać:

    at91sam7s256 + cross studio1.5 nie działają przerwania
  • #13 8669574
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Zaraz zaraz zaraz... To nie jest "bug", tylko wtyczkę GDB Hardware Debugging trzeba sobie ściągnąć - jak jest nie ściągnięta, to jej nie ma, to co ty konfigurujesz to coś zupełnie innego.

    4\/3!!
  • #14 8669580
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    Masz racje widocznie mi się nie zainstalowała teraz jest już ok, ale nie wiem
    a co zaznaczyć w zakładce debugger dla wiggera ?? bo wyrzuca mi błąd

    Error in final launch sequence
    Failed to execute MI command:
    target remote 3333

    Error message from debugger back end:
    3333: No such file or directory.
    3333: No such file or directory.
  • #16 8669608
    G-Men
    Poziom 11  
    Posty: 8
    Pomógł: 1
    Ocena: 1
    Freddie Chopin napisał:
    Zaraz zaraz zaraz... To nie jest "bug", tylko wtyczkę GDB Hardware Debugging trzeba sobie ściągnąć - jak jest nie ściągnięta, to jej nie ma, to co ty konfigurujesz to coś zupełnie innego.


    Please note that there is a known problem with installing the optional GDB Hardware Debugging feature in CDT 7.0.1 (Bug 326176). To install the optional GDB Hardware Debugging feature, please use this build: cdt-master-7.0.1-I201009241320.

    Miałem sciągniętą wtyczke GDB i dalej w Debug configuration nie pojawiała się na liście dopóki nie zainstalowałem poprawionego CDT
  • #17 8669663
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Kilkukrotnie już instalowałem tą wtyczkę na różnych komputerach i nigdy nie pojawił się ten problem, może dlatego, że Eclipse przy okazji samo (automatycznie) ściągało nową wersję całego CDT?

    4\/3!!
  • #18 8669700
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    idzie to do przodu tylko strasznie topornie :)
    wyrzuca mi taki błąd z którym nie wiem o co mu chodzi:

    at91sam7s256 + cross studio1.5 nie działają przerwania

    moje ustawienia:
    at91sam7s256 + cross studio1.5 nie działają przerwania[/url]

    Ma ktoś jakiś pomysł? :)

    Pozdrawiam
    Marcin
  • #19 8669755
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Jeez... Zrób tak jak jest w tutorialu + poprawki z tematu o tym tutorialu ( https://www.elektroda.pl/rtvforum/topic1313509-60.html#8653959 ). Gdzie wyczytałeś, żeby ustawić wersję OpenOCD-pipe? No to skoro nigdzie takich rzeczy nie wyczytałeś, to po co tak ustawiłeś.

    Krok po kroku tak jak w tutorialu. Wszystko.

    4\/3!!
  • #20 8672571
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    Doszedłem do takiego momentu ze debugowanie działa ale raz zaraz po restarcie systemu pierwszy raz jak go włączę, za kolnymi razami nie rusza... wywala mi błąd jak w poprzednim poście. co teraz jest nie tak? :)
  • #22 8675114
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    rozłączam się przy pomocy run/terminate, nie wiem czy jest jakiś inny sposób?
  • #24 8675282
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    czasami wyrzuca jeszcze taki błąd:

    at91sam7s256 + cross studio1.5 nie działają przerwania

    moje ustawienia:
    at91sam7s256 + cross studio1.5 nie działają przerwania


    at91sam7s256 + cross studio1.5 nie działają przerwania
  • REKLAMA
  • #26 8675554
    gaskoin
    Poziom 38  
    Posty: 4159
    Pomógł: 436
    Ocena: 102
    elmar18 napisał:
    rozłączam się przy pomocy run/terminate, nie wiem czy jest jakiś inny sposób?


    W oknie debugera pojawia się sesja debugera i uruchomiony openocd, openocd nie trzeba otwierac milion razy wystarczy raz.
  • #27 8675594
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    raz tez nie pomaga, o to przykład:

    Open On-Chip Debugger 0.4.0 (2010-02-22-19:05)
    Licensed under GNU GPL v2
    For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
    parport port = 0x378
    srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
    Warn : use 'at91sam7s.cpu' as target identifier, not '0'
    Info : clock speed 500 kHz
    Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
    Info : Embedded ICE version 1
    Info : at91sam7s.cpu: hardware has 2 breakpoint/watchpoint units
    Info : accepting 'gdb' connection from 0
    Warn : acknowledgment received, but no packet pending
    Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
    Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
    target state: halted
    target halted in ARM state due to breakpoint, current mode: Abort
    cpsr: 0x200000d7 pc: 0x000213b0
    Warn : NOTE! DCC downloads have not been enabled, defaulting to slow memory writes. Type 'help dcc'.
    Warn : NOTE! Severe performance degradation without fast memory access enabled. Type 'help fast'.
    Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1823). Workaround: increase "set remotetimeout" in GDB
    Error: timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 0
    Error: failed erasing sectors 0 to 0 (-902)
    Error: flash_erase returned -902
    Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1502). Workaround: increase "set remotetimeout" in GDB
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Info : rejected 'gdb' connection, no more connections allowed
    Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1732). Workaround: increase "set remotetimeout" in GDB
    Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1001). Workaround: increase "set remotetimeout" in GDB
  • #28 8675798
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    No...

    A te komunikaty

    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed 
    Info : rejected 'gdb' connection, no more connections allowed


    to zapewne bug OpenOCD, które myśli że chce się do niego podłączyć 100x GDB, a przecież nic takiego się nie dzieje... Mhm, jasne.

    4\/3!!
  • #29 8699821
    elmar18
    Poziom 11  
    Posty: 39
    Ocena: 1
    po resecie i wyłączeniu zapory wszystko ruszyło :)

Podsumowanie tematu

✨ Użytkownik zgłosił problem z działaniem przerwań w projekcie na procesorze AT91SAM7S256 w środowisku Cross Studio 1.5, podczas gdy ten sam kod działał poprawnie w WinARM. Podejrzewał, że problem leży w plikach startowych i makefile. Po kilku interakcjach, użytkownik zainstalował Eclipse i skonfigurował go do pracy z ARM, jednak napotkał problemy z makefile oraz konfiguracją debuggera. Ostatecznie, po zmianie kompilatora na arm-none-eabi-gcc oraz poprawnej konfiguracji OpenOCD, udało mu się uruchomić debugowanie, chociaż wystąpiły problemy z połączeniem GDB. Po wyłączeniu zapory i restarcie systemu, debugowanie zaczęło działać poprawnie.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA