piątek, 17 sierpnia 2018

Wyłączenie optymalizacji funkcji w GCC

Szybka notka - pewna biblioteka z której korzystałem miała "softwarowy" delay w postaci nopów...
I co za tym idzie miała pewne "wbudowane" wady - różnie mogła działać dla różnych zegarów STMki, dla różnych wartości prefetcha itp. Dodatkowo też działała różnie dla różnych opcji optymalizacji kompilacji. Oczywiście lekarstwem na to było przerobienie tego delaya na sprzętowy na timerze co potem zrobiłem, ale na szybko znalazłem fajny motyw. Otóż możemy oznaczyć pojedynczą funkcję, żeby była skompilowana w jakimś konkretnym trybie np:



void __attribute__((optimize("O0"))) foo(unsigned char data) {

    // unmodifiable compiler code

}


ot, ciekawostka :)

0 komentarze:

Prześlij komentarz