Domanda:
Raccomandazioni per la programmazione del microcontrollore sotto Linux
grieih
2011-10-04 03:59:51 UTC
view on stackexchange narkive permalink

Qualcuno può suggerirmi un ambiente di sviluppo stabile ( piattaforma + dispositivo programmatore + sw / ide ) per iniziare a programmare microcontrollori sotto Linux (non arduino)?

I trovo difficile scegliere tutti questi componenti e temo che dovrò ricorrere a Windows. Grazie!

Aggiornamento: grazie per le tue risposte! Proverò MPLAB basato su Microchip e Netbeans. Niente contro Atmel, ma penso che il primo sarà facile da configurare per me ;-)

Purtroppo, devo ammettere che uso MPLAB di Microchip sotto Virtualbox in Windows XP durante la programmazione su Ubuntu. Funziona. Passerò presto a MPLAB X.
Il mio sistema di sviluppo è descritto qui: http://electronics.stackexchange.com/questions/10580/is-there-a-development-system-for-the-msp430f-series-microcontrollers/10582#10582
Otto risposte:
Al Bennett
2011-10-04 13:32:06 UTC
view on stackexchange narkive permalink

Ho avuto un buon successo con Atmel AVR utilizzando:

  • il compilatore GCC C con librerie AVR (impacchettato in APT per distribuzioni basate su Debian)
  • avrdude per il flashing dispositivi (utilizzando un programmatore mkII Atmel AVRISP economico)
  • plug-in AVR Eclipse per un IDE

Google troverà alcune guide su come impostare tutto sotto una recente installazione di Ubuntu. È molto più semplice di prima, ora è praticamente solo installare pacchetti dai repository.

Grazie per la tua risposta. Quei programmatori AVRISP sono abbastanza per iniziare a entrare in contatto con i micro AVR o è necessario più hardware?
I micro AVRISP e un semplice alimentatore breadboard sono tutto ciò di cui hai bisogno per far lampeggiare un LED. Per $ 50, tuttavia, AVR Dragon vale ogni centesimo.
Scusa @grieih, mi sono perso il tuo commento. Come dice Zuph, è semplice dal punto di vista hardware, servono solo il programmatore e l'alimentatore. Ecco un buon riferimento sui pochi pin che devi collegare per la programmazione: http://www.evilmadscientist.com/article.php/avrtargetboards
tcrosley
2011-10-04 04:24:25 UTC
view on stackexchange narkive permalink

Microchip ha un nuovo MPLAB X che utilizza la piattaforma NetBeans che si installa sotto Linux, a 32 o 64 bit. È ancora in fase di rilascio beta, ma è uscito da un po 'di tempo e ha supporto attraverso i loro forum.

Puoi sviluppare per qualsiasi linea MCU Microchip, PIC10 / 12/16/18 (tutti gli 8 -bit), PIC24 (16-bit) o ​​PIC32 (32-bit). Consiglierei di iniziare almeno con la linea PIC18: quelle più piccole sono meglio programmate con l'assembler ed è molto più facile iniziare con C.

Puoi ottenere versioni "lite" dei compilatori gratuitamente ( il limite principale è che alcune ottimizzazioni scadono dopo 60 giorni, ma non ci sono limiti di codice come alcuni sistemi di sviluppo).

Microchip ha una scheda di sviluppo / programmatore combinata - MPLAB Starter Kit per PIC18F MCU che costa $ 60. Include la comunicazione USB, un touch pad capacitivo, un potenziometro, un sensore di accelerazione, una scheda di memoria MicroSD e un display OLED.

Grazie! Ho anche sentito parlare di MPLABX, ma ho pensato che non fosse ancora utilizzabile. Perché pensi che sia meglio iniziare con PIC18 invece che con 16 linee?
Il PIC18 è una versione migliorata del PIC16. In particolare ha un vero stack di dati con un frame pointer, in modo che il set di istruzioni sia molto più amichevole per i compilatori C. Ho appena finito di fare un progetto PIC16 (il processore è stato scelto dal mio cliente prima che salissi a bordo), e ho finito per scrivere l'intera applicazione in assembler.
Da quello che vedo elencato su Mouser / Digikey, le serie PIC16 / 18 sono tutte MCU a 8 bit e PIC24 è dove iniziano le parti a 16 bit.
@Captainj2001 grazie per la correzione.Nel mio commento precedente, avevo detto che il PIC18 è una versione migliorata del PIC16 (che è anche a 8 bit), ma vedo nella mia risposta che mi riferisco ad esso come a 16 bit.Lo correggerò.
sybreon
2011-10-04 04:50:26 UTC
view on stackexchange narkive permalink

Se desideri lavorare in C, puoi controllare SDCC o l'elenco dei cross-compilatori GCC supportati. C'è una lunga lista. Se desideri lavorare in assembly, la maggior parte dei micro a 8 bit hanno strumenti Linux ben supportati, ad es. gputils.

