2011-10-25 10 views
8

¿Qué RTOSes tienen Ada compiladores cruzados de código abierto/libre, con soporte para multitarea/multihilo?RTOS multitarea de Ada compatible con compiladores cruzados de código abierto

que tienen un chip Atmel AT90USB162 que quiero programar con Ada. Mi primera opción fue utilizar AVR-Ada para programarlo, pero como no tiene soporte para tareas, es por elección (y en este momento no tengo ni idea de cómo activarlo). Entonces necesito un enfoque más fuerte. Pensé en usar QNX, pero es mucho más complejo que mi chip.

Obtuve la información de que el chip AVR es compatible con uC/OS-II y FreeRTOS. ¿Hay compiladores cruzados Ada gratuitos para FreeRTOS o uC/OS-II?

Gracias.

Respuesta

6

RTEMS apoya GNAT al menos para algunas arquitecturas. Sin embargo, dado que usted mencionó la arquitectura Atmel AVR, probablemente esto no sea compatible debido a restricciones arquitectónicas (memoria disponible principalmente). RTEMS es muy maduro (era de código abierto antes de que se inventara Linux), y se ha demostrado que es extremadamente utilizable en muchos proyectos.

Otra opción es MarteOS, que apoya a Ada. Sin embargo, el soporte de arquitecturas ha sido muy limitado (inicialmente solo x86).

Por lo tanto, dependiendo de sus restricciones del proyecto es muy probable que tiene tres opciones:

  1. estadía con AVR, y escribe su propio tiempo de ejecución de tareas de apoyo para Ada;
  2. Reconsidere si realmente necesita el soporte en tiempo de ejecución para la tarea; o
  3. Actualice su arquitectura a una que sea compatible con un RTOS que admita Ada.

(he utilizado por primera vez RTEMS con GNAT Ada para un proyecto propio basado en ARM9TDMI núcleo en torno a 2004-2005.)

+1

Hi Schedler. Revisé en la documentación de configuración de REEMBOLSO de RTEMS, AVR también es compatible. Así que voy a leer la documentación con más detalle ahora, pero creo que es muy prometedor para usar en mi proyecto. Gracias. – Rego

+0

El paquete ofimático en el que está ubicada la empresa que desarrolló RTEMS, OAR Corporation, se encuentra junto al edificio en el que estoy trabajando en este momento. Yo doy un paseo por el parque en el almuerzo todos los días y voy pasando el letrero OAR. –

+0

@MarcC - ¡No querrás estar en un arroyo sin ellos! ;-) –

6

Bueno, el único compilador de Ada que conozco es el software libre es el mosquito. Así que eso reduce su pregunta a "¿Qué RTOSes admite Gnat con la tarea?"

ACT mantiene una lista de supported platforms here. La columna de la derecha parece principalmente RTOS o pseudo RTOS. FreeRTOS y uC/OS-II no parecen estar en la lista.

me noto muy abajo en la parte inferior de su lista en "tablas desnudas" una lectura de entrada "formato ELF microcontrolador AVR (alojado en Windows)". Eso puede ser lo que estás buscando. Sin embargo, diría que hay una buena posibilidad de que sus puertos de placa base no admitan la tarea tampoco. De hecho, al pensarlo, ese podría ser el nombre de ACT para AVR-Ada. Tendrás que consultar con ACT.

Además, debe tenerse en cuenta que es muy difícil encontrar los binarios "gratuito" para muchos de los objetivos del CCG más esotéricos. Esto significa que puede que sea forzado a compilar el compilador usted mismo desde las fuentes (ni siquiera remotamente para los débiles) o comprar un paquete de soporte de ACT para obtenerlo.

5

Soy uno de los desarrolladores originales y RTEMS sido el líder del proyecto, ya RTEMS hizo la transición de un programa de investigación del Ejército a un proyecto de software libre tradicional. Hacemos todo lo posible para mantener RTEMS como un producto de alta calidad con una gran comunidad.

