2013-07-21 21 views
8

Ho acquistato un kit di valutazione LaunchPad TM4C123G serie Tiva C di Texas Instruments. Questo kit contiene un piccolo PCB con un microcontrollore ARM Cortex M4F. Ora voglio iniziare a scrivere software per questo microcontrollore. Sono abituato a programmare i microcontroller AVR a 8 bit utilizzando AVR Studio su Windows. Ho sentito che è facile programmare microcontrollori basati su ARM su Linux, e dal momento che Linux è la mia piattaforma principale, vorrei un semplice IDE che funzionerà più o meno come sono abituato da AVR.Sviluppo ARM su Linux

Per diversi giorni ho cercato un buon IDE e strumenti che facciano il lavoro. Con mia sorpresa, solo pochi gireranno su Linux, e nessuno è open source o freeware. Questo può essere vero? Non voglio spendere centinaia di dollari solo per provare qualche programmazione per il Cortex M4F. Né voglio imparare un IDE ora e poi un altro dopo, quando ho scoperto che non è abbastanza buono o troppo costoso. Sono abituato a Linux e al modo di fare open source e sono molto scioccato dal fatto che nessuno stia facendo una seria programmazione ARM incorporata con strumenti open source su Linux. Perfavore, correggimi se sbaglio.

Non ho in programma di eseguire Linux su Cortex M4F - Voglio solo programmarlo come un normale microcontrollore.

Texas Instruments raccomanda uno dei seguenti alberghi della catena di utensili sul retro della copertina del kit di valutazione:

  • Code Composer Studio IDE: pensione completa funzionale bloccato
  • Keil: indirizzo 32KB limitato
  • IAR: indirizzo 32KB limitato
  • Mentor Sourcery embedded CodeBench: 30 giorni di pieno funzionale

Sono stato anche consigliato Red Studio da code_red.

Nessuno dei due è open source o gratuito e tutti hanno limitazioni. Mi sembra che solo Code Composer Studio e Red Studio siano compatibili con Linux.

Mi sono imbattuto in un altro prodotto, Rowley CrossWorks, che è anche compatibile con Linux ma ancora molto commerciale e costoso.

È proprio vero che non esiste un'alternativa open source? La maggior parte dei prodotti sembra utilizzare Eclipse e GCC, che dovrebbe essere in grado di fare a meno di questi pacchetti commerciali, giusto? Non riesco proprio a trovare alcun tutorial o guida che spieghi come fare a configurarlo per la programmazione ARM incorporata. Inoltre ho bisogno di sapere come programmare il dispositivo dopo la compilazione.

Voglio davvero iniziare presto. Ogni consiglio e idea sono molto apprezzati :-)

+0

https://github.com/dwelch67/stellaris_launchpad Mi chiedo se si sono sbarazzati del nome stellaris e ora è tiva. Non uso un IDE, se si è limitati a utilizzare un IDE, beh siete da soli. Ma gli strumenti di GNU funzionano perfettamente, non devi usare quegli strumenti di marca per il pagamento ... a meno che tu non voglia davvero ... –

+0

sì, hanno cambiato nome stellaris come tiva c ... –

+0

@ pvh1987 - il tuo la domanda sembra attrarre sia le risposte di spam che l'eccessiva attenzione del moderatore. Il semplice fatto è che ciò che si vuole fare è possibile, usando solo strumenti gratuiti (in genere alcune versioni di GCC), tuttavia può richiedere un po 'di lavoro ed esperienza per configurare e il codice di esempio del produttore spesso richiede un po' di porting e build-script scrivere prima che funzioni. –

risposta

8

È sempre lo stesso, indipendentemente dalla scheda di valutazione che possiedi: discovery STM32, LPCXpresso, TI Launchpads. Sono molto economici, ma gli IDE raccomandati sono limitati: la loro dimensione del codice è limitata, solo Windows, o sono legati a una specifica distribuzione Linux.

Nella mia esperienza la scelta dipende dalla vostra obiettivi a lungo termine:

  • Vuoi condividere il codice con AVR 8-bit (o PIC32, Renesas RX 32, ...)?
  • È un obiettivo a medio termine/a lungo termine avere un sistema di build basato su make?
  • È necessario il completamento delle schede e/o un debugger integrato?
  • Vuoi provare altre schede di valutazione in futuro (senza dover installare un altro IDE)?

o si desidera solo ottenere questo uno in modo rapido e funzionante. In tal caso, utilizzerei uno degli IDE consigliati per ottenere un'impressione.

D'altra parte, tutti i microcontrollori a 32 bit che ho usato (Cortex-M0/3/4, PIC32, Renesas RX) possono essere programmati con gcc. Per quanto ne so, Code Red, Mentor e MPLABX usano gcc (o un gcc modificato).

Quindi esiste sempre la possibilità di utilizzare Eclipse con un progetto Makefile e gcc. L'ho provato due volte, ma non ha funzionato bene per me, perché condivido le librerie tra i diversi target e ho trovato difficile passare attorno alle definizioni in Eclipse.

Quindi il mio IDE è Makefile, Emacs e gcc, e io sono passati completamente in C++: Questo potrebbe essere un altro vantaggio di usare gcc.

Entrambe le possibilità (Eclipse con progetto Makefile o semplicemente redattore con make) non sono "off the shelf": richiedono tempo, pazienza, e il vostro motore di ricerca Internet preferito.

Aggiornamento

Non sono a conoscenza di un tutorial completo su come impostare un GCC + rendono ambiente basato, così ho semplicemente descrivere i passi di base l'ho fatto qualche anno fa (con alcune modifiche) .

I passaggi seguenti sono STM32 specifica:

  • Prendi una delle tavole di scoperta, per esempio la linea valore di STM32 Scoperta.

  • Ottenere un'utilità flash: Sto usando stlink (git clone https://github.com/texane/stlink.git). Questo include anche un backend GDB.

  • Ci sono vari esempi disponibili, cercare "stm32vl batter scoperta" (non posso raccomandare uno qui, quella che ho usato è scomparsa)

In alternativa (o di follow-up): Get le periferici esempi firmware

  • troverete uno script del linker compatibile con GNU ld nel Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld

  • Troverete una GNU come avvio compatibile in Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s

  • Troverete tutte altra libreria richiesta include i file e fonti in archivio .zip e

  • sguardo al progetto GPIOToggle (Project/Examples/GPIOToggle)

  • Scrivi un Makefile per compilare, di collegamento, e flash

+0

puoi suggerire qualche tutorial per qualcuno che pensa di mordere il proiettile e farlo dalla riga di comando? [impostazione della catena di strumenti, flusso di lavoro, ...] Confesso di avere un'abitudine di dipendenza IDE (considerando un gruppo di supporto per esso). Ma come fai notare le opzioni sotto Linux sono scarse o inesistenti. Ho un paio di schede STM32 con cui voglio giocare ma vorrei essere in grado di far fronte anche ad altri fornitori. – norlesh

+0

@norlesh Ho aggiornato la risposta. Questi passaggi sono applicabili anche ad altri fornitori: NXP (lpc), TI (Stellaris), ... pure. – Beryllium

+0

Non utilizzare strumenti open source. Hai bisogno di un buon debugger, una bella interfaccia per leggere gli stati dei registri e altri cookie per l'utilizzo di PRO. Questi non vengono mai insieme agli strumenti open source.Ho provato tutto per stabilire un'interfaccia di programmazione libera per ARM insieme a debugger e in generale non può essere eseguita su Linux gratuitamente. Il mio colpo migliore era usare IDE KDevelop/Eclipse/CodeBlocks insieme ai makefile ma nessuno di quegli strumenti aveva i cookie incorporati. Ho compensato questo acquisto con l'acquisto della sonda JTAG J-LINK di Segger e ho usato JLink Commander per monitorare i registri nel terminale esterno, ma ha succhiato ... Compra strumenti propietari ... – 71GA

1

di costruire il proprio ambiente di sviluppo è possibile utilizzare la seguente combinazione:

  • Eclipse CDT
  • Prendi il toolchain da utilizzare (versione GCC ufficiale o un po 'di terze parti su misura per la propria piattaforma)
  • Integrare il toolchain in ambiente Eclipse tramite il sistema di build interno di Eclipse (builder CDT) o attraverso alcuni builder esterni (es. fanno)
  • Al fine di avere il supporto JTAG debugging, c'è un hardware GDB plug-in Eclipse debug è necessario configurare

sono riuscito a completare il mio configurazione in modo tale per LPC1769 (Cortex-M3 CPU) e ha funzionato :)

+0

Puoi condividere qualsiasi link che aiuti a ottenere Eclipse configurato sviluppi linux embedded . Mi piacerebbe configurare Eclipse CDT per sviluppare software per il processore TIVA Cortex M4 –

+0

Cortex M4 non è in grado di eseguire un intero Linux embedded, solo uClinux. – Adi

+0

Grazie per l'input, sono riuscito a ottenere Eclipse CDT configurato per programmare Cortex-M4. Allegare è un collegamento che mi aiuta a iniziare. http://chrisrm.com/howto-develop-on-the-ti-tiva-launchpad-using-linux/. Il tuo post è stato molto utile –

Problemi correlati