Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ada multitasking RTOS supported with opensource cross-compilers

Which RTOSes do Ada have opensource/free cross-compilers available, with support for multitasking/multithreading?

I have an Atmel AT90USB162 chip which I want to program using Ada. My first option was to use AVR-Ada for programming it, but since it has no tasking support it's out of choice (and at now I don't have any clue on how turning it tasking supported). So I need a stronger approach. I thought about using QNX, but it's far more complex than my chip stands.

I got the info that AVR chip supports uC/OS-II and FreeRTOS. Are there free Ada cross-compilers for FreeRTOS or uC/OS-II?

Thanks.

like image 283
Rego Avatar asked Oct 25 '11 11:10

Rego


2 Answers

RTEMS supports GNAT at least for some architectures. However, since you mentioned Atmel AVR architecture, this is probably not supported due to architectural constraints (available memory mostly). RTEMS is very mature (it was open source before Linux was invented), and has been proven extremely useable in many projects.

Another option is MarteOS, which supports at Ada. However, the support of architectures has been very limited (initially x86 only).

So, depending on your project constraints you most likely have three options:

  1. Stay with AVR, and write your own runtime supporting tasking for Ada;
  2. Re-consider if you really need the run-time support for tasking; or
  3. Upgrade your architecture to one which is supported by an RTOS which supports Ada.

(I have first used RTEMS with GNAT Ada for a proprietary project based on ARM9TDMI core in around 2004-2005.)

like image 155
Schedler Avatar answered Oct 14 '22 16:10

Schedler


I'm one of the original RTEMS developers and been the RTEMS Project lead since it transitioned from an Army research program to a traditional free software project. We try very hard to keep RTEMS as a high quality product with a great community.

The AVR is a quite small target and the RTEMS port is incomplete. Even if the RTEMS port were complete, I do not think there is an AVR with enough address space to support GNAT/RTEMS. GNAT maps each Ada task to a POSIX thread just as on GNU/Linux and the run-time footprint for a "real Ada" environment is large. I recall minimum executables in the 400K code range on a PowerPC. In comparison, the RTEMS minimum C executable is probably in the 32-40k range on that same target.

I am not that familiar with AVR-Ada but I would agree that it is highly unlikely to give you a full Ada environment.

The RTEMS Project has scripts which we use to build the GNU tools and test them. If you are interested in building tools for your own odd target, they can be a good guide. The procedure doesn't vary a lot for embedded targets.

Marc C.. since you are in Huntsville, we will have to get together for lunch sometimes. Our office is roughly across from Bridge Street. I really don't get to meet many RTEMS users. :(

like image 25
Joel Sherrill Avatar answered Oct 14 '22 16:10

Joel Sherrill