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



Teraz jest 28 lis 2024, o 07:32


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 ]
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 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO