Question

Je suis en train de faire des recherches pour une entreprise comme un stage. J'avais une question à l'aide de Mono, la mise en œuvre de la plate-forme transversale de la plate-forme .Net. Mon entreprise conçoit le matériel et sotware.

Ma connaissance de l'utilisation de Linux embarqué est très limité. Mon entreprise où je fais mon stage est vraiment .NET esprit. Mais les nouveaux développements de mono, ils se demandent si elles peuvent cibler linux pour les petits projets, aussi éviter le coût élevé des licences pour les personnes pour lesquelles ils conçoivent le logiciel et le matériel.

Je l'ai déjà regardé dans ce mono peut faire (et ne peut pas encore faire). Maintenant, je tends la question intégrée. Je suis un peu perdu dans l'histoire de la façon dont un Linux embarqué est construit.

J'ai vu des histoires où ils ont juste pris quelques bibliothèques de Linux standard pour rendre le Linux embarqué sur le matériel. J'ai vu aussi qu'il existe des distributions de Linux spéciales comme uClinux (aka µClinux). Alors, quelle est la différence, ou est-ce la même chose. À quoi ressemble le processus comme généralement quand je veux utiliser Linux embarqué sur un deivce cible?

OK, que la partie mono, donc en gros je veux être en mesure d'exécuter C # sous Linux embarqué. Ici, la plupart du temps ils utilisent uClinux, je suis en mesure d'utiliser mono pour cela? Je regardais certaines spécifications, et ils ne pas l'unité de gestion mémoire (MMU).

au fond, je ne vous inquiétez pas à ce sujet MMU. Depuis combien sera le garbage collector réagir?

J'espère que je ne donne pas une surcharge de questions,

Cordialement, et je vous remercie déjà pour le lire,

Benjamin

Était-ce utile?

La solution

Le garbage collector ne dépend pas d'une MMU, mais il peut être plus efficace s'il y a un.

Nous prenons actuellement profité pour générer des exceptions de référence null sans contrôles: sur uClinux vous devez activer les contrôles explicites (le code est déjà là, il a juste besoin d'être activé). D'autres personnes ont déclaré utiliser mono sur uClinux, mais il y a probablement quelques modifications nécessaires aux sources ici et là depuis nous testons jamais sur cette plate-forme (de je bien sûr parler de uClinux sur une architecture cpu nous soutenons déjà, comme ARM, vous n'a pas précisé).

En ce qui concerne les autres commentaires, AOT et mkbundle sont largement hors de propos pour ce que vous avez besoin. Qu'est-ce que vous voulez vraiment est de réduire l'empreinte mono pour entrer dans ce que votre appareil permet, voir http: // www .mono-project.com / Small_footprint pour plus d'informations.

S'il me faisait la décision, je serais toujours choisir un linux régulier ARM sur uClinux pour exécuter des logiciels complexes comme mono ou tout autre programme que vous devez exécuter sur mono.

Autres conseils

Si vos périphériques n'ont pas de MMU, peut-être vous voudrez peut-être utiliser open-source de Microsoft .NET Micro Framework . Il est beaucoup plus limité que .NET / Mono, et il est un interprète, pas JIT, mais il peut fonctionner sur beaucoup matériel plus limité.

Mono peut être aussi limité que vous voulez qu'il soit. Si vous utilisez un appareil qui n'a pas MMU, je regarde dans Avant compilation du temps .

mkbundle peut également fonctionner aussi bien, mais je ne suis pas sûr que ce peut faire sans MMU. Cela dit, si vous utilisez AOT, vous allez utiliser mkbundle premier à tirer dans toutes les dépendances.

Si votre entreprise veut cibler les conseils Linux embarqués via MONO, et tout ce qui est nécessaire est de transférer une application qui fonctionne déjà sur Windows de l'ordinateur de bureau, vous aurez probablement très peu de problèmes. Mais si vous voulez parler à certains IO, I2C, SPI, 1-fil et d'autres périphériques, vous les aurez un problème d'accès via MONO et vous devrez probablement faire quelques traducteur (probablement écrit CCG) qui sera un passerelle entre le réel matériel et votre application MONO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top