- Messaggi: 30
- Ringraziamenti ricevuti 0
problema '.idata_main' pic18f4550
10 Anni 8 Mesi fa #1
da MicheleO.
problema '.idata_main' pic18f4550 è stato creato da MicheleO.
Buona sera,
sto cercando di ultimare un progetto iniziato tempo fa.
Sto utilizzando un pic18f4550.
Recentemente ho aggiunto qualche riga di codice al programma funzionante, ma ho riscontrato il seguente problema con il compilatore (c18 v3.42):
MPLINK 4.43, Linker
Device Database Version 1.8
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '.idata_main.o_i' can not fit the section. Section '.idata_main.o_i' length=0x00000105
Errors : 1
Dopo aver letto una 'guida'
( translate.google.it/translate?hl=it&sl=e...10TCYXCODE%26hl%3Dit )
ho iniziato a modificare l'allocazione delle variabili nella ram.
Alcune le ho allocate con le seguenti istruzioni:
#pragma idata aaa
int a=0;
...
#pragma idata
mentre per le altre variabili non ho inserito nessuna particolare direttiva. Il nuovo errore del compilatore è il seguente:
MPLINK 4.43, Linker
Device Database Version 1.8
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section 'D10TCYXCODE' can not fit the section. Section 'D10TCYXCODE' length=0x00000016
Errors : 1
Chi può spiegarmi cosa accade? dove ho sbagliato e magari darmi una mano nel risolverlo?
Grazie mille, buona serata.
sto cercando di ultimare un progetto iniziato tempo fa.
Sto utilizzando un pic18f4550.
Recentemente ho aggiunto qualche riga di codice al programma funzionante, ma ho riscontrato il seguente problema con il compilatore (c18 v3.42):
MPLINK 4.43, Linker
Device Database Version 1.8
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '.idata_main.o_i' can not fit the section. Section '.idata_main.o_i' length=0x00000105
Errors : 1
Dopo aver letto una 'guida'
( translate.google.it/translate?hl=it&sl=e...10TCYXCODE%26hl%3Dit )
ho iniziato a modificare l'allocazione delle variabili nella ram.
Alcune le ho allocate con le seguenti istruzioni:
#pragma idata aaa
int a=0;
...
#pragma idata
mentre per le altre variabili non ho inserito nessuna particolare direttiva. Il nuovo errore del compilatore è il seguente:
MPLINK 4.43, Linker
Device Database Version 1.8
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section 'D10TCYXCODE' can not fit the section. Section 'D10TCYXCODE' length=0x00000016
Errors : 1
Chi può spiegarmi cosa accade? dove ho sbagliato e magari darmi una mano nel risolverlo?
Grazie mille, buona serata.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
10 Anni 8 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic problema '.idata_main' pic18f4550
Ciao Michele,
questi problemi si verificano generalmente qualora il compilatore non riesca ad allocare le variabili nello spazio dedicato.
In particolare le cause potrebbero essere dei vincoli che hai creato (posizioni assolute sulle variabili)
Dimensioni troppo grandi delle variabili (array).
Risorse terminate
Personalmente leverei ogni vincolo sull´allocazione delle variabili e lasciare il compito al linker.
...a meno di non avere ottime ragioni per avere dei vincoli.
Saluti,
Mauro
questi problemi si verificano generalmente qualora il compilatore non riesca ad allocare le variabili nello spazio dedicato.
In particolare le cause potrebbero essere dei vincoli che hai creato (posizioni assolute sulle variabili)
Dimensioni troppo grandi delle variabili (array).
Risorse terminate
Personalmente leverei ogni vincolo sull´allocazione delle variabili e lasciare il compito al linker.
...a meno di non avere ottime ragioni per avere dei vincoli.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 8 Mesi fa #3
da MicheleO.
Risposta da MicheleO. al topic problema '.idata_main' pic18f4550
Grazie per la risposta!
Ho provato a compilare soltanto la lista delle variabili, eliminando tutto il programma e i prototipi di funzione.
Ho anche tolto tutti i vincoli.
Cancellando 4 variabili di tipo 'char', la compilazione va a buon fine e l'utilizzazione della memoria è la seguente:
aggiungendo una variabile (di tipo 'char'), compare l'errore:
Error - section '.idata_main.o' can not fit the section. Section '.idata_main.o' length=0x00000101
L'indicatore allegato indica che non ho utilizzato tutta la memoria a disposizione.
Le variabili che ho cancellato dal programma, affinché la compilazione andasse a buon fine, non sono array, quindi il problema non dovrebbe essere causato variabili troppo grandi.
Qualcuno ha altri suggerimenti? grazie.
Ho provato a compilare soltanto la lista delle variabili, eliminando tutto il programma e i prototipi di funzione.
Ho anche tolto tutti i vincoli.
Cancellando 4 variabili di tipo 'char', la compilazione va a buon fine e l'utilizzazione della memoria è la seguente:
aggiungendo una variabile (di tipo 'char'), compare l'errore:
Error - section '.idata_main.o' can not fit the section. Section '.idata_main.o' length=0x00000101
L'indicatore allegato indica che non ho utilizzato tutta la memoria a disposizione.
Le variabili che ho cancellato dal programma, affinché la compilazione andasse a buon fine, non sono array, quindi il problema non dovrebbe essere causato variabili troppo grandi.
Qualcuno ha altri suggerimenti? grazie.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
10 Anni 8 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic problema '.idata_main' pic18f4550
L'errore non necessariamente indica che la memoria sia terminata, ma sapere che non lo sia e' un indizio.
Hai per caso un file linker modificato?
Quando dici che l'errore compare aggiungendo la variabile char e' strano.
Come dichiari questa variabile ?
Scrivi con esattezza il testo della sua dichiarazione.
Saluti,
Mauro
Hai per caso un file linker modificato?
Quando dici che l'errore compare aggiungendo la variabile char e' strano.
Come dichiari questa variabile ?
Scrivi con esattezza il testo della sua dichiarazione.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 8 Mesi fa #5
da MicheleO.
Risposta da MicheleO. al topic problema '.idata_main' pic18f4550
Grazie!!!
Semplicemente: char a=0;
Il file linker l'ho ripristinato, è quello originale.
Semplicemente: char a=0;
Il file linker l'ho ripristinato, è quello originale.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.