Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Programmazione embedded per un informatico

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

1
voti

[1] Programmazione embedded per un informatico

Messaggioda Foto UtenteNilus » 25 set 2013, 19:17

Salve a tutti,
sono nuovo di queste parti. Come da titolo, studio informatica al dipartimento di matematica e informatica. Nonostante la mia formazione molto teorica (linguaggi formali, programmazione molto ad alto livello, progettazione software) e lontana dall'hardware, sono sempre stato affascinato dai sistemi embedded e dalla programmazione di sistemi operativi (che hanno sì fondamenti teorici ma prima o poi devono essere pur implementati su qualche piattaforma). Vi chiedo quale sia il miglior percorso formativo per entrare nel mondo della programmazione di sistemi embedded, di firmware, driver e più in generale dell'elettronica digitale. Premetto che ho solo qualche rudimento di elettromagnetismo, ma non ho problemi nell'affrontare la matematica o leggere testi in inglese (non so come state messi voi, ma purtroppo l'informatica e l'italiano non vanno molto d'accordo).

Grazie in anticipo!

O_/
Avatar utente
Foto UtenteNilus
10 2
 
Messaggi: 2
Iscritto il: 25 set 2013, 16:54

1
voti

[2] Re: Programmazione embedded per un informatico

Messaggioda Foto Utentegiovannispina » 25 set 2013, 21:52

Salve, da ciò che scrivi mi sembra di capire che sei di catania.
Il mio consiglio è quello di programmare su PIC16/18 o AVR, però ti avverto, se sei di catania e hai fatto java, scordati tutto quello che hai fatto (o quasi). Nella programmazione delle MCU i linguaggi più comuni sono assembly, C e C++ e per quanto Java sia simile a questi due linguaggi, molti della tua facoltà fanno degli errori a livello di design di codice. Le MCU sono molto sensibili a memory leaks e a stack overflow. Quindi io ti consiglierei di incominciare a programmare facendo cose semplici, giusto per prendere dimistichezza sia col linguaggio assembly/C, sia con la MCU in questione. Io ho trovato molto utile MPLAB e MikroC come IDE per i PIC per la loro immensa dispensa di librerie, inoltre la MikroElektronika mette a disposizione anche programmatori e altre board che potranno esserti utili.

Io uso per lo più MikroC. Non permette la programmazione ad oggetti, ma il debugger ti permetterà di simulare parte del codice e vedere i tuoi errori. Inoltre MikroC ti eviterà di fare molti errori del tipo chiamate di una funzione fatte sia da interrupt che da main. Una volta presa dimistichezza puoi anche incominciare con MCU più potenti oppure ad usare l'heap per le allocazioni dinamiche. :ok:

Tranquillo, non sono cose difficili, anzi, molte delle cose sono facilissime solo che dovrai fare molta più attenzione al codice adesso. Imparerai ad usare i giusti byte per le variabili senza fare sempre variabili da 2 o 4 byte come si fa spesso da te. Divertiti, la programmazione embedded è favolosa! :D
Avatar utente
Foto Utentegiovannispina
126 1 3
 
Messaggi: 43
Iscritto il: 27 lug 2013, 12:31

1
voti

[3] Re: Programmazione embedded per un informatico

Messaggioda Foto UtenteNilus » 25 set 2013, 23:06

Ci sei andato vicino, studio a Cosenza. Per quanto riguarda C/C++ non ci dovrebbero essere grossi problemi, li ho usati entrambi. Ho scritto qualche riga anche in assembly x86/x86_64 per Linux. Quindi non troverei difficoltà a programmare subito un microcontrollore? Sul web non pochi dicono che un Ing. elettronico che scrive del codice a così basso livello è meno propenso a commettere degli errori rispetto ad un informatico che è più preparato per quanto riguarda la programmazione in generale. Da qui i miei dubbi sul fatto di imparare prima un po' di elettronica e procedere più a rilento oppure buttarmi subito a programmare ma rischiando di non capire mai veramente a fondo le cose.

:?:
Avatar utente
Foto UtenteNilus
10 2
 
Messaggi: 2
Iscritto il: 25 set 2013, 16:54

1
voti

[4] Re: Programmazione embedded per un informatico

Messaggioda Foto Utentegiovannispina » 26 set 2013, 0:37

Se hai già programmato in asm e c/c++ non avrai problemi. Dovrai solo fare attenzione nell'usare le risorse in base alla tua mcu. Per la parte elettronica non ti preoccupare, di solito i circuiti con controllori sono semplici e non richiedono conoscenze di alto livello. Vai sparato, scegli la mcu che ritieni fare a caso tuo, vedi ram e rom e scegli un IDE. Inoltre per la maggior parte dei progetti in rete troverai allegate le schematiche dettagliate; una ricerca veloce e trovi schematiche+sorgente. Anche i manuali stessi di alcuni IDE hanno delle spiegazioni dettagliate su come fare la parte elettronica per usare certe librerie. Scegli tu, puoi scegliere arduino, PIC o avr. Se decidessi di usare PIC/AVR dai un occhiata qui http://www.mikroe.com/

Per ogni mcu guarda pure il relativo datasheet, troverai tutto il necessario su come usare i registri ed i moduli della mcu.
Avatar utente
Foto Utentegiovannispina
126 1 3
 
Messaggi: 43
Iscritto il: 27 lug 2013, 12:31


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti