Freedom III e compilazioni fallite
- Mauro Laurenti
-
- Moderatore
-
per il commento, devi usare /*****/ e non //*******.....
Avevo apportato un'altra modifica nella libreria 5.2.0 ed è stata quella di commentare uint64_t e int64_t . Il formato 64 bits non è suppportato.
Il compilatore reclamava.
Fatte queste modifiche ha funzionato con la nuova versione MPLAB X 6.2 e compilatore XC8 2.5 e il nuovo 3.0
Puoi ripostare la lista degli errori/messaggi del compilatore?
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
Il commento su una riga dovrebbe funzionare anche come //*******
Ho replicato il tuo errore.
E' la versione nuova del compilatore. Devi compilare con la versione precedente a alla 3.0
Scarica la versione 2.x
Vedrò poi i dettagli per aggiornare, se necessario al compilatore XC8 3.0.
E' uscito da poco e lo zero lo evito comunque.
Saluti,
Mauro Laurenti
Si prega Accesso o Crea un account a partecipare alla conversazione.
www.microchip.com/en-us/tools-resources/.../mplab-ecosystem#xc8
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Black
-
Autore della discussione
- Nuovo Utente
-
- Messaggi: 19
- Ringraziamenti ricevuti 1
ho appena provato a ricompilare il progetto Freedom_III_Test_Suite con il seguente software:
MPLAB X v6.20, XC8 v2.4, Packs v1.4.87 ed LTlib v5.2.0. Finalmente la compilazione è arrivata in fondo.
La differenza di software rispetto all'ultimo test che ho postato (fallito) è il compilatore. La versione 3.0 in effetti non funziona, mentre la 2.4 ha funzionato.
Le modifiche che ho apportato sono solamente nel file di libreria module_UART.h delle LTlib v5.2.0, ovvero relativamente alla UART2 ho sostituito:
"#define UART2_is_busy( ) (!TXSTA2bits.TRMT)" con "#define UART2_TX_busy( ) (!TXSTA2bits.TRMT)", così come avevamo già visto alcuni giorni fa.
Ma infatti. Il parser del compilatore dovrebbe considerare tutto ciò che segue il doppio slash "//" come commento, ovvero dovrebbe ignorarlo. Nella versione XC8 v3.0 sembra invece che interpreti i caratteri successivi a "//" ed interpreta quindi un asterisco come sequenza di caratteri /* che ovviamente vuole prima o poi una chiusura (*/).Il commento su una riga dovrebbe funzionare anche come //*******
Grazie. Avevo la v2.4 ed ho usato questa e, come detto, riuscendo a compilare.L'archivio dei compilatori lo trovi qui: .....
Sono comunque usciti 5 warning. Tutti di tipologia simile, ovvero di una conversione implicita. Te ne riporto un paio per completezza, ma a me non sembrano problemi particolari:
e, con nomi di tipi diversi:./analog_test.c:61:32: warning: implicit conversion changes signedness: 'unsigned int' to 'int' [-Wsign-conversion]
delta_read = reference_value - read;
~ ~~~~~~~~~~~~~~~~^~~~~~
Grazie per tutte le dritte. Abbandonerò la versone 3.0 di XC8 finchè non sarà necessario eseguire qualche upgrade del compilatore../analog_test.c:164:22: warning: implicit conversion loses integer precision: 'unsigned long' to '__s_int16' (aka 'int') [-Wconversion]
LCD_write_integer (sum,2, LCD_ZERO_CLEANING_ON);
~~~~~~~~~~~~~~~~~ ^~~
Si prega Accesso o Crea un account a partecipare alla conversazione.
Ho fatto dei test aggiuntivi dopo essermi documentato sulla nuova versione XC8 3.0
Non sono presenti cambiamenti grossi se non per la versione Clang e controlli aggiuntivi.
Tutti gli errori di direttive non terminate erano legate sempre ai commenti
//***************************
non lo accetta più
deve essere:
/**************************/
ha fatto dei cambi veloci alle librerie e sono riuscito a compilare con 3.0.
Devo ripulire il codice, delle librerie 5.2 visto che faccio uso ampio dei commenti:
//***************************
Per il resto le librerie 5.2 sono compatibili con il compilatore 3.0
Per le warning non sono presenti errori, ma lavorerò per eliminarle o limitarle.
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