Per quanto riguarda i dispositivi di programmazione, la maggior parte dei micro più recenti oggigiorno sono dotati di caricatori di avvio incorporati che non richiedono più l'acquisto di alcun dispositivo di programmazione costoso. Altrimenti, puoi sempre costruirne uno tu stesso. Per il PIC, c'è il PICKIT2, che viene fornito con gli schemi.

Per quanto riguarda l'IDE, puoi semplicemente usare emacs o eclipse in generale.

SDCC * sarebbe * fantastico, ma purtroppo supporta solo alcuni dispositivi.Ottimo, se il tuo dispositivo è nell'elenco;non così eccezionale quando si migra su un chip con un po 'più di RAM e improvvisamente non lo si supporta.Può anche provarlo su Windows con gputils e persino in MPLABx con la toolchain SDCC, tuttavia è "sperimentale" nella migliore delle ipotesi.
Suboptimus
2011-10-04 05:07:55 UTC
view on stackexchange narkive permalink

Dovresti essere in grado di ottenere un ambiente di sviluppo configurato per le parti TI / Stellaris ARM Cortex M3 utilizzando arm-eabi-gcc per compilare il codice e OpenOCD per il flashing e il debug sulla scheda di destinazione. Ho fatto tutto su Mac OS X quindi non posso darti una spiegazione diretta, ma ho fatto un paio di ricerche veloci su Google e sembra che ci siano molte guide di installazione là fuori. Onestamente è un po 'una seccatura e probabilmente dovrai armeggiare per far funzionare tutto anche se ottieni un'ottima guida all'installazione, ma una volta che tutto è configurato il flusso di lavoro è abbastanza buono. Dovresti anche essere in grado di usare Eclipse come IDE e configurarlo per caricare automaticamente i tuoi binari sulla scheda se sei così incline. Anche la linea Stellaris è un ottimo componente.

http://electronics.stackexchange.com/questions/1926/best-way-to-install-arm-elf-gcc-onto-a-linux-machine http://electronics.stackexchange.com/questions/991/arm-cortex-m3-development-tools
È possibile, ma non così facile come configurare un ambiente per AVR. Lo so perché lo sto facendo solo per un ARM Cortex M3 LPC17xx.
C'è una semplice guida per Mac OS X che ho usato [qui] (http://andrewsterian.com/wiki/tiki-index.php?page=LM3S6965) per le parti Stellaris.
@starblue - L'OP diceva "non Arduino" quindi ho pensato che AVR fosse fuori uso. Forse è bravo con un semplice AVR, ma AVR è debole rispetto alle parti ARM Cortex. Ovviamente dipende dalla vostra applicazione e un M3 sarebbe eccessivo in un semplicissimo dispositivo prodotto in serie, ma per un hobbista che vuole imparare i micro si ottiene molta potenza e funzionalità con una parte ARM. I vantaggi di AVR come Arduino sono gli strumenti, la comunità e gli accessori, quindi se non vuoi l'intero pacchetto Arduino, potresti anche trasferire AVR.
Bitrex
2011-10-04 07:53:52 UTC
view on stackexchange narkive permalink

L'IDE Eclipse è basato su Java, quindi funziona bene con Linux. È disponibile un plug-in per l'IDE che supporta lo sviluppo C / C ++ per microcontrollori AVR e consente anche di caricare il codice compilato sul dispositivo tramite una varietà di programmatori.

old_timer
2011-10-14 09:29:30 UTC
view on stackexchange narkive permalink

Ho una serie di esempi di microcontrollori incorporati basati su Linux su github https://github.com/dwelch67. Nota che ide è il tuo editor di testo preferito e una riga di comando in cui digiti make.

Nota che gli strumenti gratuiti per microchip (pic32) (non quelli FROM microchip) hanno ottimizzazione, supporto per set di istruzioni a 16 bit, ecc. E puoi vedere cosa sta succedendo (perché lo fai da solo). Queste ovviamente sono le linee principali gcc e llvm (non quelle di microchip).

Probabilmente mbed o stellaris sono più sulla falsariga di ciò che vuoi. O forse arduino come andare con l'acero. Odio dire che forse il fez panda. Il launchpad msp430 è di $ 4,30, a quel prezzo potrebbe anche comprarne un paio per risparmiare per una giornata di pioggia. La scoperta della linea di valore stm32 è di circa $ 10, lo stesso affare ne prendi una salvandola per un giorno di pioggia.

Se lasci che le biblioteche e l'ambiente facciano tutto il lavoro per te, non è diverso dalla semplice scrittura di applicazioni sul tuo computer desktop, è una perdita di tempo incorporata, basta scrivere app desktop. Se vai con embedded dovresti rimboccarti le maniche e sporcarti le mani ... qualcosa a cui pensare ... Altrimenti compra semplicemente arduino e falla finita. Atmel è difficile da toccare per la soddisfazione del cliente, non so perché ma è quello che è. Il set di istruzioni avr non è eccezionale, neanche lontanamente così male come il PIC (senza contare il PIC32) ma non è buono come il set di istruzioni msp430 o ARM. Ho usato l'ide arduino su Linux, probabilmente non sarà necessario riavviare Windows. Non c'è niente di facile come arduino tranne forse i timbri basati su BASIC come parallasse e alcuni altri.

