Witam,
Próbuję uruchomić data cache dla AT91SAM9260.
Wszystko jest niby fajnie, prosty program z wyświetlaniem co sekundę countera przyśpiesza 6-cio krotnie ale problemy zaczynają się z bardziej rozbudowanymi programami.
Mam taki kod:
Jeśli cache jest wyłączony to na ekranie widzę:
1 0 28
0 0 27
0 0 27
0 0 28
0 0 27
0 0 27
1 0 28
0 0 27
0 0 27
...
Czyli wszystko się zgadza bo widać że co 5Hz mam 1 w pierwszej kolumnie.
Teraz po uruchomieniu data cache na ekranie mam coś takiego:
1 1 28
1 1 28
1 1 28
1 1 28
1 1 28
...
Przecież w pętli 30Hz kasuję zmienną n5HzLoopCounter więc dlaczego cały czas mam 1 na wyjściu?
Optymalizację kodu w gcc mam na 0.
Cache nie powinien tak działać.
Ma ktoś jakiś pomysł co może być przyczyną?
Chyba że coś mam źle skonfigurowane.
Próbuję uruchomić data cache dla AT91SAM9260.
Wszystko jest niby fajnie, prosty program z wyświetlaniem co sekundę countera przyśpiesza 6-cio krotnie ale problemy zaczynają się z bardziej rozbudowanymi programami.
Mam taki kod:
Kod: C / C++
Jeśli cache jest wyłączony to na ekranie widzę:
1 0 28
0 0 27
0 0 27
0 0 28
0 0 27
0 0 27
1 0 28
0 0 27
0 0 27
...
Czyli wszystko się zgadza bo widać że co 5Hz mam 1 w pierwszej kolumnie.
Teraz po uruchomieniu data cache na ekranie mam coś takiego:
1 1 28
1 1 28
1 1 28
1 1 28
1 1 28
...
Przecież w pętli 30Hz kasuję zmienną n5HzLoopCounter więc dlaczego cały czas mam 1 na wyjściu?
Optymalizację kodu w gcc mam na 0.
Cache nie powinien tak działać.
Ma ktoś jakiś pomysł co może być przyczyną?
Chyba że coś mam źle skonfigurowane.