Go Down

Topic: Devo passare da Arduino Mega 2560 ad Due, alcuni dubbi.... (Read 12455 times) previous topic - next topic

icio

Penso che anche con arduino il limite sia del 50% , 128kbytes , è un limite che si riscontra anche con tanti programmatori ISP, il motivo esatto non l'ho mai studiato a fondo ma penso sia dovuto al cambio banco da 64k.
Per il momento nemmeno mi interessa in quanto i miei programmi non sono mai andati oltre i 64k.



pablos71

Quote
Per il momento nemmeno mi interessa in quanto i miei programmi non sono mai andati oltre i 64k.

questa non è molto carina da dire a uno che sta chiedendo aiuto, da uno che dice di  lavorare 8 ore con gli AVR e non giocarci :D

A prescindere da questo che senso ha continuare a vendere per anni una scheda da 256k se poi si può usare a metà?
Questo limite dovrebbe essere descritto nelle specifiche per correttezza. 


L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

icio

Con 64k se ne fà di cose pablo , basta scremare le librerie e non includere cose che non servono, una volta con 4k o 8k di assembler si faceva una CNC , con 16k-32k un centralino telefonico sofisticato con 16urbane e 120 interni,  non serviva di più, io sono di quella scuola lì, non metto cose che non servono e le librerie le faccio da me. 
La 2560 come flash è esagerata, non conosco nessuna applicazione che non usi un RTOS che necessiti di 256K, per me 128k basta e avanza, all'inizio facevano la 1280 ma siccome per loro mettere 128k o 256k costa uguale allora ora fanno solo la 2560, resta il limite dei 128k dei programmatori ISP economici, finora non mi risulta che nessuno abbia mai trovato una soluzione, sono 4 banchi da 64k che i programmatori economici non riescono a gestire, è ovvio che su quelli costosi il problema non sussiste




astrobeed


Penso che anche con arduino il limite sia del 50% , 128kbytes , è un limite che si riscontra anche con tanti programmatori ISP, il motivo esatto non l'ho mai studiato a fondo ma penso sia dovuto al cambio banco da 64k.


Il programmatore non c'entra nulla, la risposta al problema la trovi in questo articolo che abbiamo scritto io e Michele una paio di anni fa.
Non mi risulta che nella versione stabile dell'IDE, la 1.0.5 r2, sia cambiato qualcosa, ovvero il limite dei 128k rimane, però la colpa è del compilatore e non del programmatore.
Scientia potentia est

APS650

Io non mi definisco certo un programmatore, meno di un'anno fa nemmeno sapevo dell'esistenza di Arduino, ciò nonostante ho messo insieme il controller di un riscaldatore che si adatta ad altitudine e temperatura ambiente ottimizando la combustione e ne sono molto soddisfatto.
Con 64k si farà pure un centralino non discuto, ma una quindicina di schermate su un display TFT 5" con 3 tipi di carattere, icone varie logo del costruttore etc etc non ci stanno!!!!  ...o almeno io non ne sono capace!
Ribadisco la mia posizione se la flash è di 256K usarne al massimo il 52% è uno spreco!!!!

ps: il bootloader è quello originale

pablos71

#35
Jul 30, 2014, 10:40 pm Last Edit: Jul 30, 2014, 10:44 pm by pablos Reason: 1
mi spiace APS650 anch'io ho la MEGA ma non ho mai superato il 40%, sono passato alla DUE per una questione di performance di clock senza stravolgere troppo il progetto .... spero che non ci siano problemi anche sul SAM!!
Ti ho chiesto del bootloader perchè ho intravisto qualcuno che diceva di cambiarlo, ma non ho info certe sull'argomento. Tra le altrte cose siccome ho usato la mega per 3 anni e la tua domanda l'ho posta anch'io circa un anno fa .... mi era stato assicurato che il problema era stato risolto con le nuove IDE 1.0, apparentemente non è così.

Comunque ti rinnovo l'aiuto, se passi alla DUE ho promesso di aiutarti e lo farò, nel limite delle mie conoscenze acquisite fino ad ora.

ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

APS650

Grazie Pablos, come avrai capito nel mio progetto la memoria è importante, se ti va prova a caricare un qualche fonts e cerca di superare i 135KB, prima di rifare tutto vorrei essere sicuro che anche la DUE non abbia lo stesso problema, sopratutto se la colpa sembra non sia della scheda ma del compilatore.

Grazie mille per l'aiuto!!!!

pablos71

L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

nid69ita


Non mi risulta che nella versione stabile dell'IDE, la 1.0.5 r2, sia cambiato qualcosa, ovvero il limite dei 128k rimane, però la colpa è del compilatore e non del programmatore.

Se non mi sbaglio,
- la 1.0.5 usa come compilatore  avr-gcc-4.3.2.exe
- la 1.5.7 usa avr-gcc-4.8.1.exe     
Nel tuo link si parla di aggiornarsi al  avr-gcc-4.5.1.exe quindi mi viene da pensare che con la 1.5.7 il problema sia superato. O no ?!?
my name is IGOR, not AIGOR

pablos71

#39
Jul 31, 2014, 12:35 am Last Edit: Jul 31, 2014, 12:56 am by pablos Reason: 1
ho caricato sulla MEGA tutti questi font (allegato)..... che sono tanti sull'IDE  1.5.7

nemmeno un graffio alla ram,  possibile?
alla compilazione completa senza errori mi da questi valori  :smiley-eek-blue: :smiley-eek-blue:

Quote
Lo sketch usa 630 byte (0%) dello spazio disponibile per i programmi. Il massimo è 258.048 byte.
Le variabili globali usano 9 byte (0%) di memoria dinamica, lasciando altri 8.183 byte liberi per le variabili locali. Il massimo è 8.192 byte.
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

astrobeed


- la 1.5.7 usa avr-gcc-4.8.1.exe     
Nel tuo link si parla di aggiornarsi al  avr-gcc-4.5.1.exe quindi mi viene da pensare che con la 1.5.7 il problema sia superato. O no ?!?


Se non usi la toolchain Atmel te lo puoi scordare di superare il limite dei 128k, o 64 kword se preferisci, il complitore avr gcc non patchato da Atmel non riesce ad indirizzare oltre quel limite indipendentemente dalla sua versione.
Tutte le versioni del IDE superiori alla 1.05 r2 sono delle beta pertanto non affidabili e non conviene utilizzarle per lo sviluppo, vanno bene solo se vuoi fare da beta tester.
Ti faccio un esempio di applicazione open source dove hanno riempito completamente l'ATmega 2560 senza nemmeno utilizzare bitmap da visualizzare su un display, il programma è MultiCopter o MegapirateNG, il secondo è il porting del primo su un hardware diverso come pinout.
Tutte e le applicazioni girano su delle schede basate sul Mega2560 con configurazione Arduino Like, con tanto di relativo bootloader, si tratta di applicazioni per la flight controller dei droni, sono arrivati al limite della flash, il programma compilato è poco meno di 240k, per la compilazione usano un IDE 1.x di Arduino modificato sia per supportare l'HAL (serve per le varie versioni delle schede) sia con la toolchain Atmel proprio per il limite dei 128 k.

Scientia potentia est

nid69ita


.. il complitore avr gcc non patchato da Atmel non riesce ad indirizzare oltre quel limite indipendentemente dalla sua versione.

Ok, quindi non è solo una questione di versione. Ok. Grazie per la info.  :D
my name is IGOR, not AIGOR

PaoloP


ho caricato sulla MEGA tutti questi font (allegato)..... che sono tanti sull'IDE  1.5.7

nemmeno un graffio alla ram,  possibile?
alla compilazione completa senza errori mi da questi valori  :smiley-eek-blue: :smiley-eek-blue:

Quote
Lo sketch usa 630 byte (0%) dello spazio disponibile per i programmi. Il massimo è 258.048 byte.
Le variabili globali usano 9 byte (0%) di memoria dinamica, lasciando altri 8.183 byte liberi per le variabili locali. Il massimo è 8.192 byte.



In che senso caricato?
Cosa fa lo sketch?

Se avete problemi con la 1.5.7 consiglio di usare la 1.5.6r2 con il vecchio compilatore avr-gcc.

pablos71

lo scketch non fa assolutamente nulla il setup() è vuoto e il loop() pure, ho solo messo 1.000.000 di variabili in ram  XD

comunque il problema non sussiste più ....
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

icio

#44
Jul 31, 2014, 03:10 pm Last Edit: Jul 31, 2014, 03:14 pm by icio Reason: 1

.....
Con 64k si farà pure un centralino non discuto, ma una quindicina di schermate su un display TFT 5" con 3 tipi di carattere, icone varie logo del costruttore etc etc non ci stanno!!!!  ...o almeno io non ne sono capace!


La soluzione al tuo problema è semplice , le mappe delle schermate non le mettere in flash ma in una memoria esterna, in una SST25VF016B da 2Mbytes SPI oppure se ancora non ti bastano in una SD da 4Gbytes sempre in SPI

OK astrobeed , per l'impossibilità di superare il banco da 64kword imputato al compilatore,  pensavo fosse imputato al programmatore, meglio!      Così posso continuare a fornire i programmatori economici senza dover comperare programmatori prof.

Go Up