Domanda:
Suggerimenti per un vecchio programmatore incorporato precedente e rinnovato
ddm
2010-12-11 03:47:44 UTC
view on stackexchange narkive permalink

Background -

Ho programmato il mio primo SBC su un kit di valutazione MEK6800D2 (che avevo costruito) alla fine degli anni '70 e altre schede dell'epoca come la Rockwell 6502 Kim-1, 8085, ecc. Ora sono un programmatore 61 a Big Box MS C # vs2010, ma il mio vero interesse è sempre stato incorporato, ma sono passati così tanti anni. Ora che sono vicino alla pensione, vorrei tornare alla programmazione ricreativa e tornare alle mie radici di embedded. C, obiettivo C, ASM, altro? (OK, traccio la linea in avanti).

Richiesta -

Quindi ora sto guardando gli ultimi chipset incorporati e oh wow ne capisco solo la metà. C'è una risorsa che potresti consigliare a qualcuno come me? Libri, siti ecc.?

BTW - Ho trovato molto utile questo particolare sito in stile stack exchange. molte grazie

Benvenuto in Electronics.SE, felice di sentire che questo sito è utile: P Temo che questa domanda sia un duplicato di poche altre, tuttavia, prova a controllarle: [Come diventare uno sviluppatore di software embedded?] (Http: // electronics .stackexchange.com / questions / 3343 / come-diventare-uno-sviluppatore-di-software-integrato), [Passi per imparare la programmazione di Arduino] (http://electronics.stackexchange.com/questions/1015/steps-to- learning-arduino-programming) prima. Se hai in mente un obiettivo particolare per quanto riguarda ciò che vuoi fare o specificamente su cosa, potrebbe essere utile aggiungere alla tua domanda.
@Nick T: non è sicuro che siano esatti duplicati. il primo che citi è un inizio da zero, il secondo è specifico per arduino, mentre questo sembra chiedere "quale tra le offerte attuali sarebbe più in linea con le cose a 8 bit intorno al 1980"
Sei risposte:
tcrosley
2010-12-11 05:14:53 UTC
view on stackexchange narkive permalink

Mi occupo di progettazione di sistemi embedded negli ultimi 35 anni (ho solo un paio di anni più di te) e attualmente ho progetti in corso utilizzando 8 bit (Silicon Labs 8051 e Freescale 68HCS08), 16 -bit (Microchip 24FJ e dsPIC33FJ) e processori a 32 bit (TI TMS320DM365).

I chip a 8 bit saranno probabilmente ciò con cui inizialmente ti sentirai più a tuo agio, e sono comunque divertenti da programmare in assembly oltre a C.Il 68HCS08 è un aggiornamento della linea Motorola 68HC05, e mi piace particolarmente il suo set di istruzioni (non bello come il vecchio 6809, che era un meraviglioso processore per scrivere codice assembly).

Rispetto ai vecchi tempi quando le schede di sviluppo e l'ICE associato costavano centinaia o addirittura migliaia di dollari, ora puoi ottenere schede di valutazione abbastanza decenti per meno di $ 100 e compilatori gratuiti.

Solo per divertimento, di recente ho acquistato una scheda di sviluppo per il chip Parallax Propeller, che ha 8 core (Parallax li chiama "gogs") che funzionano in parallelo. Tutto l'I / O viene eseguito nel software, il che significa che con pochissimo hardware esterno il chip supporta cose come tastiere e mouse PS / 2 e output VGA. È disponibile una scheda demo per $ 80. (Ho il suo fratello maggiore, attualmente in vendita per $ 150).

+1 per aver menzionato il 6809, probabilmente l'8-bitter più bello di sempre.
Grazie, questa è un'ottima informazione. Ho studiato i 24FJ negli ultimi giorni come con il dsPIC. Il vantaggio sul 68H è ottimo in quanto mi sono sentito più a mio agio con il (vecchio) set di istruzioni 68xx.
darron
2010-12-12 09:30:09 UTC
view on stackexchange narkive permalink

Cosa ti sembra divertente? Qual è il tuo budget?

Ci sono molti controller a 8/16 bit che probabilmente sembrerebbero molto nostalgici per un po '. (dal momento che sono praticamente gli stessi con cui giocavi). Saresti sorpreso di quanti sistemi embedded professionali utilizzino ancora gli 8051.

Un Arduino ti darebbe molte scelte aggiuntive interessanti, ma a me sembra davvero più adatto agli hobbisti che devono programmare svolgere un compito ... non a persone a cui piace sporcarsi e sporcarsi con C e ASM. Se desideri molte opzioni di controllo incorporate, va bene. Assicurati di dare un'occhiata a SparkFun.

L'elica sembra divertente ... anche se non sembra mai adattarsi a quello che sto facendo. Ho ricominciato il mio interesse per l'elettronica forse dieci anni fa con il Basic Stamp II di Parallax (sono passato MOLTO rapidamente alle loro cose SX (sistema PIC-like, ora Ubicom))

I processori ARM variano ampiamente. Nella fascia bassa, sono potenti ma gli strumenti di solito costano troppo. A livello medio e alto, possono eseguire un sistema Linux completo e fare cose sorprendenti. (Quasi tutti i telefoni li usano ora) Mi sto spostando da solo nella gamma ARM di fascia media (la fascia più bassa in grado di Linux, davvero) La mia definizione di mezzo si adatta ai chip che sono abbastanza semplici per progettare un PCB a 4-6 strati. Quelli più grandi possono richiedere più di 8 livelli.

Se dovessi tirare a indovinare, direi che dopo alcuni mesi di recupero potresti trovare gli FPGA davvero interessanti. Puoi ottenere delle belle schede demo FPGA per $ 100- $ 200. Gli strumenti del fornitore sono gratuiti (consiglierei Altera seguito da vicino da Xilinx) Ci si può divertire molto a progettare la propria logica, inclusi i piccoli microprocessori. Ci sono MOLTI processori "morbidi" per FPGA e toolchain completi per svilupparli ed eseguirne il debug. Immagino che si adatti meglio alla sensazione della fine degli anni '70 / primi anni '80 (non che io lo sappia) in quanto puoi progettare così tanto di un sistema da zero. Puoi quindi trovare praticamente qualsiasi sensore o dispositivo quello che vuoi e scrivere una logica di colla personalizzata per parlarci (indipendentemente dalla bizzarra interfaccia che stanno usando) C'è anche OpenCores, dove puoi prendere moduli funzionali che le persone hanno scritto se non vuoi scriverlo da solo o non sai come. Se sei interessato, commenta e cercherò una tavola di partenza decente per te.

Sfortunatamente, non puoi andare TROPPO lontano con gli FPGA (a meno che non ti piaccia giocare con la sola logica e non interfacciarti con le cose) senza anche progettare i PCB da soli. Penso che sia molto più facile di quanto sembri ... i fogli dati in questi giorni ti dicono praticamente come fare tutto. Tuttavia, è sicuramente molto di più da gestire.

Grazie darron - dopo il tuo messaggio ho iniziato a (ri) indagare sui ringraziamenti di FPGA a te e non è troppo lontano dal mio raggio di tecnologia (va bene allo stesso modo), ma richiederebbe un po 'di potenza di pensiero (e questo è un bene). Questo non è fuori dal regno delle possibilità per me e mi piace essere "al" metal, piuttosto che "al metal". Devo fare più ricerche, hai qualche lettura che mi consiglieresti? molte grazie ddm
Non sono molto soddisfatto di ciò che ho, ma questa domanda riguarda i consigli sui libri FPGA: http://electronics.stackexchange.com/questions/7163/book-recommendations-on-fpga
JustJeff
2010-12-11 05:15:49 UTC
view on stackexchange narkive permalink

I micro flash a 8/16 bit (PIC / AVR ecc.) sono probabilmente la strada da percorrere. Puoi programmarli in C o assembler, hai il controllo dell'intera macchina e fondamentalmente ottieni un intero sistema su un chip. Per non parlare del fatto che sono poco costosi. La più grande differenza tra la programmazione di questi e, ad esempio, un 6502 è che hanno spazi di codice e dati separati.

Ci sono molte schede singole che utilizzano processori più sofisticati, che sono molto più potenti, ma tu non ottenere il massimo da questi senza sistemi operativi completi. La programmazione su questo tipo di piattaforme è piuttosto diversa dal bit-bang su un 6800. Questa può essere una benedizione o una maledizione a seconda del punto di vista. Da un lato, non puoi semplicemente battere una porta, devi lavorare attraverso un driver di dispositivo (o scrivere il driver di dispositivo) ma dall'altra, ottieni cose carine come il multitasking.

Grazie - buone informazioni - Ho scritto driver di dispositivo per versioni precedenti di Windows, non era il mio punto forte ma avevo anche delle scadenze da rispettare.
Chris Stratton
2010-12-11 05:44:54 UTC
view on stackexchange narkive permalink

Potresti iniziare con un arduino per avere un'idea di cosa sono capaci di fare i chip AVR, quindi forse abbandonare l'interfaccia personalizzata e lavorare con strumenti più generici.

Per sistemi un po 'più grandi, ARM core di un certo numero di fornitori sono piuttosto popolari e poco più costosi.

Inoltre, anche se non lo trovo di interesse personale e generalmente non mi piace l'idea di marketing di trasferire i programmatori desktop a quelli incorporati senza un importante cambiamento nelle abitudini di pensiero, ci sono alcune minuscole schede ARM che eseguono una versione di .NET che potrebbero sfruttare parte di ciò che hai fatto di recente - esempi potrebbero essere netduino e fez panda.

Grazie, è stato molto utile. Negli anni '80 scrivevo professionalmente molte applicazioni per la famiglia 80xx incorporate, ma l'industria si stava spostando verso linguaggi più formali e avevo bisogno di mantenere un lavoro. Ora voglio scherzare per divertimento, non ho intenzione di guadagnarmi da vivere.
IntelliChick
2010-12-11 19:18:28 UTC
view on stackexchange narkive permalink

1) Procurati un buon libro di riferimento per la programmazione in C. Mi è piaciuto molto questo libro:

