Compilazione in assembler.

1 Anno 11 Mesi fa #1 da mauri
Compilazione in assembler. è stato creato da mauri
Buongiorno a tutti del forum.
E' da tanto tempo, che ho scritto un programmino in assembler per una scheda elettronica auto costruita. Ora mi vedo costretto a rivedere il programma scritto con il vecchio compilatore MPASMWIN.
Stò usando l'ambiente MPLAB X IDE 5.45 con il compilatore XC8 2.32 settato con il programma "pic-as".
Ho modificato il programma in assembler per adattarlo alle specifiche del nuovo compilatore. Ora non mi dà nessun errore di compilazione, ma mi memorizza il codice, nella memoria EEPROM invece che nella memoria flash.
Sicuramente c'è qualche stringa da aggiungere al programma, che io ignoro, in modo che faccia fare al compilatore il suo dovere.
Vi ringrazio anticipatamente.
Maurizio.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • mauri
  • Avatar di mauri
  • New Member
  • New Member
Di più
1 Anno 10 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Compilazione in assembler.
Sotto l'ambiente di sviluppo MPLAB X non ho più lavorato in assembly (escluso debug di codice C).
In ogni modo il programma viene posizionato tramite la direttiva ORG 0xXXXX dove XXXX è l'indirizzo dove posizionare il programma.
Tra le impostazioni del progetto è anche possibile impostare degli offset o esclusioni per la memoria programma.
Gli offset sono aggiunti a eventuali indirizzi impostati tramite ORG 0xXXXX nel programma.
Potresti controllare anche tali impostazioni.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
1 Anno 10 Mesi fa - 1 Anno 10 Mesi fa #3 da mauri
Risposta da mauri al topic Compilazione in assembler.
Ti ringrazio Mauro,Guardando sulla rete ho trovato una direttiva per far caricare il programma nella "Memoria Programma":

PSECT code

Ora il problema è indirizzarlo all'inizio dell'area di memoria e non alla fine come accade adesso, nonostante aver messo le direttive

ORG 0x0000

File allegato:

Nome del file: Prova_assembler.zip
Dimensione del file:2 KB


Nel programma ho inserito le routine da eseguire in interrupt; ma non essendo indirizzate nella zona giusta non hanno effetto.Per ogni evenienza allego il progetto in questione.
Maurizio.
Allegati:
Ultima Modifica 1 Anno 10 Mesi fa da mauri.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • mauri
  • Avatar di mauri
  • New Member
  • New Member
Di più
1 Anno 6 Mesi fa - 1 Anno 6 Mesi fa #4 da mauri
Risposta da mauri al topic Compilazione in assembler.
Ho avuto un'pò di problemi organizzativi ed ho lasciato perdere questo il progetto.
Allego il programma modificato con i vettori di indirizzamento che sono visibili nel programma dopo la direttiva "PSECT code", che ho evidenziato nel sorgente. Una volta messo queste parti di codice, occorre inserire nella direttiva "Project properties" alla voce "pic_as Linker" nella griglia "Custom Linker Options" la seguente stringa "-Pres_vect=0h;-Pint_vect=4h".
In poche parole bisogna riportare il nome dato alle etichette nel programma precedute da "-P" ed assegnarle ad un indirizzo in esadecimale.
Spero con questo di essere stato utile ad altre persone, che come me, sono costretti a rivedere ed eventualmente modificare un progetto fatto con il vecchio compilatore .
Un saluto a tutti
Maurizio
Allegati:
Ultima Modifica 1 Anno 6 Mesi fa da mauri.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • mauri
  • Avatar di mauri
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login