El AVR es un objetivo bastante pequeño y el puerto RTEMS está incompleto.Incluso si el puerto RTEMS estuviera completo, no creo que haya un AVR con suficiente espacio de direcciones para admitir GNAT/RTEMS. GNAT asigna cada tarea de Ada a una cadena de caracteres POSIX igual que en GNU/Linux y la huella de tiempo de ejecución para un entorno "real Ada" es grande. Recuerdo los ejecutables mínimos en el rango de códigos 400K en un PowerPC. En comparación, el ejecutable mínimo de RTEMS C probablemente esté en el rango de 32-40k en ese mismo objetivo.

No estoy tan familiarizado con AVR-Ada, pero estoy de acuerdo en que es muy poco probable que le proporcione un entorno completo de Ada.

El Proyecto RTEMS tiene scripts que usamos para construir las herramientas de GNU y probarlas. Si está interesado en crear herramientas para su propio objetivo extraño, pueden ser una buena guía. El procedimiento no varía mucho para los objetivos integrados.

Marc C .. ya que estás en Huntsville, a veces tendremos que reunirnos para almorzar. Nuestra oficina se encuentra aproximadamente frente a Bridge Street. Realmente no llego a conocer muchos usuarios de RTEMS. :(

+0

Muy aclarando su respuesta, @, gracias. Eché un vistazo a la documentación de RTEMS, cuando @Schedler habló de ello (y hasta ese momento no sabía nada de RTEMS). Y a pesar de no tener un puerto completo, me pareció muy interesante usarlo con AVR, incluso con todas las limitaciones. Al menos para fines de aprendizaje. La mayoría de los chips AVR son muy limitados si los comparas con algunas arquitecturas Power PC o SPARC. Desarrollé algunas aplicaciones en Power PC en VxWorks, y simplemente tienen paradigmas de programación totalmente diferentes. – Rego

+0

Pero los usuarios de AVR normalmente están acostumbrados a estas limitaciones, y las aplicaciones que lo usan normalmente no requieren restricciones profundas en tiempo real. En el documento RTEMS Complemento de arquitectura de CPU RTEMS encontré bastante interesantes las características que están disponibles para usar con AVR, así que sugerí a algunos de mis estudiantes de maestría que trabajaran en la posibilidad de implementar algunas características en AVR usando RTEMS como un desafío. – Rego

+0

AVR-Ada es un fantástico proyecto de código abierto, pero ahora no está completo. Y elegiría usar esto si pudiera, porque está implementado de una manera muy intuitiva. El objetivo era implementar un compilador cruzado de Windows de 8 bits para algunos microcontroladores, pero todavía le faltan varias características buenas de Ada, las que son buenas para usar Ada. Por ejemplo, no admite tareas, ni excepciones. Parece que será una nueva versión aún este año, pero desafortunadamente el estado actual de la tecnología no es posible de usar para aplicaciones preventivas. Espero que el próximo lanzamiento solucione esto. – Rego

3

Nos encanta ver el puerto AVR ser más completa! Anime a sus estudiantes a unirse a nuestra lista de correo de desarrollo y hacer preguntas.

RTEMS está en la misma clase de RTOS como VxWorks. Eso le da una rico conjunto de funciones que tiene que ser recortado para adaptarse a las CPU más pequeñas de 8 y (algunos) 16 bits. Nuestro desafío ha sido identificar un perfil de característica "Tiny/RTEMS" para apuntar. RTEMS es realmente muy escalable, pero cuando no lo hace saber qué conjunto de características sería significativo en la CPU de esa clase, no nos deja ningún objetivo concreto. Ayúdenos a definir los requisitos del usuario y un objetivo.

También nos gusta tener un BSP que se ejecuta en un simulador gratuito para cada arquitectura objetivo SimulAVR era lo que estaba usando cuando estaba trabajando activamente en el puerto. AdaCore usó algo llamado avrtest pero era más limitado, útil pero limitado.

+0

Gracias. Sugeriré que se unan a la lista. Supongo que es una buena oportunidad para que aprendan. – Rego

Cuestiones relacionadas