Per quanto riguarda msp430, è una buona architettura, strumenti abbastanza buoni là fuori mspgcc e mspgcc4 e llvm per quella materia. binutils senza patch. Puoi ottenere un launchpad per meno di $ 5 a quel prezzo, acquistarne alcuni (alla fine riuscirai a mettere qualcosa in cortocircuito o a cortocircuitare e scioglierlo, avere un ricambio, specialmente a questo prezzo) ...
Scarica gli strumenti, sono tutti gratuiti, scrivi alcune righe di codice, impara come collegarlo, vedi quanto diventa grande il binario, fatti un'idea di come incorporare, linee di codice in dimensioni rom, ecc.
Come lo fanno i professionisti. Quasi tutti i modi in cui puoi immaginare:
Alcune società il mandato viene dall'alto e non c'è altro da fare che uscire. E potresti non sapere mai perché è stata scelta quella piattaforma.
A volte l'appaltatore / cliente preferito determina la piattaforma, a volte puoi educare / negoziare, a volte no.
Alcune persone hanno solo un preferito, paura dell'ignoto, qualunque cosa. Lo stesso motivo per cui alcune persone acquistano solo una marca di auto, perché mio padre l'ha fatto e suo padre ha fatto prima di quello, e questo potrebbe essere il motivo.
Alcune persone si concentrano sugli strumenti. Anche in questo caso hai persone fedeli al marchio, che si limitano alla loro società di compilazione preferita e agli obiettivi che supportano, o allo strumento open source preferito e a ciò che supporta. Sistema operativo incorporato preferito e limite alle destinazioni che supporta.
In alcuni casi si tratta di strumenti ma in un modo diverso, nel tempo potresti aver investito molti soldi in contratti di supporto annuali con un fornitore (ad esempio arm o xilinx o motorola per esempio) e potrebbe essere che ti sia piaciuto il loro supporto e non vuoi cambiare o il diavolo che conosci è meglio del diavolo che non conosci. O potrebbe essere che, poiché gli altri 5 progetti attivi nell'azienda utilizzano questa cosa e abbiamo già un contratto di supporto e continueremo a pagare per quell'anno dopo anno, devi scegliere una di quelle soluzioni di fornitori.
A volte si tratta di salvare i millepiedi. Questa parte è più economica dell'1,5% rispetto a quella parte, falla funzionare con questa parte, non preoccuparti della NRE, pensa ai risparmi di produzione in termini di volume.
A volte si tratta di aspetti negativi. Un fornitore potrebbe aver fregato la tua azienda in un modo o nell'altro. Mancato rispetto della fornitura pubblicizzata di parti che causa ritardi o annullamento dei prodotti. Esca e scambia truffe (la tassa di $ 50.000 per il software non includeva la tassa di $ 1200 per il dongle richiesto per sbloccare la licenza, che è un elemento di costo aggiuntivo. Oh e quello era per utente per la licenza mobile). Una volta firmata la NDA per vedere il manuale di riferimento dei programmatori o la guida alla progettazione di riferimento, scopri quanto sia terribile la loro ingegneria e puoi scegliere di inserire nella lista nera tutti i loro prodotti per la vita. Storia passata con orribile supporto tecnico. Qualsiasi numero di motivi potrebbe non consentire mai ai loro addetti alle vendite di entrare nella porta principale o impedirti di rivedere il loro sito Web.
A volte ha a che fare con prestazioni, interfacce, ecc. Caso in questione afferma che hai un'interfaccia cablata e necessita di un pull up, il marchio di microcontrollori XYZ per $ 3 per parte ha un set di pin I / O che possono essere utilizzati senza altri hardware esterni richiesti, il marchio ABC ha una parte di $ 3 che richiederà un transistor esterno e un resistore per farlo funzionare al minimo. Il tuo esempio di msp430, dice che riguarda il consumo di energia, la parte A potrebbe richiedere all'utente di utilizzare solo una batteria AAA e funzionare per mesi, la parte B potrebbe aver bisogno di due batterie AAA e funzionare per settimane.
Il caso più raro di tutti è effettivamente fare l'ingegneria, sondare tutti i fornitori, fare la matematica del consumo di energia, il prezzo per unità della matematica del tuo prodotto, la grandezza di una rom di cui abbiamo bisogno e la frequenza con cui eseguire il chip, logica di colla, avanti e indietro. Di solito qualcuno (capo / cliente / ingegnere senior) prende i suoi anni di esperienza e spara dall'anca (spesso usando uno o più di quanto sopra) per scegliere il percorso (spesso un buon percorso risparmiando tonnellate di tempo in programma e dollari) e il la progettazione viene eseguita una volta per ottimizzare la piattaforma scelta.
La mia raccomandazione personale è quella di essere flessibile. La maggior parte dei marchi / famiglie di microcontrollori in qualche forma o moda può essere posseduta su una scheda di valutazione per meno di $ 50. Sparkfun, olimex o direttamente dal fornitore (ti per msp430 o stellaris, ecc.). Prova uno o più di ciascuno, fatti un'idea di ciò che è in comune e di ciò che è diverso, strumenti, caricatori, quanto sia difficile da rimuovere, ecc. Ottieni almeno due cose da questo, uno è che quando sei costretto a seguire un percorso dall'alto o dal cliente puoi raggiungere il suolo correndo, in secondo luogo quando è il tuo turno di scegliere la piattaforma sei meglio istruito su ciò che è e non è là fuori e puoi scegliere la piattaforma giusta (parola caricata) in base al problema a essere risolto.
Anche se non riesci o non puoi uscire e spendere quel tipo di denaro sull'hardware, la maggior parte ha strumenti che puoi scaricare (gratuitamente), in casi come il microchip ora puoi ottenere il compilatore C (un tempo era Hi-tech) ma devi iscriverti (rinuncia al tuo indirizzo email). gcc piace o odio sarà nel tuo futuro, desktop o incorporato, sporcarsi le mani e imparare a usarlo come cross-compilatore. Prova anche llvm, resterà in circolazione per un po 'e darà a gcc un po' di competizione seria. Comunque scrivi o trova alcuni emulatori, mame ne ha molti, gdb ne ha alcuni, ecc. Ne ho scritto uno chiamato il thumbulator su github, solo modalità pollice ARM, simile a una cortex-m3 tranne che non supporto thumb2 (posso ancora imparare un bel po ' e far funzionare i programmi su entrambi prima di passare solo all'hardware). Ho montato un emulatore msp430 ma mi sono bloccato su questo. Il set di istruzioni è così piccolo che la maggior parte del lavoro è un progetto serale o forse di sabato. Lo stesso vale per il PIC, un lungo pomeriggio e hai un simulatore di set di istruzioni con cui esercitarti. Se non altro, puoi semplicemente scrivere i programmi compilati e collegati per avere un'idea di come farlo e di quanto siano grandi i programmi, come ottimizzare i programmi per produrre codice più stretto, ecc.
Per quanto riguarda C vs assemblatore, alcuni set di istruzioni sono compatibili con C e altri no. Alcuni compilatori sono medi e alcuni sono davvero cattivi e solo alcuni sono davvero buoni (e di solito costano qualche migliaio di dollari una volta o all'anno da usare). Come per le prestazioni ovunque, se si desidera spingerlo davvero, potrebbe essere necessario un mix di linguaggio di alto livello (diciamo solo C) e assemblatore. Quindi l'abilità non sta scrivendo l'intera applicazione nell'assemblatore, l'abilità sta determinando quale codice ti sta impedendo di soddisfare i tempi / le prestazioni e quindi sapendo come risolverlo tramite C, le opzioni del compilatore, scegliendo il compilatore giusto o scrivendo l'assemblatore.
Ti consiglio di conoscere assemblatore per tutte le piattaforme che scegli di utilizzare, se nient'altro conoscenza leggibile come con embedded ti consiglio di smontare spesso (mentre capisci dove sono i tuoi problemi di prestazioni). Molte piattaforme è richiesto o desiderato un certo assemblatore per il codice di avvio.
Se si desidera risparmiare quel 10-20% sul prezzo per unità e si desidera acquistare il microcontrollore o l'oscillatore più economico / più lento o la parte flash da 32 KB anziché la parte flash da 64 KB e in grado di coprire i costi di sviluppo con il volume delle vendite e forse un lungo elenco di altre cose che potresti benissimo scegliere di scrivere tutto in assemblatore, veloce, a bassa potenza, a basso costo, clienti felici.
A seconda del tuo background finora, forse non dovresti preoccuparti di scrivere in tutti gli assemblatori e forse degli aspetti di ingegneria elettrica incorporati con i microcontrollori, leggere schemi, sapere cosa open collector, tri state, push pull, pwm, adc, dac e a lunga lista di altri termini e come usarli. bit banging i2c, spi, mdio, dallas one wire, ecc. Utilizzo di un ambito come debugger software. Anche se gli ambiti possono evidenziare le cose per te oggi (un elemento a costo aggiuntivo), dovresti essere in grado di controllare i2c e spi e alcuni altri protocolli senza i punti salienti.
Consiglio anche che per ognuna delle piattaforme con cui giochi, esci da sandbox di qualcun altro (ad esempio l'ide / ambiente di programmazione di Arduino). Scrivi il codice di avvio che porta il processore dal reset nel tuo programma principale (), fai tutto il possibile per capire come caricare / programmare il flash al punto che può comportare la scrittura del tuo caricatore anche se quelli a scaffale sono Là. Si tratta di educazione personale, più sai e puoi tirarti fuori dalla tasca posteriore e usare più controllo avrai sulla tua carriera e più zeri alla fine del numero sul tuo stipendio.
Qualunque cosa tu faccia, NON, cerca di imparare x86 come primo assemblatore su un desktop, scegli praticamente qualsiasi altra cosa e compila e simula in modo incrociato, ARM, THUMB, MSP430, PIC, AVR, anche 6502, 8051. x86 è un'istruzione orribile impostato e di conseguenza è stato trasformato e modellato in così tanti modi, microcodificato, non microcodificato, multi core, e così via. Mantieni x86 su linguaggi di alto livello e sistemi operativi ingombranti. Usalo per il tuo editor di testo e compilatori e scegli come target qualcos'altro.
Ci scusiamo per la lunga risposta ... spero sia stato utile.