Zacznę od tego, co wiem. Następnie powiem ci, że chcę dostać się do tej magicznej krainy wiedzy o rozwoju systemów wbudowanych. Następnie zapytam Cię, jakie powinny być moje następne kroki, aby się tam dostać. Ta odpowiedź jest dość pouczająca, ale staram się uzyskać trochę bardziej szczegółowe informacje:
Co wiem
Widzisz, jestem sprawiedliwy z C i C ++. Oczywiście chcę być lepszy z tymi językami, ale myślę, że w tym momencie najlepszym sposobem na poprawę jest ciągłe ich używanie i ciągłe doskonalenie kodu w trakcie jego pisania. Nie sądzę, by było korzystne poświęcanie jakichkolwiek ćwiczeń do nauki języka C.
W miarę dobrze radzę sobie z projektowaniem prostych obwodów. Widzę chip z wyjściem typu open collector i wiem, że potrzebuję podciągnięcia itp. Jestem dość przekonany, że biorąc pod uwagę układ scalony i jego arkusz danych, mogę albo dowiedzieć się, jak się z nim połączyć, albo przynajmniej zadać właściwe pytania wymyśl, jak to połączyć.
Jestem bardzo dobry z matematyki i logicznego myślenia. Istnieje kilka algorytmów / koncepcji projektowych, które rzucają mi pętlę. To zdecydowanie moja najmocniejsza strona.
Co zrobiłem
Do tej pory całe moje doświadczenie dotyczyło 8-bitowych mikrokontrolerów . Mój kurs w college'u wykorzystywał Motorola HC08, Intel 8051 i Zilog EZ8. Mój profesor zbudował małą tablicę deweloperską dla wszystkich trzech z 7-segmentowym wyświetlaczem i innymi rzeczami. Zaprogramowaliśmy je w asemblerze, więc jestem trochę zaznajomiony z montażem i ukończyłem podstawowy kurs architektury komputera, więc mam przyzwoite pojęcie o sprzęcie. Jednak pracowaliśmy w środowisku Windows i wszystkie 3 MCU miały swoje własne IDE i łańcuch narzędzi są już skonfigurowane, więc nigdy nie dowiedziałem się, jak mój kod przeszedł od montażu do uruchomienia na MCU.
Następnym krokiem była samodzielna nauka. Bardzo dobrze zapoznałem się ze środowiskiem Arduino, łącząc się z czujnikami / pamięciami / wyświetlaczami, które miały wstępnie napisane biblioteki, a niektóre nie. Następnie zbudowałem własną płytkę Arduino z ICSP i połączeniami z innym MCU, aby móc flashować bootloader na gołe ATmega328s. Jednak ponownie IDE i łańcuch narzędzi były już skonfigurowane i nigdy nie zrozumiałem, jak przeszedłem od C / Arduino do kodu działającego na MCU.
Co chcę wiedzieć
Tak więc z poprzednio połączonej odpowiedzi, myślę, że najbardziej interesującą / korzystną rzeczą dla mnie byłaby punktacja dotycząca uczenia się narzędzi (kompilatora i linkera) oraz uczenia się różnych stylów architektury oprogramowania ( przechodzenie od pętli sterowania opartych na przerwaniach do harmonogramów i systemów RTOS). Taka jest moja opinia na temat tego, co byłoby najbardziej przydatne ... ale ponieważ jeszcze tego nie wiem, trudno powiedzieć, czy to prawda, czy nie, więc możesz zasugerować inne punkty z tej odpowiedzi, jeśli uważasz, że byłyby lepsze i proszę wyjaśnić, dlaczego tak myślisz.
Biorąc moją obecną wiedzę jako punkt wyjścia i powyższy opis tego, co chcę wiedzieć jako cel, szukam bardzo szczegółowe sugestie, gdzie dalej. Szukam dokładnych propozycji projektów, stron internetowych / wpisów na blogu do przeczytania, rozdziałów w książkach itp.
Czy są też jakieś inne luki w mojej bazie wiedzy, które Twoim zdaniem powinienem wypełnić, zanim przejdę do wyżej wymienione tematy?
Dzięki