2013-07-20 14 views
6

Esiste un modo per indicare a gcc di ignorare l'inizializzazione per determinate variabili statiche e volatili? Ho diversi buffer circolari (dichiarati volatili) che in realtà non hanno bisogno di essere azzerati all'avvio e sulla mia MCU, è uno spreco di circa ~ 2500 t.C, saltare l'array statico di inizializzazione

Grazie in anticipo,

+0

compilazione condizionale utilizzando '#ifdef ..... # endif' ?? –

+0

hmm ... Sto parlando del runtime qui, non del tempo di progettazione. – user1973900

+0

quindi la scelta è se/else –

risposta

6

Se si utilizza gcc, è possibile inserire l'oggetto array nella sezione .noinit:

uint8_t arr[1024] __attribute__ ((section (".noinit"))); 
+0

Questa estensione non contraddice lo standard C? – SomeWittyUsername

+0

@icepack ovviamente contraddice lo standard C. – ouah

+0

@icepack - probabilmente sì - ecco perché è un'estensione. – user93353

Problemi correlati