Buongiorno a tutti
E' il mio primo post in questo forum che trovo molto interessante rispetto a quello che sta in rete. La mia prima domanda e' : Vorrei passare da assembler a C per programmare i micro PIC.
Quali sono gli aspetti positivi e quelli negativi in questa scelta?
Grazie
Da assembler a C
Moderatore:
Paolino
7 messaggi
• Pagina 1 di 1
1
voti
3
voti
Si chiama Assembly, l'assembler è il compilatore. Il vantaggio di passare a programmare in C, detto brevemente è che scrivi più velocemente il codice e tutto il resto lo fa il compilatore, mentre programmare in Assembly implica sapere e/o imparare a basso livello come funziona l'architettura che ti accingi ad usare. A mio parere è molto utile praticare un po' di Assembly per l'architettura con cui si lavora se possibile, ma è un mio parere. :)
3
voti
Diciamo che il C è una benedizione perché lo si usa con tutti i micro (più o meno).
Un solo linguaggio per tutti.
Come dice [user]gohan[/user] non si può tralasciare lo studio approfondito dell' architettura del micro su cui bisogna lavorare (se si vuole lavorare seriamente e non solo giocare a fare i microcontrollisti) ed il suo set d' istruzioni, ma la programmazione diventa molto più semplice.
L' assembly obbliga per definizione a conoscere a fondo il micro.
Un solo linguaggio per tutti.
Come dice [user]gohan[/user] non si può tralasciare lo studio approfondito dell' architettura del micro su cui bisogna lavorare (se si vuole lavorare seriamente e non solo giocare a fare i microcontrollisti) ed il suo set d' istruzioni, ma la programmazione diventa molto più semplice.
L' assembly obbliga per definizione a conoscere a fondo il micro.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
2
voti
Aggiungerei che conoscere l'architettura del micro ed il suo codice macchina è essenziale per impararne pregi e difetti, piuttosto che limitazioni.
Il compilatore C converte una sintassi standard in codice macchina: lo fa sempre bene ed al meglio? Risolve tutto cosa mi interessa o ha a sua volta dei limiti, magari imposti, che in taluni casi devo poter superare?
I vantaggi di usare un linguaggio letterario come il C e quindi un compilatore sono innumerevoli, basti citare l'ottimizzazione dell'uso ed allocazione della RAM, piuttosto che la semplicità ed immediatezza della scrittura del codice.
Con l'assembler invece non ci sono "controllori" che impediscono taluni vincoli e, potrei, ad esempio, programmare di alterare un bit, piuttosto che un byte, ovunque, con tutte le conseguenze del caso.
Il compilatore C converte una sintassi standard in codice macchina: lo fa sempre bene ed al meglio? Risolve tutto cosa mi interessa o ha a sua volta dei limiti, magari imposti, che in taluni casi devo poter superare?
I vantaggi di usare un linguaggio letterario come il C e quindi un compilatore sono innumerevoli, basti citare l'ottimizzazione dell'uso ed allocazione della RAM, piuttosto che la semplicità ed immediatezza della scrittura del codice.
Con l'assembler invece non ci sono "controllori" che impediscono taluni vincoli e, potrei, ad esempio, programmare di alterare un bit, piuttosto che un byte, ovunque, con tutte le conseguenze del caso.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
2
voti
I compilatori ormai sono intelligentissimi, oltre che trasformare dal "linguaggio ad alto livello non interpretato " ad Assembly,spostano le istruzioni per permettere di sfruttare il parallelismo della macchina sottostante ed altre cose!
Che assembly conosci? X86, o più specifico di qualche micro?
Ciao
Che assembly conosci? X86, o più specifico di qualche micro?
Ciao
3
voti
Non posso che essere d'accordo con [user]gohan[/user] e
TardoFreak: l'assembly è importante, in quanto permette di conoscere a fondo come è strutturato il microcontrollore. Se si commettesse l'errore di iniziare direttamente con il C si rischia di capitolare, trovandosi di fronte a problemi legati proprio alle caratteristiche del micro. Nel tuo caso, il passaggio è (per tua fortuna, secondo me) meno indolore.
Fatta questa premessa, e dato che tu conosci già l'assembly, questi secondo me sono i maggiori vantaggi:
- riduzione del tempo nello sviluppo di un'applicazione;
- possibilità di utilizzare librerie "molto potenti" di interfacciamento periferiche (e non solo);
- portabilità del codice;
- agevolazioni nell'uso di operandi in virgola mobile.
Tra i "contro" annovero quanto segue:
- se non si proviene dall'assembly, valogono tutti i limiti già elencati prima;
- un compilatore non ottimizzato potrebbe sprecare troppe risorse (RAM e FLASH);
- le librerie a volte importano parte di codice inutile alla tua applicazione;
- rischio di "farsi prendere la mano" e di aumentare a dismisura il codice (che scritto in C sembra molto più compatto) e di saturare il micro.
Ciao.
Paolo.
Fatta questa premessa, e dato che tu conosci già l'assembly, questi secondo me sono i maggiori vantaggi:
- riduzione del tempo nello sviluppo di un'applicazione;
- possibilità di utilizzare librerie "molto potenti" di interfacciamento periferiche (e non solo);
- portabilità del codice;
- agevolazioni nell'uso di operandi in virgola mobile.
Tra i "contro" annovero quanto segue:
- se non si proviene dall'assembly, valogono tutti i limiti già elencati prima;
- un compilatore non ottimizzato potrebbe sprecare troppe risorse (RAM e FLASH);
- le librerie a volte importano parte di codice inutile alla tua applicazione;
- rischio di "farsi prendere la mano" e di aumentare a dismisura il codice (che scritto in C sembra molto più compatto) e di saturare il micro.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
7 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





