[WIN] Aggiornam. compilatore IDE 0022-0023-1.0 all'ULTIMA VERSIONE ATMEL

E' un si, però ritengo molto difficile che sia incappato in questa cosa a meno che non usa delle LUT di grandi dimensioni.

Ultima domanda: possiamo quindi tranquillamente affermare di aver risolto il problema generale, senza stare troppo ad approfondire la questione?
Concordi con me che se non riesco ad affermare questa cosa, il lavoro resta al livello sperimentale e non è più presentabile/proponibile come un upgrade che risolve un problema ormai noto?

Fra poco posto la tabella con i test che ho fatto con un tri-blink semplice.
EDIT: la sola compilazione (IDE 0022-4.5.1) per un 1284P 1MHz mi dà questo errore:

test_80k.cpp:126:41: error: 'ring_buffer' has not been declared
test_80k.cpp: In function 'void blinkLED(uint8_t, uint8_t, uint8_t)':
test_80k.cpp:256:7: error: 'LEDPIN_TOGGLE' was not declared in this scope
test_80k.cpp: In function 'void annexCode()':
test_80k.cpp:327:42: error: 'V_BATPIN' was not declared in this scope
test_80k.cpp:359:5: error: 'LEDPIN_TOGGLE' was not declared in this scope
test_80k.cpp:361:30: error: 'LEDPIN_OFF' was not declared in this scope
test_80k.cpp:362:17: error: 'LEDPIN_ON' was not declared in this scope
test_80k.cpp:369:7: error: 'LEDPIN_TOGGLE' was not declared in this scope
test_80k.cpp: In function 'void setup()':
test_80k.cpp:396:3: error: 'LEDPIN_PINMODE' was not declared in this scope
test_80k.cpp:397:3: error: 'POWERPIN_PINMODE' was not declared in this scope
test_80k.cpp:399:3: error: 'STABLEPIN_PINMODE' was not declared in this scope
test_80k.cpp:400:3: error: 'POWERPIN_OFF' was not declared in this scope
test_80k.cpp: In function 'void loop()':
test_80k.cpp:544:23: error: 'STABLEPIN_ON' was not declared in this scope
test_80k.cpp:544:36: error: expected ';' before 'else'
test_80k.cpp: At global scope:
test_80k.cpp:1722:23: error: 'MOTOR_ORDER' was not declared in this scope
test_80k.cpp:2129:35: error: 'ROLLPIN' was not declared in this scope
test_80k.cpp:2129:44: error: 'PITCHPIN' was not declared in this scope
test_80k.cpp:2129:54: error: 'YAWPIN' was not declared in this scope
test_80k.cpp:2129:62: error: 'THROTTLEPIN' was not declared in this scope
test_80k.cpp:2129:75: error: 'AUX1PIN' was not declared in this scope
test_80k.cpp:2129:83: error: 'AUX2PIN' was not declared in this scope
test_80k.cpp:2129:91: error: 'CAM1PIN' was not declared in this scope
test_80k.cpp:2129:99: error: 'CAM2PIN' was not declared in this scope
test_80k.cpp: In function 'void __vector_6()':
test_80k.cpp:2240:21: error: 'THROTTLEPIN' was not declared in this scope
test_80k.cpp: In function 'void i2c_init()':
test_80k.cpp:2488:3: error: 'I2C_PULLUPS_DISABLE' was not declared in this scope
test_80k.cpp: In function 'void Mag_getADC()':
test_80k.cpp:3187:7: error: 'LEDPIN_TOGGLE' was not declared in this scope
test_80k.cpp: In function 'void initSensors()':
test_80k.cpp:3316:3: error: 'POWERPIN_ON' was not declared in this scope
test_80k.cpp: At global scope:
test_80k.cpp:3342:1: error: 'ISR_UART' does not name a type

Si, ovviamente non posso garantire che saltano fuori nuovi problemi in condizioni particolari, il lavoro dei beta tester serve proprio per trovare i bug, però visto che mi funziona correttamente anche con sketch complessi penso di poter affermare che è tranquillamente utilizzabile considerandola una release 1.0 definitiva di questa patch.
Sicuramente ci saranno nuove release nel futuro legate sia a nuove versione della toolchain che dell'IDE o ad eventuali bug fix.

Fra poco posto la tabella con i test che ho fatto con un tri-blink semplice.
EDIT: la sola compilazione (IDE 0022-4.5.1) per un 1284P 1MHz mi dà questo errore:

Sono tutti errori di mancata definizione di nomi simbolici, non è certo colpa del compilatore :slight_smile:

astrobeed:

