J'ai un arrière-plan dans la programmation des systèmes intégrés (TI MSP4 , ATMEL ATXMEGA ). Comment la programmation est-elle différente de l'arduino? Quelles connaissances sur c puis-je prendre pour programmer l'Arduino?
Bien que je ne connaisse pas l'AtXmega, les frites AVR 8 bits comme l'ATMEGA328 utilisée sur les nouveaux Arduinos utilisent le compilateur AVR-GCC. Cela permet de compiler C et même de C++ à une puce AVR. Un niveau supérieur au-dessus de l'AVR-GCC est le AVR LIBC , une bibliothèque C qui rend la programmation pour la tâche de niveau supérieur AVR (ne doit plus faire référence aux registres directement, etc.).
L'arduino IDE utilise AVR-GCC et AVR Libc Library dans le backend. De plus, l'Arduino IDE fait autres bibliothèques disponibles , comme une belle interface série.
Enfin, l'Arduino est livré avec un chargeur de démarrage brûlé sur la puce AVR. Le chargeur de démarrage permet simplement de programmer l'AVR à l'aide d'une connexion série (à partir de USB) au lieu d'un programmeur ou d'une carte de développement en SYTEM.
Assez de backstory, pour répondre à votre question: l'Arduino peut être programmé en C et même C++. Les bibliothèques disponibles sont écrites en C et tout sera compilé à l'aide d'AVR-GCC. L'Arduino IDE n'est même pas nécessaire.
Edit
Il semble y avoir une quantité décente d'intérêt dans ce sujet. J'ai écrit un article de blog pour essayer de donner plus de détails en profondeur sur l'AVR, Arduino et AVR-GCC .
Vous pouvez prendre votre connaissance C existante pour utiliser Arduino.
Le but était de permettre aux artistes/non-programmeurs de commencer facilement avec la programmation matérielle et le bricolage, de sorte que la "langue arduino" est simplement une enveloppe pour simplifier le développement.
Cela devrait être beaucoup plus facile pour vous, en tant que programmeur C d'utiliser Arduino. La Documentation n'est pas longue du tout, le wiki est sympa et les personnes sur le forum sont enthousiastes et utiles.
Arduino est de type C et extrêmement facile à ramasser. Ils ont abstraité de faire des choses comme la lecture et l'écriture dans des registres périphériques pour faire des tâches de base.
Un regard sur un exemple de code et de la référence Arduino et vous serez opérationnel en un rien de temps si vous avez réellement effectué Real C sur une autre plate-forme.