Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Da assembler a C

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Da assembler a C

Messaggioda Foto Utentemros » 17 mar 2012, 16:54

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
Avatar utente
Foto Utentemros
10 1 5
Frequentatore
Frequentatore
 
Messaggi: 131
Iscritto il: 28 giu 2010, 9:23

1
voti

[2] Re: Da assemblee a C

Messaggioda Foto UtenteDSPfra » 17 mar 2012, 17:25

Foto Utentemros ti consiglio di iniziare da questo articolo e questo di Foto UtenteTardoFreak, sono un'ottima partenza! :D
Avatar utente
Foto UtenteDSPfra
166 1 1 5
New entry
New entry
 
Messaggi: 57
Iscritto il: 28 dic 2011, 20:07

3
voti

[3] Re: Da assemblee a C

Messaggioda Foto Utentesimo85 » 17 mar 2012, 20:00

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. :)
Avatar utente
Foto Utentesimo85
30,8k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9930
Iscritto il: 30 ago 2010, 4:59

3
voti

[4] Re: Da assemblee a C

Messaggioda Foto UtenteTardoFreak » 21 mar 2012, 13:23

Diciamo che il C è una benedizione perché lo si usa con tutti i micro (più o meno).
Un solo linguaggio per tutti.
Come dice Foto Utentesimo85 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.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

2
voti

[5] Re: Da assembler a C

Messaggioda Foto UtenteCandy » 21 mar 2012, 14:12

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.
Avatar utente
Foto UtenteCandy
32,4k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10138
Iscritto il: 14 giu 2010, 22:54

2
voti

[6] Re: Da assembler a C

Messaggioda Foto Utentedursino » 22 mar 2012, 0:55

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
Avatar utente
Foto Utentedursino
255 1 5 5
Expert
Expert
 
Messaggi: 522
Iscritto il: 8 mar 2009, 13:24

3
voti

[7] Re: Da assembler a C

Messaggioda Foto UtentePaolino » 22 mar 2012, 8:28

Non posso che essere d'accordo con Foto Utentesimo85 e Foto UtenteTardoFreak: 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.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
31,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4179
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite