10
votes

ADA Multiking RTOS pris en charge avec OpenSource Cross-compilateurs

Quels rtoses à ADA ont OpenSource / Compilateurs croisés gratuits disponibles, avec support pour le multitâche / multithreading?

J'ai une puce Atmel At90USB162 que je veux programmer à l'aide de ADA. Ma première option consistait à utiliser AVR-Ada pour la programmation, mais comme il n'a pas de soutien des tâches, il est hors de choix (et je n'ai désormais aucun indice sur la prise en charge de la prise en charge). J'ai donc besoin d'une approche plus forte. J'ai pensé à utiliser QNX, mais c'est beaucoup plus complexe que ma puce.

J'ai eu l'info que AVR Chip prend en charge UC / OS-II et Freertos. Existe-t-il des compilateurs ADA gratuits pour Freertos ou UC / OS-II?

merci.


0 commentaires

4 Réponses :


6
votes

Eh bien, le seul compilateur ADA que je connaisse est le logiciel libre est GNAT. De sorte que cela réduit votre question à «ce que les rtoses du gnat soutiennent-elles avec les tâches?»

acte conserve une liste de plates-formes pris en charge ici . La colonne à droite ressemble à la plupart des rtoses ou de pseudo-rtoses. Freertos et UC / OS-II ne semblent pas être sur la liste.

Je remarque que le bas de leur liste sous "Boards Bare" Un format ELF "AVR Microcontroller" AVR Microcontroller (Hébergé sous Windows) ". C'est peut-être ce que vous recherchez. Cependant, je dirais qu'il y a une bonne chance que leurs ports nus de la carte ne soutiennent pas non plus les tâches. En fait, en réfléchissant, cela pourrait être le nom de AVR-Ada. Vous devriez vérifier avec acte.

En outre, il convient de noter qu'il est très difficile de trouver des fichiers binaires «Gratis» pour de nombreuses cibles de GCC plus ésotériques. Cela signifie que vous pouvez être obligé soit de construire le compilateur vous-même de sources (pas même à distance pour les faibles de cœur), ou d'acheter un paquet de support d'ACT pour l'obtenir.


0 commentaires

7
votes

RTEMS prend en charge le gnat au moins pour certaines architectures. Cependant, étant donné que vous avez mentionné Atmel AVR Architecture, cela n'est probablement pas pris en charge en raison de contraintes architecturales (mémoire disponible surtout). RTEEMS est très mature (il était open source avant que Linux ait été inventé) et s'est avéré extrêmement utilisable dans de nombreux projets.

Une autre option est Marteos , qui prend en charge ADA. Cependant, le soutien des architectures a été très limité (initialement x86 uniquement).

Donc, en fonction de vos contraintes de projet, vous avez probablement trois options:

  1. Séjournez avec AVR et écrivez votre propre tâche d'exécution pour ADA;
  2. re-considérez si vous avez vraiment besoin du support d'exécution pour la tâche; ou
  3. Mettez à niveau votre architecture sur une architecture qui est prise en charge par un RTO qui prend en charge ADA.

    (J'ai d'abord utilisé des rtéms avec Gnat Ada pour un projet propriétaire basé sur le noyau Arm9TDMI en environ 2004-2005.)


4 commentaires

Salut planificateur. J'ai vérifié dans la documentation README.Configure des RTEEMS, AVR est également pris en charge. Je vais donc lire la documentation plus en détail maintenant, mais je suppose que c'est très promis d'utiliser dans mon projet. Merci.


La Suite Office que la société qui a développé des RTEMs, Oar Corporation, est située dans le bâtiment où je travaille maintenant. Je fais une promenade dans le parc au déjeuner tous les jours et passez juste devant le grand panneau de rame.


@Marcc - Vous ne voulez pas être en hausse d'une crique sans eux! ;-)


Les RTEEM cherchent à être très puissant et il a été mis à jour depuis 1988 à 2011.



7
votes

Je suis l'un des développeurs de RTEEM originaux et je suis le chef de projet RTEEM depuis qu'il est passé d'un programme de recherche de l'armée à un projet de logiciel libre traditionnel. Nous essayons très fort de garder les RTEMS comme produit de haute qualité avec une grande communauté.

L'AVR est une cible assez petite et le port RTEEM est incomplet. Même si le port RTEEMS était complet, je ne pense pas qu'il y ait une AVR avec suffisamment d'espace d'adressage pour soutenir les gnat / rtems. GNAT Maps Chaque tâche ADA à un fil de POSIX Tout comme sur GNU / Linux et l'empreinte de temps d'exécution pour un environnement "réel ADA" est grand. Je rappelle des exécutables minimum dans la plage de code 400K sur un PowerPC. En comparaison, l'exécutable du minimum C RTEEM est probablement dans la plage de 32 à 40 000 points de la même cible.

Je ne suis pas si connu avec AVR-Ada mais je conviendrais qu'il est très peu probable de vous donner un environnement ada complet.

Le projet RTEEM a des scripts que nous utilisons pour construire les outils GNU et les tester. Si vous êtes intéressé par des outils de construction pour votre propre cible étrange, ils peuvent être un bon guide. La procédure ne varie pas beaucoup pour les cibles intégrées.

Marc c .. Depuis que vous êtes à Huntsville, nous devrons nous réunir parfois pour le déjeuner. Notre bureau est à peu près de la rue Bridge. Je ne comprends vraiment pas de nombreux utilisateurs de RTEEM. : (


3 commentaires

Très clarifiant votre réponse, @, merci. J'avais pris un coup d'œil dans la documentation de RTEMS, lorsque @schedler en a parlé (et je ne savais pas à propos de RTEEM à ce moment-là). Et malgré de ne pas avoir de port complet, je l'ai trouvé très intéressant d'utiliser avec AVR, même avec toutes les limitations. Au moins à des fins d'apprentissage. La plupart des jetons AVR sont très limités si vous les comparez à certains architectures Power PC ou SPARC. J'ai développé des applications dans Power PC sur VXWorks et ils ont simplement des paradigmes de programmation totalement différent.


Mais les utilisateurs AVR sont normalement utilisés dans ces limitations et les applications qui l'utilisent normalement ne nécessitent pas de contraintes en temps réel profondes. Dans RTEEMS DOCUMENT RTEEMS SUPPLÉMENT DE L'ARCHITECTURE DU CPU J'ai trouvé assez intéressant les fonctionnalités disponibles pour l'utilisation avec AVR, j'ai donc suggéré que mes étudiants de MSC travaillent sur la possibilité de mettre en œuvre certaines fonctionnalités d'AVR à l'aide de RTEMS comme défi.


AVR-Ada est un projet d'open-source fantastique, mais maintenant ce n'est pas complet. Et je choisirais de l'utiliser si je pouvais, car il est mis en œuvre de manière très intuitive. L'objectif était de mettre en place un compilateur de fenêtres de Windows 8 bits pour certains microcontrôleurs, mais il manque encore plusieurs fonctionnalités de bonne ada, celles qui sont les bons goûts d'utilisation de ADA. Par exemple, il ne supporte pas les tâches, ni des exceptions. Il semble que ce sera une nouvelle libération cette année, mais malheureusement, la pointe de l'art actuelle n'est pas possible pour des applications préventives. J'espère que la prochaine publication résoudra ceci.



3
votes

Nous aimerions voir le port AVR devenir plus complet! Encouragez vos élèves à rejoindre notre liste de diffusion de développement et à poser des questions.

RTEEMS est dans la même classe de RTO que VXWorks. Cela lui donne un ensemble de fonctionnalités riches qui doit être coupé pour s'adapter aux plus petits et (certains) 16 bits de processeurs 16 bits. Notre défi consiste à identifier un profil de «minuscule / RTEEM» pour viser. Les RTEEMS sont vraiment très évolutifs, mais lorsque vous ne savez pas quel ensemble de caractéristiques serait significatif sur cette CPU de classe, cela nous laisse sans but concret. S'il vous plaît aider à définir les exigences de l'utilisateur et un objectif.

Aussi, nous aimons vraiment avoir un BSP qui fonctionne sur un simulateur libre pour chaque architecture cible. Simulavr était ce que j'utilisais lorsque je travaillais activement sur le port. Adacore a utilisé quelque chose appelé Avrtest mais il était plus limité - utile mais limité.


1 commentaires

Merci. Je vais les suggérer de rejoindre la liste. Je suppose que c'est une bonne occasion pour eux d'apprendre.