- Messaggi: 23
- Ringraziamenti ricevuti 0
Assembler in MplabX
11 Anni 7 Mesi fa #1
da Scollo
Assembler in MplabX è stato creato da Scollo
Salve a tutti,
con l'assembler di mplabx mi succede un fatto stranissimo.
Ho realizzato un termometro con display 7seg ed LM35, il tutto funziona correttamente,
appena supero 256 byte di occupazione della flash ram il programma funziona in
maniera incomprensibile, faccio presente che è sufficiente aggiungere delle
istruzioni nop al programma funzionante per inibirne il funzionamento.
Premetto che sto usando un 18F2550 ed uso il classico start-up
...
org 0x00
goto Start ; programma principale
org 0x08 ; routine di interrupt
ISR:
...
Start:
...
Grazie anticipatamente a coloro i quali possono darmi un suggerimento.
Scollo Giovanni
con l'assembler di mplabx mi succede un fatto stranissimo.
Ho realizzato un termometro con display 7seg ed LM35, il tutto funziona correttamente,
appena supero 256 byte di occupazione della flash ram il programma funziona in
maniera incomprensibile, faccio presente che è sufficiente aggiungere delle
istruzioni nop al programma funzionante per inibirne il funzionamento.
Premetto che sto usando un 18F2550 ed uso il classico start-up
...
org 0x00
goto Start ; programma principale
org 0x08 ; routine di interrupt
ISR:
...
Start:
...
Grazie anticipatamente a coloro i quali possono darmi un suggerimento.
Scollo Giovanni
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Scollo
- Autore della discussione
- Junior Member
Riduci
Di più
11 Anni 7 Mesi fa - 11 Anni 7 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Assembler in MplabX
Ciao Giovanni,
Parli, sia di flash che di ram. Intendi 256 byte di memoria flash?
Mauro
Parli, sia di flash che di ram. Intendi 256 byte di memoria flash?
- Parli, sia di flash che di ram. Intendi 256 byte di memoria flash?
- Cosa intendi per cose strane?
- Fai uso di variabili grosse o create dinamicamente?
- Fai uso di indirizzi assoluti per la flash?
Mauro
Ultima Modifica 11 Anni 7 Mesi fa da Mauro Laurenti.
Si prega Accedi o Crea un account a partecipare alla conversazione.
11 Anni 7 Mesi fa #3
da Scollo
Risposta da Scollo al topic Assembler in MplabX
Ciao Mauro
anzitutto grazie per la gentile e puntuale informazione.
1) mi riferivo alla memoria flash.
2) il display propone numeri simboli non compresi nella tabella di conversione.
3) per gestire il display faccio uso di una tabella, chiamata da una call e che modifica il registro PCL tramite un addwf, faccio presente che questa la alloco all'indirizzo 0x200 per evitare errori sul PCLATH, ho dichiarato 12 variabili tra cblock 0x70 ed endc.
4) ho settato il linker per indirizzi assoluti.
5) allego il file main.asm in oggetto.
Grazie per la cortese collaborazione.
Saluti
anzitutto grazie per la gentile e puntuale informazione.
1) mi riferivo alla memoria flash.
2) il display propone numeri simboli non compresi nella tabella di conversione.
3) per gestire il display faccio uso di una tabella, chiamata da una call e che modifica il registro PCL tramite un addwf, faccio presente che questa la alloco all'indirizzo 0x200 per evitare errori sul PCLATH, ho dichiarato 12 variabili tra cblock 0x70 ed endc.
4) ho settato il linker per indirizzi assoluti.
5) allego il file main.asm in oggetto.
Grazie per la cortese collaborazione.
Saluti
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Scollo
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 23
- Ringraziamenti ricevuti 0
11 Anni 7 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Assembler in MplabX
Ciao,
il file non si e' allegato ma ti posso dire che non avrebbe fatto la differenza.
Sospettavo che facessi uso di indirizzi assoluti.
Nel caso specifico dell'assembly non so dirti di preciso ma nel caso in cui scrivi in C fare uso di indirizzi assoluti potrebbe creare proprio gli effetti che vedi tu.
Perche' non usi il C?
La nuova versione XC8 e' gratuita e puo' essere usata anche per applicazioni commerciali.
Supporta tutta la famiglia di microcontrollori ad 8 bit.
In assembly credo che ti stai complicando la vita.
Unico neo e' che la versione gratuita non ha alcuna ottimizzazione!
Saluti,
Mauro
il file non si e' allegato ma ti posso dire che non avrebbe fatto la differenza.
Sospettavo che facessi uso di indirizzi assoluti.
Nel caso specifico dell'assembly non so dirti di preciso ma nel caso in cui scrivi in C fare uso di indirizzi assoluti potrebbe creare proprio gli effetti che vedi tu.
Perche' non usi il C?
La nuova versione XC8 e' gratuita e puo' essere usata anche per applicazioni commerciali.
Supporta tutta la famiglia di microcontrollori ad 8 bit.
In assembly credo che ti stai complicando la vita.
Unico neo e' che la versione gratuita non ha alcuna ottimizzazione!
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
11 Anni 7 Mesi fa #5
da Scollo
Risposta da Scollo al topic Assembler in MplabX
Ciao Mauro,
il programma l'avevo già fatto in C e funzionava correttamente, il problema che trattasi di un progettino scolastico per i miei alunni e devono svilupparlo in assembler, perché conoscono solo quello, almeno spero solo per il presente. Se riesco a risolvere il problema ti faccio sapere.
Saluti
il programma l'avevo già fatto in C e funzionava correttamente, il problema che trattasi di un progettino scolastico per i miei alunni e devono svilupparlo in assembler, perché conoscono solo quello, almeno spero solo per il presente. Se riesco a risolvere il problema ti faccio sapere.
Saluti
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Scollo
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 23
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.