Creare le tue librerie è abbastanza semplice. La loro documentazione sulle specifiche del registro è piuttosto buona, la maggior parte se non tutte le periferiche sono facili da configurare. Trovo molto più doloroso usare le loro librerie. ma forse sono solo io. Questo è vero per st, nxp, ti, atmel per citarne alcuni (non tanto per Intel e microchip).
Perché cambiano le biblioteche, possono essere un numero qualsiasi di ragioni, alcuni nuovi capi hanno preso il controllo, alcune divisioni sono state chiuse, un'altra ha preso il controllo. Il marketing voleva una nuova immagine per il prodotto. Come accennato da ElectronS, potrebbe essere un tentativo di allontanarsi maggiormente dall'hardware per attirare utenti non disposti o in grado di fare bare metal. Vorrei andare oltre e dire che probabilmente stanno cercando di competere con il fenomeno Arduino. Quale mbed e tutti gli altri hanno sempre cercato di fare e fallito (anche prima di Arduino).
In ogni caso, più lontano dall'hardware diventa più gonfio e più lento, quindi più devi spendere per unità per rom, ram e mhz. Solo così potresti dedicare lo stesso tempo alla programmazione? Lo stai facendo diversamente?
Dici di venire dal mondo PIC, ora hanno fatto un buon lavoro con gli strumenti, anche se i loro documenti sui chip erano terribili, alcuni dei peggiori. hanno compensato con biblioteche e sandbox.
Alla fine della giornata, prova le varie opzioni, prova i prodotti concorrenti per vedere come si confrontano i loro strumenti. Molte cose che puoi fare gratuitamente solo per vedere se ha senso e puoi compilare cose. Forse anche usare un simulatore di set di istruzioni. Trova quello che fa per te.
Nota, l'opzione senza librerie fisse è SEMPRE a tua disposizione. Non si è limitati a quale toolchain è possibile utilizzare, quale sistema operativo host, quale ide, editor, ecc. Potrebbero attenersi a te sulla programmazione delle parti, se le loro opzioni sono estremamente limitate a tale riguardo passare a qualche altro chip o fornitore se puoi.
Per vendere un prodotto con chip in questo modo devono fornire un ambiente di sviluppo che sia tutto loro o materiale gratuito che hanno incollato insieme. E tendono a mettere insieme una biblioteca di qualche tipo. Deve solo sembrare abbastanza buono e il battito di ciglia dell'esempio principale funziona abbastanza bene da indurre la tua direzione o il tuo team hardware a progettare il loro prodotto, quindi quando il tuo prodotto di bordo viene lanciato sul muro al software, è quando il dolore non arriva o non arriva Se funziona quasi, ma non del tutto, è una grande vittoria per il fornitore di chip in quanto ora pagherai il supporto tecnico per l'ultimo bit. Quindi è nel loro interesse essere quasi lì, ma non del tutto.
I venditori di chip devono solo avere un bell'aspetto per vincere il design. Devono continuare a migliorare (? Cambiare) il prodotto per attirare nuovi e vecchi clienti. Quindi avranno delle modifiche, quanto distanti e quante librerie precedenti continuano a supportare, varia. Quindi alla fine qualsiasi libreria a cui ti abituerai andrà via. Quindi impara ad adattarti (o non usare le loro cose e andare per conto tuo, che puoi supportare indefinitamente). Concesso, idealmente, devi solo sviluppare l'applicazione una volta per prodotto, rendere perfetto il tuo firmware (buona fortuna se usi librerie di terze parti) e non dovrai tornare indietro e trovare un computer che caricherà la loro toolchain se riesci a trovare un copia di esso, e ricorda come usare quella vecchia biblioteca. Ricorda che non solo dovresti salvare il tuo codice sorgente, ma dovresti salvare tutti i loro strumenti e documenti.
Le loro librerie sono supportate solo su una toolchain, sotto una forse due IDE e talvolta solo su Windows e determinate versioni. Ancora una volta non hai nessuna di queste limitazioni, sicuramente non per ARM, se fai le tue cose. Puoi sempre leggere qualsiasi / tutte le loro librerie per vedere come fanno le cose. Ma questo è spesso molto spaventoso, non usano i loro sviluppatori del team A per le biblioteche, ho estratto alcune righe di codice per chiedere ai candidati dell'intervista cosa c'è di sbagliato in questo codice.
per risparmiare tempo e fatica sia sul lato del silicio che sul lato software, molto spesso riciclano lo stesso IP, quindi una volta che vedi come funziona la periferica su uno dei suoi chip, spesso funziona allo stesso modo su molti altri chip. Sì, i sistemi di clock possono essere complicati con o senza le loro librerie. Elevate possibilità di brickare il chip, ecco dove è avvenuta la maggior parte del mio brick / chip. Aiuta a capire come funzionano i loro chip, ad esempio gli AVR, la maggior parte se non tutti, possono essere riprogrammati mentre il chip è resettato, quindi qualsiasi codice errato che rovina i pin necessari per riprogrammare o blocca la logica necessaria per riprogrammare, non importa, puoi riprogrammare quei chip. Alcuni di questi venditori (st is one) ha un bootloader interno che puoi selezionare usando un cinturino (BOOT0 per esempio nel mondo st),
Taglia unica adatta a nessuno. Particolarmente vero per il software. Quindi qualsiasi tentativo di sottrarre l'hardware, lo rende solo lento e gonfio. Potrebbe anche ottenere un chip più grande ed eseguire Linux su di esso, se è quello che stai veramente cercando. Gran parte di questo è il risultato degli sviluppatori, che non vogliono sporcarsi le mani, quindi in pratica lo abbiamo chiesto e stanno cercando di fornirlo.
Ancora una volta, non bloccare te stesso in un fornitore o in uno qualsiasi (a meno che non sia troppo tardi e la direzione e il team hardware non te lo abbiano attaccato, nota che i prodotti stm32 sono belli e facili da usare). Guardarsi intorno. TI sta mettendo molte uova nel cestino della corteccia-m4. Puoi eseguire le operazioni mbed su alcuni di questi prodotti arm e sulle soluzioni supportate dal fornitore.
Una cosa su cui puoi sempre fare affidamento è che di tanto in tanto cambieranno le librerie e alla fine smetteranno di supportare quella a cui ti sei abituato.