Cerchiamo C - Y. Kanetkar

alt text

2) Ottieni un buon libro di riferimento che illustra alcuni dei concetti fondamentali dei sistemi incorporati.

An Embedded Softfware Primer - David.E.Simon

alt text

3) Procurati un buon kit di sviluppo, come il beagle board che ha una comunità online molto attiva e di supporto per aiutare con le domande, ecc. Il loro sito web ha tonnellate di idee per progetti con cui puoi sporcarti le mani .

Sito web Beagleboard

alt text

4) Non puoi andare oltre il sito web di Ganssle per ottenere eccellenti informazioni relative alla programmazione incorporata. Ha articoli eccellenti sulle complessità dei sistemi integrati.

The Ganssle Group

5) Puoi fare riferimento a una domanda correlata che è stata pubblicata:

Embedded C Materiale di programmazione

6) Soprattutto, non dimenticare di divertirti con esso. Leggi, leggi e leggi e sporcati le mani! Incontrerai alcuni problemi impegnativi, che ti lasceranno perplesso forse per giorni, ma questa è la parte migliore. Continua così e ci arriverai!

Cosa - La mia prima edizione con le orecchie da cane di K & R's C non è abbastanza buona :-) Grazie, questi post sono stati molto utili per qualcuno come me da qualche parte nel mezzo.
K&R è l'unico libro abbastanza buono per C.
Citato da Us C come peggior libro di programmazione: http://programmers.stackexchange.com/questions/6974/whats-the-worst-programming-book-youve-ever-read/12192#12192
@Nick - hai avuto la possibilità di leggerlo? Cos'è che non ti piace del libro? Ai miei tempi ho avuto la possibilità di leggere alcuni libri su C e devo dire che questo libro mi è davvero piaciuto. È una lettura davvero facile e spiega molto bene alcuni concetti fondamentali. Ma naturalmente è la mia opinione, e tu hai sicuramente diritto alla tua! :)
@Intel: Non è la mia opinione, solo quella di qualcun altro. Sapevo di aver sentito parlare del libro prima, stavo cercando di ricordare dove: P
@Nick - sicuro np! Di tanto in tanto ho letto le tue risposte / domande preziose e penetranti, quindi sarò sicuramente interessato a conoscere la tua opinione sul libro. Buona lettura e dimmi cosa ne pensi! :)
@IntelliChick, Mi piace abbastanza il sito di Ganssle che in realtà ho comprato uno dei suoi libri, è stata una lettura piuttosto divertente.
Dave
2010-12-14 20:43:29 UTC
view on stackexchange narkive permalink

