Je vais commencer par vous dire ce que je sais. Ensuite, je vais vous dire que je veux arriver à ce pays magique de tout savoir sur le développement de systèmes embarqués. Ensuite, je vais vous demander quelles devraient être mes prochaines étapes pour y arriver. Cette réponse est plutôt informative, mais j'essaie d'être un peu plus détaillée:
Ce que je sais
Allons voyez, je suis juste avec C et C ++. Évidemment, je veux m'améliorer avec ces langages, mais je pense qu'à ce stade, le meilleur moyen pour moi de m'améliorer est de continuer à les utiliser et d'essayer continuellement d'améliorer mon code au fur et à mesure que je l'écris. Je ne pense pas qu'il serait très bénéfique de consacrer des exercices d'apprentissage uniquement à l'apprentissage du C.
Je suis assez à l'aise avec la conception de circuits simples. Je vois une puce avec une sortie à collecteur ouvert et je sais que j'ai besoin d'un pull up, etc. Je suis assez confiant que compte tenu d'un IC et de sa fiche technique, je peux soit trouver comment interfacer avec lui, soit au moins poser les bonnes questions à comprendre comment l'interfacer.
Je suis très bon en mathématiques et en pensée logique. Il y a peu d'algorithmes / concepts de conception qui me lancent une boucle. C'est certainement mon domaine le plus fort.
Ce que j'ai fait
Jusqu'à présent, toute mon expérience a été avec des microcontrôleurs 8 bits . Mon cours universitaire a utilisé un Motorola HC08, un Intel 8051 et un Zilog EZ8. Mon professeur avait construit un petit tableau de développement pour tous les trois avec un écran à 7 segments et d'autres choses. Nous les avons programmés en assemblage, donc je suis un peu familier avec l'assemblage et j'ai suivi un cours d'architecture informatique de base, donc j'ai une bonne idée du matériel. Cependant, nous avons travaillé sur un environnement Windows et les 3 MCU avaient le leur L'IDE et la chaîne d'outils sont déjà configurés, donc je n'ai jamais vraiment appris comment mon code est passé de l'assemblage à l'exécution sur le MCU.
Ma prochaine étape a été d'apprendre par moi-même. Je me suis très familiarisé avec l'environnement Arduino en m'interfaçant avec des capteurs / mémoires / écrans qui avaient à la fois des bibliothèques pré-écrites et d'autres pas. Ensuite, j'ai construit ma propre carte Arduino avec un ICSP et des connexions à un autre MCU afin de pouvoir flasher le chargeur de démarrage sur des ATmega328 nus. Encore une fois, cependant, l'IDE et la chaîne d'outils étaient déjà configurés et je n'ai jamais compris comment je suis passé de C / Arduino au code fonctionnant réellement sur le MCU.
Ce que je veux savoir
Donc, d'après la réponse précédemment liée, je pense que les choses les plus intéressantes / bénéfiques pour moi seraient la balle sur l'apprentissage des outils (compilateur et éditeur de liens), et l'apprentissage de différents styles d'architecture logicielle ( passant des boucles de contrôle basées sur les interruptions aux ordonnanceurs et RTOS). C'est mon opinion sur ce qui serait le plus utile ... mais comme je ne le sais pas encore, il est difficile de dire si c'est correct ou non, alors n'hésitez pas à suggérer d'autres puces à partir de cette réponse si vous pensez qu'elles seraient meilleures et Veuillez expliquer pourquoi vous pensez cela.
Donc, en prenant mes connaissances actuelles comme point de départ et la description ci-dessus de ce que je veux savoir comme objectif, je recherche suggestions très spécifiques sur la prochaine étape. Je recherche des suggestions de projets exacts, des sites Web / entrées de blog à lire, des chapitres de livres, etc.
De plus, y a-t-il d'autres lacunes dans ma base de connaissances que vous pensez que je devrais combler avant de passer à les sujets mentionnés ci-dessus?
Merci