Définissez ce que vous entendez par des éléments de niveau supérieur. L'écriture de pilotes et de tout autre type de logiciel qui communique avec le matériel est probablement ce à quoi la plupart des gens pensent lorsque vous mentionnez un logiciel intégré. Bien que cela en fasse partie, ce n'est qu'une petite partie. Une fois que vous avez toute cette configuration, il reste toute l'application à écrire qui ne parle probablement jamais directement au matériel et plus que probablement dans la plupart des cas, c'est la majorité de l'effort de développement. Cela peut, à un certain niveau, être comparable à une programmation de niveau "supérieur". Cependant, dans le monde embarqué, vous travaillez probablement sous certaines contraintes, notamment en termes de puissance de calcul et de mémoire. Voici une liste de choses auxquelles je pense quotidiennement et qui ont probablement moins d'importance dans le développement de niveau supérieur dans la plupart des cas.
- Concurrence des threads (protection et synchronisation)
- Allocation de mémoire, désallocation et utilisation
- Gestion du tas (éviter la fragmentation)
- Respect des délais en temps réel
- Priorité des threads
- Performances I / 0
- Transferts DMA
- Tailles de pile
- Performances de la bibliothèque
- Fonctionnalités linguistiques (les exceptions gonflent votre code)
En outre, les plates-formes embarquées ont tendance à être hautement spécialisées pour atteindre un objectif spécifique, contrairement à un PC conçu pour être une plate-forme pour le calcul de l'hétérogénéité générale. Cela signifie que vous avez probablement beaucoup de code personnalisé qui peut être portable ou non.
Je soupçonne que vous cherchez des emplois où «intégré» signifie «ordinateur dans une boîte», généralement un qui fait une tâche spécifique. Il est très probable qu'il exécute la plupart des distributions Linux ou Microsoft OS, mais il sera assez complet et vous pourrez utiliser des IDE GUI standard et ainsi de suite. La partie intégrée survient vraiment lorsque l'appareil est livré comme un enregistreur vidéo multicanal, un appareil de diffusion multimédia ou une alarme antivol.
De nos jours, vous pouvez effectuer un grand nombre de traitements dans un appareil 1W, de sorte que la définition de l'embarqué a augmenté en conséquence. Mais même il y a 20 ans, nous avions des appareils intégrés alimentés par batterie exécutant un DOS assez standard et des programmes conçus pour eux en utilisant l'IDE du jour (les scanners de codes-barres Symbol avaient des bibliothèques pour C et Pascal, par exemple, nous avons donc utilisé Turbo Pascal sur Win3.1 pour construire les exécutables). Mais nous avons également expédié des «PC industriels» qui démarraient DOS puis notre logiciel, et l'entrée était limitée à quelques gros boutons étanches montés sur un boîtier en acier inoxydable. L'écran LCD 15 "derrière la vitre dans cette boîte signifiait que nous avions beaucoup d'options de sortie, mais attacher un clavier signifiait ouvrir la boîte (à l'intérieur d'une usine alimentaire). Celles-ci pourraient être considérées comme intégrées de certaines perspectives. La plupart du temps, l'utilisateur avait peu d'options de récupération d'erreur - redémarrer ou non.
la source