Capisco perfettamente il tuo desiderio di collegare qualcosa e avere un toolkit che funzioni . Come già accennato da Chris, puoi utilizzare Netduino, che potrebbe esserti più familiare poiché utilizza .NET 4.0 Micro Framework. Personalmente non l'ho usato perché non riesco a trovarlo da nessuna parte! Totalmente esaurito.

Tuttavia, ho appena ricevuto un microcontrollore mbed da usare e, secondo me, è molto più facile da usare in tutto rispetto ad Arduino e al suo ambiente. Il compilatore è abbastanza carino, l'editor è online (che potrebbe essere l'unica cosa negativa se non hai installato la toolchain locale, di cui non so nulla). Ma lo colleghi letteralmente, avvii la pagina web che è memorizzata nella sua memoria flash, la registri e puoi saltare nel compilatore e iniziare a giocherellare bit. Almeno stavo lampeggiando e PWMing i suoi LED in circa 5 minuti dal momento in cui ho aperto la scatola.

Grazie amico - ho dovuto ridere, ho scaricato e scritto un compilatore / codice / emulatore Ar * e scritto un po 'di K&R C per l'emulatore Arduino e non ricordavo che un bool non esistesse ancora. (Non chiedermi informazioni sull'accesso ai membri della struttura!) Mi ci è voluto un'ora con K&R rev. 1 per rendermi conto che dovevo definirlo. (Ritorno al futuro per me :-) Very kewl!
prova mbed dopo! Sono relativamente nuovo su entrambe le piattaforme, ma trovo l'ambiente mbed molto più familiare e meno stravagante di un IDE. E la funzionalità impostata su quel micro è davvero impressionante.


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