Come per lo sviluppo di Linux / unix in generale, non concentrarti sulla ricerca di un IDE. Concentrati sul compilatore, gcc o llvm, quindi sul tuo editor preferito e questo è tutto, inizia a scrivere codice. Applicalo a un microcontrollore e guarda gli obiettivi supportati dai compilatori. ARM e MIPS sono una scelta naturale, non avrai problemi a far funzionare gli strumenti, ogni volta che prendi una versione gcc patchata e cerchi di farlo funzionare sulla tua macchina Linux aggiornata, dovrai lottare di tanto in tanto per time, avr, msp e pic rientrano in quella categoria. Lo stesso vale per sdcc, è incostante, e comunque ti devi chiedere: C sull'8051? Non male come C sul PIC ma vicino. Se stai davvero cercando un IDE lucido, supportato, aggiornato, stabile, ecc., Devi andare su Windows. Keil, IAR, Code Red, ecc. La domanda semplicemente non c'è, gli sviluppatori linux / unix storicamente passano il loro tempo a discutere vi contro emacs poiché quelle sono le idi dominanti per mancanza di un termine migliore. aggiungi gdb se sei disperato.

Questo è il problema con Linux, l'unica opzione è GCC. E ci saranno solo porte GCC affidabili e mantenute per gli MCU più pubblicizzati e tradizionali.
llvm cattura e trasmette gcc, ed è di default un cross-compilatore. Un giorno potrebbe anche essere l'ancora di una barca, ma per ora non lo è. Il port msp430 ha impiegato meno di 24 ore, così dicono.
Grazie per la tua risposta, @dwelch! La mia preoccupazione principale qui è trovare una scheda programmatore adatta che supporti gli sviluppi di Linux, ma pensavo che un IDE potesse liberarmi dal mettere insieme tutti i pezzi software necessari, almeno all'inizio.
GTRONICK
2016-07-19 03:27:38 UTC
view on stackexchange narkive permalink

La programmazione di microcontrollori PIC in Linux è semplicissima. Ho un Clone Pickit2, MPLAB X IDE e QPickit che utilizza pk2cmd come backend. Ho programmato dsPIC33 senza problemi con questo programmatore. Per programmare il tuo dispositivo:

  1. Crea il tuo progetto su MPLAB X. Nella finestra di output, verrà mostrato il percorso del file .hex. Ad esempio: /home/user/MPlabx_projects/Test/dis/default/production/test.hex
  2. Copia quella route e usa pk2cmd -p -f / home /user/MPlabx_projects/Test/dis/default/production/test.hex -m -r
  3. Il dispositivo verrà rilevato automaticamente, quindi programmato e MCLR verrà rilasciato per avviare il funzionamento.

Ricorda di scegliere il voltaggio corretto nel tuo pickit. Per dsPIC33 è generalmente 3,3 V. Puoi sceglierlo dal tuo clone pickit2, selezionando il ponticello corretto. Inoltre, puoi alimentare il tuo MCU da un alimentatore indipendente di 3,3 V e utilizzare le impostazioni predefinite su pk2cmd.

Se vuoi, puoi usare QPickit. È un'applicazione basata su QT per programmare microcontrollori di immagini con un'interfaccia molto semplice e utile. Caricherò i sorgenti del programma nei prossimi giorni.

Scarica pk2cmd da qui

Benvenuto in EE.SE!Grazie per la risposta informativa.Potresti voler aggiornare i tuoi collegamenti in modo che siano per la pagina di download del software Microchip, non il collegamento per il download diretto, in modo che gli utenti futuri possano vedere immediatamente le versioni aggiornate del software.
Aggiornamenti effettuati.Collegamento modificato alla pagina dell'archivio del programmatore / debugger di sviluppo PICkit 2.
Mahmoud Hosseinipour
2016-07-19 10:06:32 UTC
view on stackexchange narkive permalink

Buoni consigli, e se vuoi provare l'architettura ARM hai ancora più scelta:

  1. Famiglie MCU LPC ARM cortex m0 ~ m4 da NXP di LPCXPRESSO (eclipse & IDE preimpostato basato su gnu)come una delle migliori scelte, basata sulle librerie LPCOPEN & LPC-LINK2 debauger
  2. STM32 ARM cortex m0 ~ m7 MCU Famiglie da ST Impostando & configuringeclipse & gnu gcc (perché credo che tu possa impostare questo per qualsiasialtro chipARM, ma ci sono un sacco di librerie di progetti modello & forstm32) con librerie SPL o HAL & ST-LINK debauger


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...