[quote author=Michele Menniti link=topic=96976.msg744088#msg744088 date=1333180762]
Ultima domanda: possiamo quindi tranquillamente affermare di aver risolto il problema generale, senza stare troppo ad approfondire la questione?

Si, ovviamente non posso garantire che saltano fuori nuovi problemi in condizioni particolari, il lavoro dei beta tester serve proprio per trovare i bug, però visto che mi funziona correttamente anche con sketch complessi penso di poter affermare che è tranquillamente utilizzabile considerandola una release 1.0 definitiva di questa patch.
Sicuramente ci saranno nuove release nel futuro legate sia a nuove versione della toolchain che dell'IDE o ad eventuali bug fix.
[/quote]
MI BASTA MOLTISSIMO, nuovi bug, nuove soluzioni, nuovi articoli :grin:

Fra poco posto la tabella con i test che ho fatto con un tri-blink semplice.
EDIT: la sola compilazione (IDE 0022-4.5.1) per un 1284P 1MHz mi dà questo errore:

Sono tutti errori di mancata definizione di nomi simbolici, non è certo colpa del compilatore :slight_smile:
[/quote]
quindi come risolvo per caricare lo sketch sul micro? può essere che mi manchi <avr/pgmspace.h>?

Ti manca un qualche include o delle dichiarazioni, sono tutti nomi simbolici che non hanno nulla a che vedere con il compilatore.

sembra che tu stia usando qualche libreria non dichiarata

Sì, ma io non ho fatto altro che scaricare il rar di Astro "toolchain_test", estrarre la cartella "test_80k", v. immagine contenuto, ed eseguirla, quindi mi manca qualche libreria che Astro ha ed io no, se non so qual'è lo sketch diventa inutilizzabile da chiunque :disappointed_relieved:
A proposito, ma tutta quella roba nella cartella serve o mi basta il solo test_80K.pde?

EDIT: allego anche il riepilogo dei test fatti con le varie versioni di compilatore (AVRDUDE.EXE e .CONF identici per tutt'e tre) e con le tre versioni di ISP a disposizione, il tutto su tre diverse MCU: a quanto pare non si riesce a programmare il 1284P con l'ISP1.0.1 mentre non ci sono problemi con l'ISP della 0022 e con la versione patchata di Leo.
A questo punto devo fare qualche test con TiDiGino, basato sul mega2560.
Il test è con uno sketch blink su tre diversi pin (per mia comodità), 1K;
Ho provato a ridurre a 9600 ISP1.0.1 ma l'errore diventa:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x66

test_80k.jpg

Quello sketch utilizza MultiWii 1.9, il software per i quadricotteri, come base e l'ho rimaneggiato per farlo diventare più grande inserendo degli arryay dati di grosse dimensioni, tutti i file allegati fanno parte del codice e servono, a me si compila senza problemi per l'Arduino MEGA2560 e MEGA1280.
Dato che il codice controlla quale micro è utilizzato tra 328, 1280 e 2560 è possibile che con il 1284 saltano fuori degli errori per via della mancata corrispondenza hardware.

@Mike:
che core hai usato per compilare per il 1284?

astrobeed:
Quello sketch utilizza MultiWii 1.9, il software per i quadricotteri, come base e l'ho rimaneggiato per farlo diventare più grande inserendo degli arryay dati di grosse dimensioni, tutti i file allegati fanno parte del codice e servono, a me si compila senza problemi per l'Arduino MEGA2560 e MEGA1280.
Dato che il codice controlla quale micro è utilizzato tra 328, 1280 e 2560 è possibile che con il 1284 saltano fuori degli errori per via della mancata corrispondenza hardware.

E' come dici, a parte il 328P:
compilazione con 328P:

test_80k.cpp: In function 'void loop()':
test_80k.cpp:446:46: error: 'pgm_read_byte_far' was not declared in this scope
test_80k.cpp:447:46: error: 'pgm_read_byte_far' was not declared in this scope
test_80k.cpp:448:46: error: 'pgm_read_byte_far' was not declared in this scope

compilazione con mega1280 e mega2560 OK!
Quindi confermo di dover fare la prova col TiDiGino, per le foto, ma lì poi lampeggia qualcosa? :smiley:

leo72:
@Mike:
che core hai usato per compilare per il 1284?

Il Sanguino, quello che hai usato anche tu mi pare; se ti serve qualcosa chiedi tranquillamente :slight_smile:

@Mike:
il core Sanguino lo usai solo come base di partenza ma il core che ho sviluppato mesi fa è leggermente differente.
Prelevalo da qui (in fondo)
http://www.leonardomiliani.com/?page_id=374

Errore normale con il 328p visto che l'uso della "pgm_read_byte_far" non è possibile con questo micro perché ha meno di 64k di flash :slight_smile:

Quindi confermo di dover fare la prova col TiDiGino, per le foto, ma lì poi lampeggia qualcosa? :smiley:

Sulla board non c'è il led collegato al pin 13, lo devi aggiungere usando il connettore per le shield.

leo72:
@Mike:
il core Sanguino lo usai solo come base di partenza ma il core che ho sviluppato mesi fa è leggermente differente.
Prelevalo da qui (in fondo)
Arduino – Leonardo Miliani

OK, ma non dicevi che non era completo ancora? o forse ti riferivi al bootloader? ricordami un po'. Se mi dici che posso sostituirlo tranquillamente detto fatto XD, sono in condizioni tecniche di fare anche un po' di prove :wink:

A livello di core è completo e funzionante, ed oltretutto ha anche le definizioni dei pin analogici che mancavano nel core originale più la correzione di qualche piccolo bug trovato a giro.
Forse il bootloader è da controllare, mi pare di non averci messo mano.

Dov'è lo sketch di astro, che non riesco a trovarlo? Volevo provare a compilarlo anch'io sul mio sistema.

leo72:
Dov'è lo sketch di astro, che non riesco a trovarlo? Volevo provare a compilarlo anch'io sul mio sistema.

@ Astro: hai visto la tabella riepilogativa dei test?
Che ne pensi di quell'errore che ho con 1.0.1 e non con la versione patchata di Leo e nemmeno con l'ISP originale?

leo72:
@Mike:
il core Sanguino lo usai solo come base di partenza ma il core che ho sviluppato mesi fa è leggermente differente.
Prelevalo da qui (in fondo)
Arduino – Leonardo Miliani

mi dice cartella danneggiata :frowning:

Riprova a scaricarlo, alle volte lo fa. Non ho capito se dipende dal plugin per Wordpress che uso per gestire i download oppure dal server che hosta il mio sito.