Inizierò raccontandoti quello che so. Poi ti dirò che voglio arrivare in questa magica terra di sapere tutto sullo sviluppo di sistemi embedded. Allora ti chiederò quali dovrebbero essere i miei prossimi passi per arrivarci. Questa risposta è piuttosto istruttiva, ma sto cercando di essere un po 'più dettagliato:
Quello che so
Let's vedi, sono onesto con C e C ++. Ovviamente, voglio migliorare con quei linguaggi, ma penso che a questo punto il modo migliore per migliorarmi sia continuare a usarli e cercare continuamente di migliorare il mio codice mentre lo scrivo. Non penso che sarebbe molto vantaggioso dedicare più esercizi di apprendimento solo all'apprendimento del C.
Mi trovo abbastanza a mio agio nel progettare circuiti semplici. Vedo un chip con un'uscita a collettore aperto e so di aver bisogno di un pull up ecc. Sono abbastanza fiducioso che, dato un IC e la sua scheda tecnica, posso capire come interfacciarmi con esso o almeno porre le domande giuste a capire come interfacciarlo.
Sono molto bravo in matematica e pensiero logico. Ci sono pochi algoritmi / concetti di progettazione che mi gettano per un ciclo. Questa è sicuramente la mia area di forza.
Cosa ho fatto
Fino ad ora, tutta la mia esperienza è stata con microcontrollori a 8 bit . Il mio corso universitario utilizzava un Motorola HC08, un Intel 8051 e uno Zilog EZ8. Il mio professore aveva costruito una piccola scheda di sviluppo per tutti e tre con un display a 7 seg e alcune altre cose. Li abbiamo programmati in assembly, quindi ho una certa familiarità con l'assemblaggio e ho seguito un corso di architettura del computer di base, quindi ho un'idea decente dell'hardware. Tuttavia, abbiamo lavorato su un ambiente Windows e tutti e 3 gli MCU avevano il loro IDE e catena di strumenti già configurati, quindi non ho mai imparato davvero come il mio codice sia passato dall'assemblaggio all'esecuzione sull'MCU.
Il passo successivo è stato imparare da solo. Ho acquisito molta familiarità con l'ambiente Arduino interfacciandomi con sensori / memorie / display che entrambi avevano librerie pre-scritte e altri che non lo avevano. Successivamente ho costruito la mia scheda Arduino con un ICSP su di essa e connessioni a un altro MCU in modo da poter eseguire il flashing del bootloader su ATmega328 nudi. Anche in questo caso, tuttavia, l'IDE e la catena di strumenti erano già impostati e non ho mai capito come sono passato da C / Arduino al codice effettivamente in esecuzione sull'MCU.
Cosa voglio sapere
Quindi, dalla risposta precedentemente collegata, penso che le cose più interessanti / utili per me sarebbero il proiettile sull'apprendimento degli strumenti (compilatore e linker) e l'apprendimento di diversi stili di architettura software ( passando da loop di controllo basati su interrupt a scheduler e RTOS). Questa è la mia opinione su ciò che sarebbe più utile ... ma dal momento che non lo so ancora è difficile dire se sia corretto o no, quindi sentiti libero di suggerire altri punti elenco da quella risposta se pensi che sarebbero migliori e si prega di fornire una spiegazione del motivo per cui lo si pensa.
Quindi, prendendo le mie attuali conoscenze come punto di partenza e la descrizione sopra di ciò che voglio sapere come obiettivo, sto cercando suggerimenti molto specifici su dove andare dopo. Sto cercando suggerimenti esatti per progetti, siti web / post di blog da leggere, capitoli di libri, ecc.
Inoltre, ci sono altri buchi nella mia base di conoscenza che pensi dovrei colmare prima di passare a gli argomenti sopra menzionati?
Grazie