Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 15 lip 2025, o 06:39


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 27 lis 2017, o 23:03 
    Offline
    Nowy

    Dołączył(a): 27 paź 2011
    Posty: 20
    Pomógł: 0

    Witam szanowne grono.
    Próbuję rozpoznać DMA bojem. Przy ustawieniu "DMA_CH_SRC/DESTRELOAD_BLOCK_gc", wyniki były inne, ale w symulatorze ok. Tak mam to teraz.
    Chyba najprostszy przykład jaki się da:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    przy wyłączonej optymalizacji, w symulatorze w tablicy "b" pojawia się kopia tablicy "a".
    W debugerze w "b" pojawia się kolejno od pozycji 0 do 9:
    Kod:
    0112233445

    przy optymalizacji -Os, -O2 i -O3 w symulatorze bez zmian wszystko ok. W debugerze nic się nie kopiuje i program nie wychodzi z pierwszej pętli.
    przy optymalizacji -O1 i -Og w symulatorze bez zmian. W debugerze:
    Kod:
    0001122334


    Po zmianie "DMA_CH_BURSTLEN_1BYTE_gc" na 2, 4.. zdublowane wartości pojawiają się co 2,4 bajty. Dla 4:
    Kod:
    0012334566

    Ktoś coś?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lis 2017, o 13:39 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Wgrałem Twój kod do ATxmega128A3U.
    Debuger sprzętowy Atmel ICE, interfejs JTAG, Atmel Studio 7 - wynik na zrzucie ekranu:
    Obrazek

    Tak samo jest przy każdym poziomie optymalizacji.

    Byłbym ostrożny w używaniu pracy krokowej debugera przy testowaniu DMA. Wstaw sobie jakieś asm("nop \n\t"); w pętli while(1), ustaw na nim breakpoint i wystartuj program tak, by zatrzymał się dopiero na breakpoincie, zobacz jaki będzie efekt, bo zgaduję, że w tym czasami może leżeć problem.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lis 2017, o 21:34 
    Offline
    Nowy

    Dołączył(a): 27 paź 2011
    Posty: 20
    Pomógł: 0

    Dzięki @andrews, jest dokładnie tak jak napisałeś. Bez pracy krokowej działa wszystko jak trzeba.

    pzdr



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO