En tant que programmeur débutant, je n'ai travaillé qu'avec la programmation d'applications informatiques, mais une question me vient très souvent à l'esprit depuis que j'ai commencé à programmer et je ne peux pas y répondre correctement.
Les machines n'agissent pas seules, c'est le travail du programmeur, il lui dit quoi faire et quand le faire, mais ma curiosité réside sous les ordinateurs. Je vais prendre les exemples d'un logiciel ATM sur ce post, mais gardez à l'esprit qu'il existe de nombreux autres tels qu'un écran de machine à laver, ou un téléviseur, un téléphone mobile, vous l'appelez.
Comment est exactement construit le logiciel pour ce type de machines? J'imagine que cela ne peut pas être identique à une programmation informatique. Quelle langue utilisent-ils pour faire fonctionner de telles choses et comment peut-on faire le travail? Existe-t-il des programmeurs spécialisés dans ce type de programmation? Quel est le processus pour donner vie à ces machines?
la source
Réponses:
Il est connu sous le nom de systèmes intégrés ou de développement de logiciels intégrés. Je recommanderais ce livre si vous voulez en savoir plus sur le processus général sans trop vous orienter vers une architecture. Il vous donne même un système d'exploitation en temps réel avec lequel jouer.
La programmation intégrée est très dépendante de l'architecture. Vous travaillez généralement sous des contraintes de réponse, de taille de programme, de récupération d'erreurs et de coût importantes. Par exemple, vous pourriez avoir un z80 (processeur 8 bits, ils sont partout) et peut-être quelques kilo-octets de mémoire pour jouer avec. Il se peut que vous n'ayez qu'une ROM pour indiquer au système quoi faire et comment configurer le programme. Il peut également n'être que de quelques kilo-octets. Pourquoi si peu de mémoire? Eh bien, si vous fabriquez 15 millions de petits drageons; chaque centime devient 150 000 $.
Je suggère de jouer avec quelque chose comme Arduino ou Scribbler Robots si vous voulez en savoir plus en faisant. En ce qui concerne les langages, C, C ++ et Assembly sont l'ensemble typique bien que Java puisse être utilisé (et a été en fait conçu à l'origine pour ce domaine si vous pouvez le penser). D'autres pourraient certainement être utilisés également, j'ai connu Lisp et ML sont tous deux déployés.
Apprenez autant que possible sur l'architecture car, comme je l'ai dit, l'allocation de mémoire et les opérations au niveau du bit deviennent très importantes.
la source
Il y a certainement un angle intégré ici. Mais ces jours-ci, vous voyez de plus en plus de plates-formes avancées sur ce que l'on appelle traditionnellement des appareils intégrés. Par exemple, les téléviseurs LG et Samsung ont désormais tous deux des API et des magasins d'applications. Les téléviseurs Sony utiliseront Android.
la source
J'ai vu deux distributeurs automatiques de billets ouverts à Denver, au Colorado. Les deux étaient (à l'époque) des guichets automatiques Compass Bank, et les deux étaient Windows XP sous le boîtier renforcé. J'ai eu la possibilité de demander au technicien ce qui, en particulier, l'un d'eux fonctionnait, et il a dit quelque chose comme "XP Embedded".
Donc, je parie que la programmation ATM ressemble moins à la programmation intégrée de nos jours, et plus au développement Windows standard.
la source
Ces types d'appareils sont programmés à l'aide d'une programmation intégrée . Il s'agit d'un type de programmation de très bas niveau qui traite fortement de la logique et des portes.
Si vous êtes intéressé par l'apprentissage pratique de la programmation intégrée, je vous recommande de vous pencher sur arduino .
la source