comp.lang.ada
 help / color / mirror / Atom feed
From: Patrick <patrick@spellingbeewinnars.org>
Subject: Chicken or the egg. New targets & runtimes
Date: Tue, 15 May 2012 07:05:38 -0700 (PDT)
Date: 2012-05-15T07:05:38-07:00	[thread overview]
Message-ID: <9934369.1060.1337090738467.JavaMail.geo-discussion-forums@yngr17> (raw)



I would like to use Ada for a variety of tasks but the goal that drew me to the language in the first place was firmware hacking. I buy scientific instruments, used, I rebuild them and resell them(mostly to universities). I repair the circuit boards without schematics and it takes a long time. It is only worth it due to the low price defective instrumentation can be purchased at and the high price it can be sold at.

I would like to write firmware for my instruments for three reasons:

One, even if I fail, I will have spent more time learning the circuits and this is not a bad thing. Two, if I succeed then I will be able to control all manner of peripherals without ever having touched a breadboard and this will give me the skills I need to build my own one day. Three if I succeed, I can write my own diagnostic firmware to work in tandem with my logic analyzer and the repairs will go faster.

From the feedback in the thread "understanding runtimes", I now see that Ada+GCC does not work the same way as C+GCC were we get a runtime for each supported target with no extra effort.

mjs mentioned in this thread:
"there are 4 billion ARM chips produced each year, and Ada is an excellent fit for every one of those 4 billion chips"

and I couldn't agree more. It will be an uphill battle the whole way as it really seems that people just go with the flow and use languages for what they are already being used for regardless of their appropriateness for other purposes.

However, if Ada is not supported out-of-the-box like C, then people will never try it and even if this support is there, theyu won't try it unless it's promoted. I am willing to help on all these fronts.

So there is enough bitch'in on the internet, I want to get to work on a solution instead.

Luke already has a cool project:
https://github.com/Lucretia/tamp

and he has help me A LOT. Between his project and:

http://sourceforge.net/projects/arm-ada/

and

http://sourceforge.net/apps/mediawiki/avr-ada/index.php?title=AVR-Ada

and RTOS's that support Ada on various targets like:
http://www.rtems.com/

Maybe I(or we) could build a standard, just supports full, multitasking Ada on bare metal and nothing else, mini OS / Runtime, that everyone could use for ARM development. Once accomplish I(we) could move onto porting as many other targets as possible too.

The problem is I have a lot of catching up to do.

My first issue, is that I don't even understand how Ada gets to a new target.

From what I have read, gnat must be compiled on the target that it needs to create executables for. Assuming gnat was written on X86 to begin with, how did it even get onto a 64 bit system or ARM for that matter?

I know very little about runtimes but would it be such a big deal if the runtime was actually written in C? Could I take existing C runtimes and rework them to support Ada? I really don't have a clue at this point but if someone could point me to some helpful resources, i will try.


I have more courage then brains :)

-Patrick



             reply	other threads:[~2012-05-15 14:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-15 14:05 Patrick [this message]
2012-05-15 14:28 ` Chicken or the egg. New targets & runtimes Dmitry A. Kazakov
2012-05-15 15:04 ` Lucretia
2012-05-15 19:44 ` Rego, P.
2012-05-15 20:24   ` mjsilva
2012-05-15 22:59     ` Britt
2012-05-16 16:39     ` Rego, P.
2012-05-16 18:29       ` Tero Koskinen
2012-05-21 19:51         ` Rego, P.
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox