Domanda

Sto cercando di imparare qualcosa sulla programmazione embedded (principalmente in C, ma spero di rispolverare anche il mio ASM) e mi chiedevo quale sarebbe la migliore piattaforma.Ho una certa esperienza nell'uso degli AVR Atmel e nella programmazione con lo stk500 e ho scoperto che è relativamente facile.Mi piace particolarmente AVR Studio e il debugger che ti consente di visualizzare lo stato dei registri.

Tuttavia, se dovessi prendermi il tempo per imparare, preferirei apprendere qualcosa che è prevalente nell’industria.Sto pensando ad ARM, a meno che qualcuno non abbia un suggerimento migliore.

Vorrei anche cercare del materiale di riferimento, ho trovato la sezione dei libri sul sito web di ARM e se uno è un libro tecnicamente migliore di un altro apprezzerei un avviso.

L'ultima cosa che cercherei è una scheda di prototipazione/programmazione come la STK500 che abbia alcuni pulsanti e così via.

Grazie =]

È stato utile?

Soluzione

"programmazione integrata" è un termine molto ampio.AVR si colloca abbastanza bene in quella categoria, ma è un gradino sotto ARM, in quanto è più semplice da usare e meno potente.

Se vuoi semplicemente giocare con ARM, acquista un Nintendo DS o un Gameboy Advance.Sono molto economici rispetto all'hardware interno (meraviglie della produzione di massa) e lo hanno entrambi toolchain di sviluppo gratuite basato su gcc che può compilarli.

Se vuoi giocare con Linux incorporato, BeagleBoard sembra essere una buona opzione, solo $ 150 e ha tantissime funzionalità.

Personalmente penso che AVR sia la soluzione migliore per le piattaforme a 8 bit di piccole dimensioni e ARM sia la soluzione migliore per le piattaforme più grandi e potenti basate a 32 bit.Come molti fan dell'AVR, non mi piace PIC.Sembra semplicemente peggio praticamente in ogni senso.Evita anche tutto ciò che richiede di scrivere qualsiasi tipo di BASIC.

Altri suggerimenti

Se vuoi semplicemente giocarci, ti suggerisco la piattaforma Arduino (http://www.arduino.cc).Si basa sull'ATmega168 o sull'ATmega8, a seconda della versione.Utilizza un linguaggio simile al C e dispone di un proprio IDE.

Io stesso lavoro nella programmazione embedded ormai da 9 anni e ho esperienza su TI MSP430, Atmel AVR (un paio di versioni) e presto utilizzerò un ARM.

Il mio suggerimento è di prendere qualcosa che abbia alcune funzionalità extra nel processore come il controller Ethernet e il controller CAN, anche prenderne due o tre se puoi.È bello lavorare con i dispositivi integrati, ma una volta che possono comunicare con altri dispositivi simili tramite CAN o connettersi a una rete, può diventare molto più divertente giocarci.

ARM ha il set di istruzioni più bello tra le piattaforme embedded ampiamente utilizzate, lasciandoti libero di apprendere i principi generali della scrittura di software per piattaforme embedded senza impantanarti in dettagli strani come registri non ortogonali o slot di ritardo dei rami.Esistono moltissimi emulatori: quello di ARM, sebbene non sia gratuito, è accurato in termini di ciclo;e anche un'enorme varietà di hardware programmabile basato su ARM è economico e facile da trovare.

delle ADI Pinna nera è un'altra opzione poiché è un'architettura abbastanza semplice da programmare, ma può anche fare alcune cose DSP abbastanza pesanti se scegli di seguire questa strada.Aiuta anche il fatto che il linguaggio assembly sia abbastanza sano.

Il Pinna Nera FRANCOBOLLO le schede sono un modo economico (~ $ 100 l'ultima volta che ho controllato) e supportano gli strumenti GCC gratuiti e uClinux.

Qualunque sia l'architettura scelta, ti consiglio vivamente di scaricare prima toolchain\SDK e di esaminare i progetti di esempio e i tutorial, in genere provandoci un po'.Spesso è possibile acquisire familiarità con l'architettura attraverso la simulazione senza nemmeno toccare l'hardware.

IL TI MSP430 è un'ottima piattaforma per imparare a programmare i microcontrollori.TI ha una varietà di Strumenti GRATUITI e alcuni schede di valutazione economiche (a partire da $ 20).Inoltre, è un microcontrollore moderno e a basso consumo.

Una buona scelta sarebbe PIC18 di Microchip

  • Ha parecchio materiale, documentazione, tutorial e progetti su Internet

  • IDE e compilatore gratuiti.

  • puoi estrarre il tuo flash writer in pochi minuti.(Anche se affinché un debugger funzioni dovrai lavorare di più)

  • Se sei uno studente (o hai un indirizzo email da studente) Microchip ti invierà dei chip campione gratuiti.Quindi in pratica puoi avere un ambiente di sviluppo completo per quasi nulla.

  • I PIC sono piuttosto diffusi nel settore.In particolare come controller per i robot, per qualche motivo, anche se possono fare molto di più.

Arduino sembra essere la piattaforma preferita oggigiorno dai principianti, anche se ce ne sono molte altre.mi piace il Olimex personalmente, ma non sono proprio per principianti.

MicrochipLe CPU della gamma PIC di sono ottime anche per i principianti, soprattutto se si desidera programmare in assembler.

A proposito, l'Assembler non è più utilizzato come in passato.La regola generale con embedded è che se hai 4k di memoria o più, usa C.Ottieni la portabilità e puoi sviluppare il codice più velocemente.

Suppongo che dipenda dal tuo livello di abilità e da cosa vuoi fare con il chip.Di solito scelgo quale chip integrato utilizzare tra le periferiche disponibili.Se vuoi una porta USB, trovane una con USB integrata, se vuoi una porta da analogico a digitale, trovane una con un ADC, ecc.Se hai un'applicazione semplice, usa un 8 bit, ma se hai bisogno di calcoli seri, vai a 32 bit.

Vorrei suggerire il beagleboard di TI.Ha un Omap3 su di esso.Si tratta di una CPU Cortex-A8 ARM11, un DSP C64x+ e anche un acceleratore video.

La scheda non necessita di un costoso dispositivo jtag.Per iniziare è sufficiente un cavo seriale e una scheda SD.Il consiglio costa solo $ 150 e c'è una comunità molto attiva.

www.beagleboard.org

Alla tua domanda è stata data una risposta questa domanda.

In aggiunta a ciò, il settore dei processori embedded è molto segmentato e non ha un attore importante come Intel/x86 lo è per il settore dei processori "desktop".Il processore ARM ha una quota importante, credo anche MIPS, e sono disponibili molti chip più piccoli e specifici come microcontrollori (come MSP430 ecc. di TI).

Per quanto riguarda la documentazione, mi occupo di sviluppo integrato per lavoro quotidiano e la documentazione a cui abbiamo accesso (come sviluppatori di software) è piuttosto scarsa.La soluzione migliore è utilizzare la documentazione disponibile sul sito del produttore del processore.

Dare un'occhiata a in lavorazione e le schede Arduino e Wiring associate.

Se vuoi solo divertirti, prova il chip Parallax Propeller.La piattaforma di gioco HYDRA sembra fantastica.Adesso c'è un compilatore C da $ 100.

Ho iniziato con i BASIC stamp, sono passato ai chip SX e ai PIC fino agli 8051, poi ai 68332, vari DSP, processori soft FPGA, ecc.

Gli 8051 sono più utili nel mondo reale...le cose non andranno via.Ci sono TONNELLATE di derivati ​​e cose pazze per loro.(Stai lontano dal DS80C400) Il settore energetico ne è assolutamente pieno.

Inizia con qualcosa di piccolo.Se hai RAM esterna e molti registri...qual è la differenza tra questo e un SBC?

Molte lune fa ho lavorato con 8 bitters come 68HC05 e Z80, successivamente AVR e MSP430 (16 bit).Tuttavia i progetti più recenti erano su ARM7.Diversi produttori offrono controller ARM, in tutti i colori e dimensioni (beh, non proprio a colori).

ARM(7) sta sostituendo l'architettura a 8 bit:è più performante (RISC a 32 bit con cicli di istruzioni più veloci rispetto alla maggior parte degli 8 bit), ha più memoria ed è disponibile con diverse configurazioni IO.Ho lavorato con i controller NXP LPC2000, anch'essi economici (< 1 USD per un 32-bitter!).

Se sei in Europa http://www.olimex.com/dev/index.html ha alcune belle schede di sviluppo a basso costo.Funziona anche nel resto del mondo :-)

Per un progetto divertente da testare, dai un'occhiata xgamestation

Ma per una programmazione di soluzioni a chip singolo più industriale, guarda FOTO

Per il mio corso di Architettura del Computer ho dovuto lavorare sia con un PIC che con un AVR;secondo me è stato più facile lavorare con il PIC, ma forse è perché è quello con cui abbiamo lavorato di più e al quale abbiamo avuto più tempo per abituarci.Abbiamo usato l'AVR forse solo un paio di volte, quindi non sono riuscito a capirlo perfettamente, ma non c'era niente di eccessivamente complicato, o almeno non più frustrante dell'altro.

Penso che potresti anche ordinare campioni di microprocessori dal sito Web di Microchip in modo da poter iniziare anche con quello?

Secondo:

Piattaforma Arduino http://www.arduino.cc

HTH

Per l'apprendimento, non puoi andare oltre l'AVR.I chip sono economici e funzionano senza componenti esterni: forniscono anche corrente sufficiente per pilotare un LED direttamente dalla porta.

Puoi iniziare con un programmatore economico come quello di Lady-ada USBTinyISP ($ 22 USD per un kit) che può alimentare la tua scheda con 5 V dalla porta USB.Ottieni gli strumenti gratuiti WinAVR (basato su GCC) e AVRStudio e realizza un piccolo progetto in pochissimo tempo.

È vero, gli AVR hanno dei limiti, ma lo sviluppo di software per microcontrollori riguarda in gran parte la gestione delle risorse e la gestione di tali problemi.È improbabile che tu possa riscontrare problemi come l'esaurimento dello spazio nello stack, della RAM o della ROM quando realizzi progetti hobbisti per potenti piattaforme ARM.

Detto questo, anche ARM è un’ottima piattaforma ampiamente utilizzata nel settore, tuttavia, per l’apprendimento consiglio vivamente gli AVR.

Suggerirei la serie PIC18F di Microchip.Ho appena iniziato a sviluppare per loro con l'emulatore in-circuit RealICE, ma pickit2 è un debugger decente per il prezzo.Si potrebbe dire lo stesso anche per gli AVR, ma c'è un grande seguito per il dispositivo in tutto il web.Sono riuscito a far funzionare in pochi giorni un dispositivo USB incorporato difettoso ma funzionante a causa di tutte le chiacchiere relative ai PIC.

L'unica cosa che non mi piace dei PIC è che gran parte del codice di esempio è MOLTO intrecciato nelle schede demo.Ciò può rendere difficile eliminare le sezioni necessarie e avere comunque un'applicazione che verrà creata ed eseguita per la tua applicazione.

Texas Instruments ha rilasciato un kit di sviluppo molto interessante ad un prezzo davvero contenuto:IL Strumento di sviluppo eZ430-Chronos contiene un MSP430 con display e vari sensori in un orologio sportivo, incluso un programmatore di debug USB e un punto di accesso radio USB per 50$

C'è anche una wiki contenente tantissime, tantissime informazioni.

ho già ha creato una proposta di stackexchange per il kit eZ430-Chronos.

Dovresti provare ad imparare dai kit per sviluppatori forniti da Artisti incorporati.Dopo aver ricevuto il kit, controlla i video didattici e i video forniti da NXP, che non sono così dettagliati come potrebbero essere, ma coprono molte cose.I problemi con l'apprendimento di ARM come prima architettura e il tentativo di fare qualcosa di pratico sono:

  • Devi acquistare dev.kit.
  • Hai bisogno di un bene libro per imparare l'assemblaggio ARM, perché prima o poi ti imbatterai nel codice di avvio ARM, che è un bel affare per un principiante.Il libro che ho citato copre anche parte della programmazione in C.
  • Combina il libro menzionato sopra con una guida per l'utente per il tuo processore specifico Questo.Assicurati di ottenerlo poiché studiarlo in combinazione con il libro sopra è l'unico modo per apprendere il tuo processo ARM.in dettaglio.
  • Se vuoi effettuare un trasferimento dall'assemblaggio ARM alla programmazione C dovrai leggere questo libro, che copre un processore ARM diverso ma è più semplice per i principianti del C.Il lato negativo è che non spiega alcun assemblaggio ARM, ma questo è il motivo per cui è necessario il primo libro.

Non esiste un modo semplice.

mikroElektronika ha un bel ARM tavole e C, Pascal e Basic compilatori che potrebbe soddisfare le tue esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top