comp.lang.ada
 help / color / mirror / Atom feed
* Help with embedded hardware/software platform selection for ADA
@ 2013-06-14 15:39 Max Herman
  2013-06-14 17:05 ` Dmitry A. Kazakov
                   ` (5 more replies)
  0 siblings, 6 replies; 65+ messages in thread
From: Max Herman @ 2013-06-14 15:39 UTC (permalink / raw)


Hello, 

I need to pick a platform (basically a micro processor) that will be able to run object code compiled from the ADA source code. I will design a custom board (basically a single board computer) with all required equipment and interfaces. The platform shall be fan-less, support at least 64Mb RAM and 64 Mb Flash, CPU should be at least 400Mhz. OS, or run-time environment should be minimal, and take very little time to boot (1-5 seconds), so Android will most likely not gonna work. 

Based on the research I did, it seemed like Cortex A8/9 series CPU is ideal for such application, plus I have some experience working with them (ASM and C only). 

The problem I ran into: ADA Compiler. I have ADA code that I will need to build, and run on this embedded platform. I did some research, and found that ADACore has press release about bare metal ADA Compiler (now talking to them), and some other project that offer a possibility of doing this, such as Ada_Bare_bones, RTEMSAda, Ada Microkernel. 

Did anyone had any luck in using ADA for Application like this? 
What would be the best hardware platform (x86, ARM, SPARK, etc). 
What would be the best OS/RTE for the application like this?
Are there any off-the-shelf SBC kits that support ADA and backed by manufacturer support?

I'll appreciate any suggestions!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
@ 2013-06-14 17:05 ` Dmitry A. Kazakov
  2013-06-17 15:51   ` Max Herman
  2013-06-14 17:45 ` G.B.
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-06-14 17:05 UTC (permalink / raw)


On Fri, 14 Jun 2013 08:39:33 -0700 (PDT), Max Herman wrote:

> I need to pick a platform (basically a micro processor) that will be able
> to run object code compiled from the ADA source code. I will design a
> custom board (basically a single board computer) with all required
> equipment and interfaces. The platform shall be fan-less, support at least
> 64Mb RAM and 64 Mb Flash, CPU should be at least 400Mhz. OS, or run-time
> environment should be minimal, and take very little time to boot (1-5
> seconds), so Android will most likely not gonna work. 

<5 seconds might be a problem. Linux + RAM disk?
 
> Based on the research I did, it seemed like Cortex A8/9 series CPU is
> ideal for such application, plus I have some experience working with them
> (ASM and C only). 
> 
> The problem I ran into: ADA Compiler. I have ADA code that I will need to
> build, and run on this embedded platform. I did some research, and found
> that ADACore has press release about bare metal ADA Compiler (now talking
> to them), and some other project that offer a possibility of doing this,
> such as Ada_Bare_bones, RTEMSAda, Ada Microkernel. 

I wish I knew the answer. The problem is that Ada for ARM is virtually
non-existent, I mean here full Ada 2005 (+ sockets). So we stick to Atom.
There are newer, smaller Atom-based SBCs. You should probably look there
rather than for ARM, unless bare-board were OK for you.

P.S. Do not forget to ask AdaCore through official channels. They don't
have it, but as long as nobody demands ARM, it won't happen.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
  2013-06-14 17:05 ` Dmitry A. Kazakov
@ 2013-06-14 17:45 ` G.B.
  2013-06-14 20:52   ` Simon Wright
  2013-06-14 20:16 ` RasikaSrinivasan
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 65+ messages in thread
From: G.B. @ 2013-06-14 17:45 UTC (permalink / raw)


On 14.06.13 17:39, Max Herman wrote:

> The problem I ran into: ADA Compiler. I have ADA code that I will need to build, and run on this embedded platform. I did some research, and found that ADACore has press release about bare metal ADA Compiler (now talking to them), and some other project that offer a possibility of doing this, such as Ada_Bare_bones, RTEMSAda, Ada Microkernel.


FWIW, I noticed there are (in some sense of the word "are")
PowerPC based single board computers, for which Irvine might
have a compiler.

AdaCore also offers a full Ada->C compiler since the
merger of SofCheck and AdaCore.



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
  2013-06-14 17:05 ` Dmitry A. Kazakov
  2013-06-14 17:45 ` G.B.
@ 2013-06-14 20:16 ` RasikaSrinivasan
  2013-06-14 20:51   ` Simon Wright
  2013-06-17 16:00   ` Max Herman
  2013-06-17  0:38 ` Luke A. Guest
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 65+ messages in thread
From: RasikaSrinivasan @ 2013-06-14 20:16 UTC (permalink / raw)


Cortex M4 might be a good choice. gnat has been ported I believe. (There is a gnat port to Mindstorm).

Other choices include - AVR.

raspberry pi - has been reported to run gnat apps as well.

hope this helps. srini

On Friday, June 14, 2013 11:39:33 AM UTC-4, Max Herman wrote:
> Hello, 
> 
> 
> 
> I need to pick a platform (basically a micro processor) that will be able to run object code compiled from the ADA source code. I will design a custom board (basically a single board computer) with all required equipment and interfaces. The platform shall be fan-less, support at least 64Mb RAM and 64 Mb Flash, CPU should be at least 400Mhz. OS, or run-time environment should be minimal, and take very little time to boot (1-5 seconds), so Android will most likely not gonna work. 
> 
> 
> 
> Based on the research I did, it seemed like Cortex A8/9 series CPU is ideal for such application, plus I have some experience working with them (ASM and C only). 
> 
> 
> 
> The problem I ran into: ADA Compiler. I have ADA code that I will need to build, and run on this embedded platform. I did some research, and found that ADACore has press release about bare metal ADA Compiler (now talking to them), and some other project that offer a possibility of doing this, such as Ada_Bare_bones, RTEMSAda, Ada Microkernel. 
> 
> 
> 
> Did anyone had any luck in using ADA for Application like this? 
> 
> What would be the best hardware platform (x86, ARM, SPARK, etc). 
> 
> What would be the best OS/RTE for the application like this?
> 
> Are there any off-the-shelf SBC kits that support ADA and backed by manufacturer support?
> 
> 
> 
> I'll appreciate any suggestions!



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 20:16 ` RasikaSrinivasan
@ 2013-06-14 20:51   ` Simon Wright
  2013-06-17 16:00   ` Max Herman
  1 sibling, 0 replies; 65+ messages in thread
From: Simon Wright @ 2013-06-14 20:51 UTC (permalink / raw)


"RasikaSrinivasan@gmail.com" <RasikaSrinivasan@gmail.com> writes:

> raspberry pi - has been reported to run gnat apps as well.

Yes, indeed, but it takes a typical Linux ime to boot.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 17:45 ` G.B.
@ 2013-06-14 20:52   ` Simon Wright
  0 siblings, 0 replies; 65+ messages in thread
From: Simon Wright @ 2013-06-14 20:52 UTC (permalink / raw)


"G.B." <rm-dash-bau-haus@dash.futureapps.de> writes:

> FWIW, I noticed there are (in some sense of the word "are")
> PowerPC based single board computers, for which Irvine might
> have a compiler.

As does AdaCore. Based on VxWorks.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
                   ` (2 preceding siblings ...)
  2013-06-14 20:16 ` RasikaSrinivasan
@ 2013-06-17  0:38 ` Luke A. Guest
  2013-06-17 16:05   ` Max Herman
  2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
  2013-06-17 21:46 ` Help with embedded hardware/software platform selection for ADA Marcus F
  5 siblings, 1 reply; 65+ messages in thread
From: Luke A. Guest @ 2013-06-17  0:38 UTC (permalink / raw)


Max Herman <maxherman@gmail.com> wrote:
> Hello, 
> 
> I need to pick a platform (basically a micro processor) that will be able
> to run object code compiled from the ADA source code. I will design a
> custom board (basically a single board computer) with all required
> equipment and interfaces. The platform shall be fan-less, support at
> least 64Mb RAM and 64 Mb Flash, CPU should be at least 400Mhz. OS, or
> run-time environment should be minimal, and take very little time to boot
> (1-5 seconds), so Android will most likely not gonna work. 
> 
> Based on the research I did, it seemed like Cortex A8/9 series CPU is
> ideal for such application, plus I have some experience working with them
> (ASM and C only). 
> 
> The problem I ran into: ADA Compiler. I have ADA code that I will need to
> build, and run on this embedded platform. I did some research, and found
> that ADACore has press release about bare metal ADA Compiler (now talking
> to them), and some other project that offer a possibility of doing this,
> such as Ada_Bare_bones, RTEMSAda, Ada Microkernel. 
> 
> Did anyone had any luck in using ADA for Application like this? 
> What would be the best hardware platform (x86, ARM, SPARK, etc). 
> What would be the best OS/RTE for the application like this?
> Are there any off-the-shelf SBC kits that support ADA and backed by manufacturer support?
> 
> I'll appreciate any suggestions!

I might've able to help as I've built gnat for arm bare metal. Do you want
to program for this board directly, ie no os?

Luke


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for Ada
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
                   ` (3 preceding siblings ...)
  2013-06-17  0:38 ` Luke A. Guest
@ 2013-06-17  6:55 ` Jacob Sparre Andersen
  2013-06-17 16:15   ` Max Herman
  2013-06-26 23:58   ` Luke A. Guest
  2013-06-17 21:46 ` Help with embedded hardware/software platform selection for ADA Marcus F
  5 siblings, 2 replies; 65+ messages in thread
From: Jacob Sparre Andersen @ 2013-06-17  6:55 UTC (permalink / raw)


Max Herman wrote:

> I need to pick a platform (basically a micro processor) that will be
> able to run object code compiled from the ADA source code. I will
> design a custom board (basically a single board computer) with all
> required equipment and interfaces. The platform shall be fan-less,
> support at least 64Mb RAM and 64 Mb Flash, CPU should be at least
> 400Mhz. OS, or run-time environment should be minimal, and take very
> little time to boot (1-5 seconds), so Android will most likely not
> gonna work.

I am doing some work on a project where we use a Cortex A8 CPU with a
custom Linux kernel on it.  Power-up to user-space takes 3.2 seconds.

We build the whole system - including GNAT and Ada applications - using
Yocto/Bitbake.  There is a Bitbake recipe for GNAT available on GitHub.

If your application has real-time requirements, Linux isn't really a
good choice, and you should look into either a proper RTOS or using an
Ada run-time directly on the board.

Greetings,

Jacob
-- 
"It is a syntax error to write FORTRAN while not wearing a blue tie."


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 17:05 ` Dmitry A. Kazakov
@ 2013-06-17 15:51   ` Max Herman
  2013-06-17 17:12     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: Max Herman @ 2013-06-17 15:51 UTC (permalink / raw)


On Friday, June 14, 2013 1:05:38 PM UTC-4, Dmitry A. Kazakov wrote:
> 
> <5 seconds might be a problem. Linux + RAM disk?

It is doable with highly optimized kernel (disable everything that is not needed). And not much is needed for the application. 

> I wish I knew the answer. The problem is that Ada for ARM is virtually
> non-existent, I mean here full Ada 2005 (+ sockets). So we stick to Atom.
> There are newer, smaller Atom-based SBCs. You should probably look there
> rather than for ARM, unless bare-board were OK for you.

Hm, I totally forgot about Atom. It might be a good idea. Do you use it with Windows/Linux, or some specialized RTE? 

Bare-board is actually preferred, but it seems like it is not possible, since ADA is a higher level language and would require at the very list some kind of RTE/Library to support all the features. 

> P.S. Do not forget to ask AdaCore through official channels. They don't
> have it, but as long as nobody demands ARM, it won't happen.

I did, I submitted a web-form request first - no response. Then I called, and left a message to sales guy - no response. Weird. I will try again :)

Thanks for suggestions!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 20:16 ` RasikaSrinivasan
  2013-06-14 20:51   ` Simon Wright
@ 2013-06-17 16:00   ` Max Herman
  1 sibling, 0 replies; 65+ messages in thread
From: Max Herman @ 2013-06-17 16:00 UTC (permalink / raw)


On Friday, June 14, 2013 4:16:45 PM UTC-4, RasikaSr...@gmail.com wrote:
> Cortex M4 might be a good choice. gnat has been ported I believe. (There is a gnat port to Mindstorm).
> Other choices include - AVR.
> raspberry pi - has been reported to run gnat apps as well.

Yeah, I've found some instruction on building GNAT for 8-bit AVRs and Cortex M4. But these come with build-in flash and RAM. There are some ways to have M4 use external RAM, and Flash. But it's a hassle and even ARM doesn't recommend it. 

I'll look into a RPi ADA support. Thanks!

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-17  0:38 ` Luke A. Guest
@ 2013-06-17 16:05   ` Max Herman
  2013-07-04 16:13     ` Lucretia
  0 siblings, 1 reply; 65+ messages in thread
From: Max Herman @ 2013-06-17 16:05 UTC (permalink / raw)


On Sunday, June 16, 2013 8:38:40 PM UTC-4, Luke A. Guest wrote:

> I might've able to help as I've built gnat for arm bare metal. Do you want
> to program for this board directly, ie no os?

Luke, it'll be great if you can help. No, or minimal OS is preferred, if possible. 

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for Ada
  2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
@ 2013-06-17 16:15   ` Max Herman
  2013-06-26 23:58   ` Luke A. Guest
  1 sibling, 0 replies; 65+ messages in thread
From: Max Herman @ 2013-06-17 16:15 UTC (permalink / raw)


On Monday, June 17, 2013 2:55:51 AM UTC-4, Jacob Sparre Andersen wrote:

> I am doing some work on a project where we use a Cortex A8 CPU with a
> custom Linux kernel on it.  Power-up to user-space takes 3.2 seconds.
> 
> We build the whole system - including GNAT and Ada applications - using
> Yocto/Bitbake.  There is a Bitbake recipe for GNAT available on GitHub.

Jacob, it's a great suggestion. Thanks, I will look into it. 

> If your application has real-time requirements, Linux isn't really a
> good choice, and you should look into either a proper RTOS or using an
> Ada run-time directly on the board.

Yeah, I agree. There are some RT patches, but it looks like they don't guarantee 100% guaranteed response time. Also response time highly depends on CPU peripherals drivers, which in most cases provided by CPU vendors, so coding quality may not be great :/

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-17 15:51   ` Max Herman
@ 2013-06-17 17:12     ` Dmitry A. Kazakov
  0 siblings, 0 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-06-17 17:12 UTC (permalink / raw)


On Mon, 17 Jun 2013 08:51:21 -0700 (PDT), Max Herman wrote:

> Hm, I totally forgot about Atom. It might be a good idea. Do you use it
> with Windows/Linux, or some specialized RTE? 

VxWorks. Linux is planed.
 
> Bare-board is actually preferred, but it seems like it is not possible,
> since ADA is a higher level language and would require at the very list
> some kind of RTE/Library to support all the features. 

Yes, some decent tasking and networking is almost always necessary. Then,
the problem with bare boards is that in 2-5 years you won't be able to buy
it for whatever money. What would you do then? Start it all over again?

Bare boards is not for small and middle sized businesses. They are either
for hobbyists or for large fat companies.

>> P.S. Do not forget to ask AdaCore through official channels. They don't
>> have it, but as long as nobody demands ARM, it won't happen.
> 
> I did, I submitted a web-form request first - no response. Then I called,
> and left a message to sales guy - no response. Weird. I will try again :)

Usually AdaCore sales answer very promptly. Maybe summer vacations are to
blame...

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
                   ` (4 preceding siblings ...)
  2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
@ 2013-06-17 21:46 ` Marcus F
  2013-07-01 18:45   ` mjsilva
  5 siblings, 1 reply; 65+ messages in thread
From: Marcus F @ 2013-06-17 21:46 UTC (permalink / raw)


On Friday, June 14, 2013 10:39:33 AM UTC-5, Max Herman wrote:
> Hello, 
> 
> 
> 
> I need to pick a platform (basically a micro processor) that will be able to run object code compiled from the ADA source code. I will design a custom board (basically a single board computer) with all required equipment and interfaces. The platform shall be fan-less, support at least 64Mb RAM and 64 Mb Flash, CPU should be at least 400Mhz. OS, or run-time environment should be minimal, and take very little time to boot (1-5 seconds), so Android will most likely not gonna work. 
> 
> 
> 
> Based on the research I did, it seemed like Cortex A8/9 series CPU is ideal for such application, plus I have some experience working with them (ASM and C only). 
> 
> 
> 
> The problem I ran into: ADA Compiler. I have ADA code that I will need to build, and run on this embedded platform. I did some research, and found that ADACore has press release about bare metal ADA Compiler (now talking to them), and some other project that offer a possibility of doing this, such as Ada_Bare_bones, RTEMSAda, Ada Microkernel. 
> 
> 
> 
> Did anyone had any luck in using ADA for Application like this? 
> 
> What would be the best hardware platform (x86, ARM, SPARK, etc). 
> 
> What would be the best OS/RTE for the application like this?
> 
> Are there any off-the-shelf SBC kits that support ADA and backed by manufacturer support?
> 
> 
> 
> I'll appreciate any suggestions!

I'm looking around, and I have to ask: Why is it so hard to find information on getting started with embedded ADA?

If I search for "Getting started with C on embedded devices" I find instructions that would have me up and running in no-time, but so far I haven't been able to find any kind of guide, tutorial, or barely even suggestions.

It's not strange that people new to embedded systems are looking to C and other languages, they can easily find information about it and get started quickly.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for Ada
  2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
  2013-06-17 16:15   ` Max Herman
@ 2013-06-26 23:58   ` Luke A. Guest
  1 sibling, 0 replies; 65+ messages in thread
From: Luke A. Guest @ 2013-06-26 23:58 UTC (permalink / raw)


Jacob Sparre Andersen <jacob@jacob-sparre.dk> wrote:

> We build the whole system - including GNAT and Ada applications - using
> Yocto/Bitbake.  There is a Bitbake recipe for GNAT available on GitHub.

Yay me again. Sorry couldn't resist ;)


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-17 21:46 ` Help with embedded hardware/software platform selection for ADA Marcus F
@ 2013-07-01 18:45   ` mjsilva
  2013-07-01 19:32     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: mjsilva @ 2013-07-01 18:45 UTC (permalink / raw)


On Monday, June 17, 2013 2:46:47 PM UTC-7, Marcus F wrote:
> 
> I'm looking around, and I have to ask: Why is it so hard to find information on getting started with embedded ADA?
> 
> 
> 
> If I search for "Getting started with C on embedded devices" I find instructions that would have me up and running in no-time, but so far I haven't been able to find any kind of guide, tutorial, or barely even suggestions.
> 
> 
> 
> It's not strange that people new to embedded systems are looking to C and other languages, they can easily find information about it and get started quickly.

Crazy, isn't it?  I'd love to get bare-board Ada on modern embedded ARM hardware, but it's just not there, and I'm not qualified to make it happen myself.  Nearly 10 billion ARMs sold last year, and no Ada toolset, certainly not for one without deep pockets.  I despair.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-01 18:45   ` mjsilva
@ 2013-07-01 19:32     ` Dmitry A. Kazakov
  2013-07-01 23:35       ` Simon Clubley
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-01 19:32 UTC (permalink / raw)


On Mon, 1 Jul 2013 11:45:20 -0700 (PDT), mjsilva@scriptoriumdesigns.com
wrote:

> Crazy, isn't it?  I'd love to get bare-board Ada on modern embedded ARM
> hardware, but it's just not there, and I'm not qualified to make it happen
> myself.  Nearly 10 billion ARMs sold last year, and no Ada toolset,
> certainly not for one without deep pockets. 

If you ask AdaCore and others customers would do it as well, then maybe
they will do it someday.

> I despair.

Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.

E.g. an ALIX board is under 100 EUR.

   http://www.pcengines.ch/alix.htm
   http://pcengines.ch/pic/alix2b3.jpg

It runs Voyage Linux:

   http://linux.voyage.hk

FSF Debain GNAT works there just fine. Full Ada 2005 with all bells and
whistles, multitasking, GNAT sockets etc. All together fints into less than
600 MB fllash. 256 MB on board RAM is more than necessary.

What else do you need? (:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-01 19:32     ` Dmitry A. Kazakov
@ 2013-07-01 23:35       ` Simon Clubley
  2013-07-02  7:27         ` Georg Bauhaus
                           ` (2 more replies)
  0 siblings, 3 replies; 65+ messages in thread
From: Simon Clubley @ 2013-07-01 23:35 UTC (permalink / raw)


On 2013-07-01, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>
> Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.
>
> E.g. an ALIX board is under 100 EUR.
>
>    http://www.pcengines.ch/alix.htm
>    http://pcengines.ch/pic/alix2b3.jpg
>

That is way, way too big for some embedded environments (for example if
someone wants to drop a board into a model aircraft, ground based robot
or handheld device).

ARM is ideally suited for this market; take a look at the latest Olimex
boards for some examples of ARM board form factors. The ones Olimex have
produced over the last year or so in response to the Raspberry Pi are
rather capable boards.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-01 23:35       ` Simon Clubley
@ 2013-07-02  7:27         ` Georg Bauhaus
  2013-07-02  8:46           ` Dmitry A. Kazakov
  2013-07-02  8:26         ` Dmitry A. Kazakov
  2013-07-02 14:55         ` mjsilva
  2 siblings, 1 reply; 65+ messages in thread
From: Georg Bauhaus @ 2013-07-02  7:27 UTC (permalink / raw)


On 02.07.13 01:35, Simon Clubley wrote:
> On 2013-07-01, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>
>> Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.
>>
>> E.g. an ALIX board is under 100 EUR.
>>
>>     http://www.pcengines.ch/alix.htm
>>     http://pcengines.ch/pic/alix2b3.jpg
>>
>
> That is way, way too big for some embedded environments (for example if
> someone wants to drop a board into a model aircraft, ground based robot
> or handheld device).

Also, rather expensive if you want to connect many small "systems".
Small here means relative to the size of things in our home environment.
And, I guess, these boards need way too much electrical energy to be
drawn from heavy batteries. Precludes mobile system, "mobile systems"
in a more natural sense of moving, or being placed.

Vendors:

I still wonder why not a single vendor sells a Ravenscar run-time
with compiler at a hobbyist price, without support. Have buyers
sign a contract, on paper, if you have reason to assume they might
otherwise use the compiler for non-small, non-hobbyist things.
Leave watermarks in the code. Anything.



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-01 23:35       ` Simon Clubley
  2013-07-02  7:27         ` Georg Bauhaus
@ 2013-07-02  8:26         ` Dmitry A. Kazakov
  2013-07-02 10:44           ` Bill Findlay
  2013-07-02 16:57           ` Simon Clubley
  2013-07-02 14:55         ` mjsilva
  2 siblings, 2 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02  8:26 UTC (permalink / raw)


On Mon, 1 Jul 2013 23:35:54 +0000 (UTC), Simon Clubley wrote:

> On 2013-07-01, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>
>> Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.
>>
>> E.g. an ALIX board is under 100 EUR.
>>
>>    http://www.pcengines.ch/alix.htm
>>    http://pcengines.ch/pic/alix2b3.jpg
> 
> That is way, way too big for some embedded environments (for example if
> someone wants to drop a board into a model aircraft, ground based robot
> or handheld device).

Well, yes and no. Unless it is a hobby project you will also need sensors
and actuators, wireless network, industrial bus and other stuff which is
not small. The motherboard is not always the major contributor to the size
and weight.

If you are ready to pay higher price, there are smaller boards. E.g.

http://us.kontron.com/products/boards+and+mezzanines/embedded+sbc/pitx+25+sbc/pitxsp.html

> ARM is ideally suited for this market; take a look at the latest Olimex
> boards for some examples of ARM board form factors. The ones Olimex have
> produced over the last year or so in response to the Raspberry Pi are
> rather capable boards.

Since there is no Ada for ARM I had no opportunity to evaluate such boards
for our embedded solutions. E.g. how to access GPIO and CAN. How good (bad,
of course) GPIO is etc.

For instance ALIX boards have an AMD companion chip with GPIO. But the
contacts of AI/AO are not soldered!

P.S. If people wrote about ARM to AdaCore sales as frequently they do in
c.l.a. we would have GNAT for ARM.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  7:27         ` Georg Bauhaus
@ 2013-07-02  8:46           ` Dmitry A. Kazakov
  2013-07-02  9:09             ` Georg Bauhaus
                               ` (2 more replies)
  0 siblings, 3 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02  8:46 UTC (permalink / raw)


On Tue, 02 Jul 2013 09:27:40 +0200, Georg Bauhaus wrote:

> On 02.07.13 01:35, Simon Clubley wrote:
>> On 2013-07-01, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>>
>>> Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.
>>>
>>> E.g. an ALIX board is under 100 EUR.
>>>
>>>     http://www.pcengines.ch/alix.htm
>>>     http://pcengines.ch/pic/alix2b3.jpg
>>
>> That is way, way too big for some embedded environments (for example if
>> someone wants to drop a board into a model aircraft, ground based robot
>> or handheld device).
> 
> Also, rather expensive if you want to connect many small "systems".

Well, it is an interesting question. Yes, Atom and Geode are more expensive
than ARM, for whatever reasons. But an industrial board is about 1000 EUR
anyway. The situation is same it was with workstations before PCs broke
through.

> Vendors:
> 
> I still wonder why not a single vendor sells a Ravenscar run-time
> with compiler at a hobbyist price, without support.

Why a hobbyist would even look at Ravenscar?

IMO, a hobbyist if not obsessed with systems programming, wants full Ada
and a "normal" OS. This is quite possible to have today. And this is where
Ada shines, because you can develop and test on a PC and then just
recompile the code for the embedded target without any changes. At least
this is the way we do it.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  8:46           ` Dmitry A. Kazakov
@ 2013-07-02  9:09             ` Georg Bauhaus
  2013-07-02 14:50               ` Shark8
  2013-07-02 15:08             ` mjsilva
  2013-07-02 16:52             ` Simon Clubley
  2 siblings, 1 reply; 65+ messages in thread
From: Georg Bauhaus @ 2013-07-02  9:09 UTC (permalink / raw)


On 02.07.13 10:46, Dmitry A. Kazakov wrote:

>> Vendors:
>>
>> I still wonder why not a single vendor sells a Ravenscar run-time
>> with compiler at a hobbyist price, without support.
>
> Why a hobbyist would even look at Ravenscar?

Doing great things with small things makes programmers proud:

1) People coming from C++ will be proud of having understood
the new concurrency building blocks like std::atomic. Similarly
for Java.

2) People coming from C are proud of having grasped
"small things" like the meaning of "int", or the way CAS
and semaphores will work. And of what *they* can do
with these. And now its in the new C!

3) Small and speedy is way cooooool.

So, ready-made simplicity of full Ada stinks. It is an insult
to those who have mastered the above three notions. It hinders
flexibility, you know.




^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  8:26         ` Dmitry A. Kazakov
@ 2013-07-02 10:44           ` Bill Findlay
  2013-07-02 13:02             ` Dmitry A. Kazakov
  2013-07-02 16:57           ` Simon Clubley
  1 sibling, 1 reply; 65+ messages in thread
From: Bill Findlay @ 2013-07-02 10:44 UTC (permalink / raw)


On 02/07/2013 09:26, in article
1xjmrhqaru3w2$.19h39u551pro1$.dlg@40tude.net, "Dmitry A. Kazakov"
<mailbox@dmitry-kazakov.de> wrote:
 
> Since there is no Ada for ARM ...

That needs qualification, Dmitry.
GNAT is certainly available for ARM under Raspbian
(Debian Wheezy for the Raspberry Pi).

-- 
Bill Findlay
with blueyonder.co.uk;
use  surname & forename;




^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 10:44           ` Bill Findlay
@ 2013-07-02 13:02             ` Dmitry A. Kazakov
  2013-07-02 13:59               ` Bill Findlay
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 13:02 UTC (permalink / raw)


On Tue, 02 Jul 2013 11:44:58 +0100, Bill Findlay wrote:

> On 02/07/2013 09:26, in article
> 1xjmrhqaru3w2$.19h39u551pro1$.dlg@40tude.net, "Dmitry A. Kazakov"
> <mailbox@dmitry-kazakov.de> wrote:
>  
>> Since there is no Ada for ARM ...
> 
> That needs qualification, Dmitry.
> GNAT is certainly available for ARM under Raspbian
> (Debian Wheezy for the Raspberry Pi).

I didn't know, interesting, though pretty much useless, I guess. What is
actually needed is libgnat + cross compiler hosted at x86 Linux or Windows.
Did anybody try to setup something like that?

On the second thought, there seem to exist Raspberry Pi Emulators:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=41&t=2961
http://cubik-tech.blogspot.de/2013/02/raspberry-pi-emulation-on-windows.html
http://ediy.com.my/index.php/blog/item/52-virtualbox-raspberry-pi-emulator

Provided the virtual machine memory set to 1-2GB one could try to use the
native ARM compiler there. Did anybody tried that?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 13:02             ` Dmitry A. Kazakov
@ 2013-07-02 13:59               ` Bill Findlay
  2013-07-02 14:41                 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: Bill Findlay @ 2013-07-02 13:59 UTC (permalink / raw)


On 02/07/2013 14:02, in article 17nisiivtnz9r.190krltf7ol64$.dlg@40tude.net,
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:

> On Tue, 02 Jul 2013 11:44:58 +0100, Bill Findlay wrote:
> 
>> On 02/07/2013 09:26, in article
>> 1xjmrhqaru3w2$.19h39u551pro1$.dlg@40tude.net, "Dmitry A. Kazakov"
>> <mailbox@dmitry-kazakov.de> wrote:
>>  
>>> Since there is no Ada for ARM ...
>> 
>> That needs qualification, Dmitry.
>> GNAT is certainly available for ARM under Raspbian
>> (Debian Wheezy for the Raspberry Pi).
> 
> I didn't know, interesting, though pretty much useless, I guess.

Well it is not useless to me, as my KDF9 emulator, compiled on an Rpi, now
runs in a web service hosted by an RPi.

> On the second thought, there seem to exist Raspberry Pi Emulators:
> 
> http://www.raspberrypi.org/phpBB3/viewtopic.php?f=41&t=2961
> http://cubik-tech.blogspot.de/2013/02/raspberry-pi-emulation-on-windows.html
> http://ediy.com.my/index.php/blog/item/52-virtualbox-raspberry-pi-emulator
> 
> Provided the virtual machine memory set to 1-2GB one could try to use the
> native ARM compiler there. Did anybody tried that?

I have no knowledge of that.

-- 
Bill Findlay
with blueyonder.co.uk;
use  surname & forename;


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 13:59               ` Bill Findlay
@ 2013-07-02 14:41                 ` Dmitry A. Kazakov
  2013-07-02 16:45                   ` Simon Clubley
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 14:41 UTC (permalink / raw)


On Tue, 02 Jul 2013 14:59:37 +0100, Bill Findlay wrote:

> On 02/07/2013 14:02, in article 17nisiivtnz9r.190krltf7ol64$.dlg@40tude.net,
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:
> 
>> I didn't know, interesting, though pretty much useless, I guess.
> 
> Well it is not useless to me, as my KDF9 emulator, compiled on an Rpi, now
> runs in a web service hosted by an RPi.

Our embedded projects need more than 2GB RAM to compile with GNAT. Even if
the compiler would not crash on Storage_Error, a native tool chain for a
tiny embedded target is not the way people would like to have it.

There is no such problem when using Atom or Geode (and Linux). But for ARM
(or an OS different from the host OS, like VxWorks) one needs a cross
compiler.

Which is why Atom and Geode have a huge potential for embedded Ada, IMO.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  9:09             ` Georg Bauhaus
@ 2013-07-02 14:50               ` Shark8
  0 siblings, 0 replies; 65+ messages in thread
From: Shark8 @ 2013-07-02 14:50 UTC (permalink / raw)


On Tuesday, July 2, 2013 3:09:20 AM UTC-6, Georg Bauhaus wrote:
> 
> Doing great things with small things makes programmers proud:

Granted.

> 
> 1) People coming from C++ will be proud of having understood
> the new concurrency building blocks like std::atomic. Similarly
> for Java.
> 
> 2) People coming from C are proud of having grasped
> "small things" like the meaning of "int", or the way CAS
> and semaphores will work. And of what *they* can do
> with these. And now its in the new C!
> 
> 3) Small and speedy is way cooooool.
> So, ready-made simplicity of full Ada stinks. It is an insult
> to those who have mastered the above three notions. It hinders
> flexibility, you know.

Such people are fools. It is the same mentality that makes them think that they are better at catching range-errors [i.e. what we would use subtypes for] than the compiler.

See section 6 of the following paper: http://ironsides.martincarlisle.com/ICRST2013.pdf

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-01 23:35       ` Simon Clubley
  2013-07-02  7:27         ` Georg Bauhaus
  2013-07-02  8:26         ` Dmitry A. Kazakov
@ 2013-07-02 14:55         ` mjsilva
  2013-07-02 15:20           ` Dmitry A. Kazakov
  2 siblings, 1 reply; 65+ messages in thread
From: mjsilva @ 2013-07-02 14:55 UTC (permalink / raw)


On Monday, July 1, 2013 4:35:54 PM UTC-7, Simon Clubley wrote:
> On 2013-07-01, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> 
> >
> 
> > Don't be. Meanwhile, there are plenty of Intel Atom and AMD Geode SBCs.
> 
> >
> 
> > E.g. an ALIX board is under 100 EUR.
> 
> >
> 
> >    http://www.pcengines.ch/alix.htm
> 
> >    http://pcengines.ch/pic/alix2b3.jpg
> 
> >
> 
> 
> 
> That is way, way too big for some embedded environments (for example if
> 
> someone wants to drop a board into a model aircraft, ground based robot
> 
> or handheld device).
> 
> 
> 
> ARM is ideally suited for this market; take a look at the latest Olimex
> 
> boards for some examples of ARM board form factors. The ones Olimex have
> 
> produced over the last year or so in response to the Raspberry Pi are
> 
> rather capable boards.
> 
> 
> 
> Simon.

Exactly.  There are countless applications for these "low-end" ARMS, which have 8kb-1Mb of Flash, and 2kb-128kb of RAM.  This is the universe I work in, and it's a big and active universe, and I can't use Ada even though I know it's a much better tool than C or C++.  And that's why I was anxiously hoping that the Cortex M3 GNAT release would become available at the libre site, but it's not.  Ada can't compete where it doesn't even show up.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  8:46           ` Dmitry A. Kazakov
  2013-07-02  9:09             ` Georg Bauhaus
@ 2013-07-02 15:08             ` mjsilva
  2013-07-02 16:53               ` Robert A Duff
  2013-07-02 22:47               ` Randy Brukardt
  2013-07-02 16:52             ` Simon Clubley
  2 siblings, 2 replies; 65+ messages in thread
From: mjsilva @ 2013-07-02 15:08 UTC (permalink / raw)


On Tuesday, July 2, 2013 1:46:24 AM UTC-7, Dmitry A. Kazakov wrote:
> On Tue, 02 Jul 2013 09:27:40 +0200, Georg Bauhaus wrote:
 
> > Vendors:
> 
> > 
> 
> > I still wonder why not a single vendor sells a Ravenscar run-time
> 
> > with compiler at a hobbyist price, without support.
> 
> 
> 
> Why a hobbyist would even look at Ravenscar?
> 
Because it provides the simple multitasking that a great many projects can benefit from.  And don't get hung up on the "hobbyist" part.  May hobbyists also work in software and hardware, and some of them would surely push for Ada in the workplace if they could only actually use it and demonstrate it.  People will never buy full-priced Ada toolsets if they can't first try it out, and they can't try it out if it's not a download click away.
> 
> 
> IMO, a hobbyist if not obsessed with systems programming, wants full Ada
> 
> and a "normal" OS. This is quite possible to have today. And this is where
> 
> Ada shines, because you can develop and test on a PC and then just
> 
> recompile the code for the embedded target without any changes. At least
> 
> this is the way we do it.

There's a whole world "below" the one you describe, where programs are just a main loop and interrupts, or simple multitasking with a minimal RTOS.  Those applications are at the bottom of the pyramid, but the bottom of the pyramid is also the fattest part of the pyramid.  Ada with Ravenscar would thrive there, if it were only easily and cheaply available.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 14:55         ` mjsilva
@ 2013-07-02 15:20           ` Dmitry A. Kazakov
  2013-07-02 15:58             ` mjsilva
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 15:20 UTC (permalink / raw)


On Tue, 2 Jul 2013 07:55:27 -0700 (PDT), mjsilva@scriptoriumdesigns.com
wrote:

> There are countless applications for these "low-end" ARMS, which
> have 8kb-1Mb of Flash, and 2kb-128kb of RAM.  This is the universe I work
> in, and it's a big and active universe, and I can't use Ada even though I
> know it's a much better tool than C or C++.

Hold on. But this is the segment for which AdaCore has something:

   http://www.adacore.com/press/gnat-pro-safety-critical-for-arm/

Isn't it what you are looking for?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 15:20           ` Dmitry A. Kazakov
@ 2013-07-02 15:58             ` mjsilva
  2013-07-02 16:58               ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: mjsilva @ 2013-07-02 15:58 UTC (permalink / raw)


On Tuesday, July 2, 2013 8:20:38 AM UTC-7, Dmitry A. Kazakov wrote:
> On Tue, 2 Jul 2013 07:55:27 -0700 (PDT), mjsilva@scriptoriumdesigns.com
> 
> wrote:
> 
> 
> 
> > There are countless applications for these "low-end" ARMS, which
> 
> > have 8kb-1Mb of Flash, and 2kb-128kb of RAM.  This is the universe I work
> 
> > in, and it's a big and active universe, and I can't use Ada even though I
> 
> > know it's a much better tool than C or C++.
> 
> 
> 
> Hold on. But this is the segment for which AdaCore has something:
> 
> 
> 
>    http://www.adacore.com/press/gnat-pro-safety-critical-for-arm/
> 
> 
> 
> Isn't it what you are looking for?

Yes, which is why I waited with great anticipation for the 2013 release downloads, but it (ARM Cortex) is not available.  It is nowhere on the AdaCore website other than that press release, AFAIK.  It doesn't seem to be an actual product yet.  If it shows up on libre sometime soon, I shall be a very happy camper (and will almost certainly send some business AdaCore's way in the bargain).

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 14:41                 ` Dmitry A. Kazakov
@ 2013-07-02 16:45                   ` Simon Clubley
  2013-07-02 17:40                     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: Simon Clubley @ 2013-07-02 16:45 UTC (permalink / raw)


On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>
> Our embedded projects need more than 2GB RAM to compile with GNAT. Even if
> the compiler would not crash on Storage_Error, a native tool chain for a
> tiny embedded target is not the way people would like to have it.
>
> There is no such problem when using Atom or Geode (and Linux). But for ARM
> (or an OS different from the host OS, like VxWorks) one needs a cross
> compiler.
>
> Which is why Atom and Geode have a huge potential for embedded Ada, IMO.
>

It's not clear what you are saying here Dmitry. Are you implying that
Ada can only have a huge potential if the code is run in the same native
environment on the target as was used to develop the code on the host ?

If so, you should be aware that a major hobbyist platform, Arduino,
which is a AVR based platform, works using cross compiled toolchains
and nobody in the hobbyist world seems to have a problem with that.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  8:46           ` Dmitry A. Kazakov
  2013-07-02  9:09             ` Georg Bauhaus
  2013-07-02 15:08             ` mjsilva
@ 2013-07-02 16:52             ` Simon Clubley
  2013-07-02 17:27               ` Dmitry A. Kazakov
  2 siblings, 1 reply; 65+ messages in thread
From: Simon Clubley @ 2013-07-02 16:52 UTC (permalink / raw)


On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Tue, 02 Jul 2013 09:27:40 +0200, Georg Bauhaus wrote:
>> 
>> I still wonder why not a single vendor sells a Ravenscar run-time
>> with compiler at a hobbyist price, without support.
>
> Why a hobbyist would even look at Ravenscar?
>
> IMO, a hobbyist if not obsessed with systems programming, wants full Ada
> and a "normal" OS. This is quite possible to have today. And this is where
> Ada shines, because you can develop and test on a PC and then just
> recompile the code for the embedded target without any changes. At least
> this is the way we do it.
>

It's not just systems programming, but hard realtime programming.

If you are using a "normal" OS, can I assume you don't have a hard
real-time requirement (at least within the Ada code itself) ?

A number of the project areas which interest hobbyists have a realtime
component to them and a number of those have a hard realtime component.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 15:08             ` mjsilva
@ 2013-07-02 16:53               ` Robert A Duff
  2013-07-02 22:47               ` Randy Brukardt
  1 sibling, 0 replies; 65+ messages in thread
From: Robert A Duff @ 2013-07-02 16:53 UTC (permalink / raw)


mjsilva@scriptoriumdesigns.com writes:

>...  People will never buy full-priced Ada toolsets if they can't first
>try it out, and they can't try it out if it's not a download click
>away.

Ask sales@adacore.com for an evaluation copy, with full support.

- Bob

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02  8:26         ` Dmitry A. Kazakov
  2013-07-02 10:44           ` Bill Findlay
@ 2013-07-02 16:57           ` Simon Clubley
  2013-07-02 17:44             ` Dmitry A. Kazakov
  1 sibling, 1 reply; 65+ messages in thread
From: Simon Clubley @ 2013-07-02 16:57 UTC (permalink / raw)


On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>
> Since there is no Ada for ARM I had no opportunity to evaluate such boards
> for our embedded solutions. E.g. how to access GPIO and CAN. How good (bad,
> of course) GPIO is etc.
>

It's Ada for bare metal ARM that's the real problem but I should point
out that Ada for ARM is available if you are prepared to run it under
RTEMS and hence are willing to write a BSP for RTEMS if your platform
is not already supported.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 15:58             ` mjsilva
@ 2013-07-02 16:58               ` Dmitry A. Kazakov
  0 siblings, 0 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 16:58 UTC (permalink / raw)


On Tue, 2 Jul 2013 08:58:43 -0700 (PDT), mjsilva@scriptoriumdesigns.com
wrote:

> Yes, which is why I waited with great anticipation for the 2013 release
> downloads, but it (ARM Cortex) is not available.

Why? I would rather expect the same policy they have for VxWorks products.

> It is nowhere on the
> AdaCore website other than that press release, AFAIK.  It doesn't seem to
> be an actual product yet.  If it shows up on libre sometime soon, I shall
> be a very happy camper (and will almost certainly send some business
> AdaCore's way in the bargain).

Why not to ask them directly? If nobody does the history of JGNAT may
repeat once again.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 16:52             ` Simon Clubley
@ 2013-07-02 17:27               ` Dmitry A. Kazakov
  2013-07-02 19:29                 ` Simon Clubley
  2013-07-02 22:21                 ` mjsilva
  0 siblings, 2 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 17:27 UTC (permalink / raw)


On Tue, 2 Jul 2013 16:52:59 +0000 (UTC), Simon Clubley wrote:

> On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Tue, 02 Jul 2013 09:27:40 +0200, Georg Bauhaus wrote:
>>> 
>>> I still wonder why not a single vendor sells a Ravenscar run-time
>>> with compiler at a hobbyist price, without support.
>>
>> Why a hobbyist would even look at Ravenscar?
>>
>> IMO, a hobbyist if not obsessed with systems programming, wants full Ada
>> and a "normal" OS. This is quite possible to have today. And this is where
>> Ada shines, because you can develop and test on a PC and then just
>> recompile the code for the embedded target without any changes. At least
>> this is the way we do it.
> 
> It's not just systems programming, but hard realtime programming.
> 
> If you are using a "normal" OS, can I assume you don't have a hard
> real-time requirement (at least within the Ada code itself) ?

Hard realtime is to a great extent a fiction. If your system becomes
fragile upon us jitter there should be something wrong with the
architecture.

Otherwise there is no problem to have a 100us control loop under a "normal"
OS like Linux or VxWorks. Even under Windows you can have stable 5ms
(Windows has timer resolution issues, performance is basically OK).

We do some control under normal Windows using I/O terminals connected
through normal networks, e.g. ModBus over TCP/IP. Of course, we could not
certify such a system, but we don't care. A hobbyist would care even less.

> A number of the project areas which interest hobbyists have a realtime
> component to them and a number of those have a hard realtime component.

Unless you are dealing with burning processes (a bomb? (:-)) you do not
need cycles tighter than 1ms. And jitter is not an issue anyway.
Furthermore, a good AD/DA converter is not quicker than 40us. Which adds
80us to the loop no matter what. Don't tell me that the GPIO ARM has is
anywhere close to this. So 100us would be the theoretical minimum.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 16:45                   ` Simon Clubley
@ 2013-07-02 17:40                     ` Dmitry A. Kazakov
  0 siblings, 0 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 17:40 UTC (permalink / raw)


On Tue, 2 Jul 2013 16:45:54 +0000 (UTC), Simon Clubley wrote:

> On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>
>> Our embedded projects need more than 2GB RAM to compile with GNAT. Even if
>> the compiler would not crash on Storage_Error, a native tool chain for a
>> tiny embedded target is not the way people would like to have it.
>>
>> There is no such problem when using Atom or Geode (and Linux). But for ARM
>> (or an OS different from the host OS, like VxWorks) one needs a cross
>> compiler.
>>
>> Which is why Atom and Geode have a huge potential for embedded Ada, IMO.
> 
> It's not clear what you are saying here Dmitry. Are you implying that
> Ada can only have a huge potential if the code is run in the same native
> environment on the target as was used to develop the code on the host ?

I meant specifically native GNAT for Raspberry PI.

> If so, you should be aware that a major hobbyist platform, Arduino,
> which is a AVR based platform, works using cross compiled toolchains
> and nobody in the hobbyist world seems to have a problem with that.

GNAT Ada 2005 targeted to some ARM Linux/VxWorks hosted on x86 would be
just fine.

Still having target and host of same architecture is a great advantage. If
Intel and/or AMD took embedded/mobile seriously, and it seems that they are
slowly waking up, they could easily trump ARM.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 16:57           ` Simon Clubley
@ 2013-07-02 17:44             ` Dmitry A. Kazakov
  0 siblings, 0 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 17:44 UTC (permalink / raw)


On Tue, 2 Jul 2013 16:57:28 +0000 (UTC), Simon Clubley wrote:

> On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>
>> Since there is no Ada for ARM I had no opportunity to evaluate such boards
>> for our embedded solutions. E.g. how to access GPIO and CAN. How good (bad,
>> of course) GPIO is etc.
> 
> It's Ada for bare metal ARM that's the real problem but I should point
> out that Ada for ARM is available if you are prepared to run it under
> RTEMS and hence are willing to write a BSP for RTEMS if your platform
> is not already supported.

We need full Ada 2005, multitasking, exceptions, tagged types, GNAT
sockets, raw sockets, RT clock.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 17:27               ` Dmitry A. Kazakov
@ 2013-07-02 19:29                 ` Simon Clubley
  2013-07-02 20:21                   ` Dmitry A. Kazakov
  2013-07-02 22:21                 ` mjsilva
  1 sibling, 1 reply; 65+ messages in thread
From: Simon Clubley @ 2013-07-02 19:29 UTC (permalink / raw)


On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Tue, 2 Jul 2013 16:52:59 +0000 (UTC), Simon Clubley wrote:
>> 
>> It's not just systems programming, but hard realtime programming.
>> 
>> If you are using a "normal" OS, can I assume you don't have a hard
>> real-time requirement (at least within the Ada code itself) ?
>
> Hard realtime is to a great extent a fiction. If your system becomes
> fragile upon us jitter there should be something wrong with the
> architecture.
>

[snip]

>
>> A number of the project areas which interest hobbyists have a realtime
>> component to them and a number of those have a hard realtime component.
>
> Unless you are dealing with burning processes (a bomb? (:-)) you do not
> need cycles tighter than 1ms. And jitter is not an issue anyway.
> Furthermore, a good AD/DA converter is not quicker than 40us. Which adds
> 80us to the loop no matter what. Don't tell me that the GPIO ARM has is
> anywhere close to this. So 100us would be the theoretical minimum.
>

I don't understand why you think the only way to get data into a board
is via a A/D converter. Much of the I/O in the hobbyist world and elsewhere
is pure digital; even when you connect devices such as gyros and compasses
they tend to have a digital interface these days; SPI is a common interface.

The problem is that there's the world you occupy when designing something
for a safety critical production environment with it's set of requirements
and there's the world the hobbyists occupy which has a different set of
tradeoffs.

If you want to attract hobbyists to Ada, you need to do it in ways they
can relate to. One of the things common in the hobbyist world is to use
low cost components and to implement functionality in software. In a
production environment, you would just buy a more expensive widget and
not spend time (which you are paying for) writing software making the
cheaper widget do the job of the more expensive widget.

I'm a professional commercial programmer by day, but my embedded work is
just a hobby and I pay for the cost of the components out of my own pocket.
If I can buy a much cheaper widget and spend time writing software to make
it more capable then I am probably going to do that. Besides, it's usually
a fun project.

One example: I needed a low rate (a few hundred bytes/second) full duplex
RF interface operating in the 433MHz band for some hobbyist projects.
Rather than just buy a expensive full duplex radio, what I did was to
buy a couple of cheap half duplex Radiometrix transceiver modules and then
build a couple of AVR based circuits around them which turned the half
duplex modules into a pseudo full duplex device. (The AVRs synchronise
the timeslots between themselves automatically.)

The software on those AVRs (written in C, not Ada; sorry :-)) generates
about 10,000 interrupts per second generating and sampling the bitstream
for the transceivers. So yes, I _do_ need <1ms :-) and I need all of the
interrupts to be on time or the packet will be corrupted during transmission
or reception.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 19:29                 ` Simon Clubley
@ 2013-07-02 20:21                   ` Dmitry A. Kazakov
  2013-07-03 12:08                     ` Simon Clubley
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-02 20:21 UTC (permalink / raw)


On Tue, 2 Jul 2013 19:29:52 +0000 (UTC), Simon Clubley wrote:

> I don't understand why you think the only way to get data into a board
> is via a A/D converter.

Because digital stuff is better to handle by dedicated hardware. This is
why I wrote that if you are using main CPU for the purpose of making a
signal generator or an incremental encoder or what you wrote below, it is
an architectural problem.

[...]

> The software on those AVRs (written in C, not Ada; sorry :-)) generates
> about 10,000 interrupts per second generating and sampling the bitstream
> for the transceivers. So yes, I _do_ need <1ms :-) and I need all of the
> interrupts to be on time or the packet will be corrupted during transmission
> or reception.

See above. I understand that hobby projects may do things one would never
do otherwise. But I doubt that there might be serious demand of such stuff. 

Imaging myself a hobbyist I would rather buy something like a small robot
with a decent CPU running Linux with WiFi, actuators, cameras etc, and only
if there is Ada 2005 available. 

Why didn't you take an RF TV remote receiver? It has USB/COM interface and
is fairly simple to use. We deployed such stuff in some projects.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 17:27               ` Dmitry A. Kazakov
  2013-07-02 19:29                 ` Simon Clubley
@ 2013-07-02 22:21                 ` mjsilva
  2013-07-03  7:18                   ` Dmitry A. Kazakov
  1 sibling, 1 reply; 65+ messages in thread
From: mjsilva @ 2013-07-02 22:21 UTC (permalink / raw)


On Tuesday, July 2, 2013 10:27:08 AM UTC-7, Dmitry A. Kazakov wrote:
 
> ...Otherwise there is no problem to have a 100us control loop under a "normal"
> 
> OS like Linux or VxWorks. Even under Windows you can have stable 5ms
> 
> (Windows has timer resolution issues, performance is basically OK).
> 
I'm still trying to convey that what both Simon and I are talking about are boards 10-100 times less expensive than ones that can run those OSes, using micros that cost as little as a dollar or two.  The fat part of the pyramid, as I said earlier.  Here are two examples off the top of my head (both found in many commercial products, not just hobby projects):

(a) Electronic speed controls (ESCs).  They drive brushless DC motors at many thousands of RPM, adjusting the 3-phase PWM and reading back-EMF during coasting periods.  Rather average specs would be a 50us PWM window, including an ADC read, all using a micro that costs well under $1.

(b) RGB LED control.  Controllable RGB LEDs require data at a rate of 800kbps over a single clock/data line, daisy chained up to 1000 LEDs per controller.  Again, using a micro in the 1-2 dollar range.

I could add to this list of examples indefinitely, without coming anywhere near your Windows/Linux/VxWorks world.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 15:08             ` mjsilva
  2013-07-02 16:53               ` Robert A Duff
@ 2013-07-02 22:47               ` Randy Brukardt
  2013-07-03  0:22                 ` Luke A. Guest
  2013-07-03  1:01                 ` mjsilva
  1 sibling, 2 replies; 65+ messages in thread
From: Randy Brukardt @ 2013-07-02 22:47 UTC (permalink / raw)


<mjsilva@scriptoriumdesigns.com> wrote in message 
news:d39ad66d-63a3-43e8-a8ae-3c799c12512e@googlegroups.com...
...
>> Why a hobbyist would even look at Ravenscar?
>>
>Because it provides the simple multitasking that a great many projects can 
>benefit from.

That's true only if you think hobbyists want a lot a frustration. That's 
because Ravenscar makes it impossible to build resilient systems - the lack 
of a entry call with timeout means that any error or failure will cause a 
deadlock. If you are going to use fancy proof tools to *prove* that there 
are no errors or deadlock possibilities, then this is OK (and that's what 
Ravenscar is for), but hobbyists are unlikely to have access to such tools. 
(Heck, *I* have no access to such tools - I'm not even sure if they really 
exist.)

Even if you don't have a sensible recovery action, the timeout can raise an 
exception pinpointing where the deadlock happened -- which greatly eases 
debugging. (I don't think Claw would have been usable without that, as it is 
way too easy to unintentially cause a deadlock by doing the wrong thing in 
an action handler.)

So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very 
specialized circumstances (typically, some sort of certification 
requirement). Otherwise, one ought to forget about it and use Ada as it was 
intended.

                                                  Randy.







^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 22:47               ` Randy Brukardt
@ 2013-07-03  0:22                 ` Luke A. Guest
  2013-07-03 19:13                   ` Randy Brukardt
  2013-07-03  1:01                 ` mjsilva
  1 sibling, 1 reply; 65+ messages in thread
From: Luke A. Guest @ 2013-07-03  0:22 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:
> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very 
> specialized circumstances (typically, some sort of certification 
> requirement). Otherwise, one ought to forget about it and use Ada as it was 
> intended.

The point of this thread is this, you can't use stock GNAT rts with these
small boards, it has to be custom and is something I'm working on.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 22:47               ` Randy Brukardt
  2013-07-03  0:22                 ` Luke A. Guest
@ 2013-07-03  1:01                 ` mjsilva
  2013-07-03  2:41                   ` Luke A. Guest
  1 sibling, 1 reply; 65+ messages in thread
From: mjsilva @ 2013-07-03  1:01 UTC (permalink / raw)


On Tuesday, July 2, 2013 3:47:17 PM UTC-7, Randy Brukardt wrote:
> <mjsilva@scriptoriumdesigns.com> wrote in message 
> 
> news:d39ad66d-63a3-43e8-a8ae-3c799c12512e@googlegroups.com...
> 
> ...
> 
> >> Why a hobbyist would even look at Ravenscar?
> 
> >>
> 
> >Because it provides the simple multitasking that a great many projects can 
> 
> >benefit from.
> 
> 
> 
> That's true only if you think hobbyists want a lot a frustration. That's 
> 
> because Ravenscar makes it impossible to build resilient systems - the lack 
> 
> of a entry call with timeout means that any error or failure will cause a 
> 
> deadlock. If you are going to use fancy proof tools to *prove* that there 
> 
> are no errors or deadlock possibilities, then this is OK (and that's what 
> 
> Ravenscar is for), but hobbyists are unlikely to have access to such tools. 
> 
> (Heck, *I* have no access to such tools - I'm not even sure if they really 
> 
> exist.)
> 
> 
> 
> Even if you don't have a sensible recovery action, the timeout can raise an 
> 
> exception pinpointing where the deadlock happened -- which greatly eases 
> 
> debugging. (I don't think Claw would have been usable without that, as it is 
> 
> way too easy to unintentially cause a deadlock by doing the wrong thing in 
> 
> an action handler.)
> 
> 
> 
> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very 
> 
> specialized circumstances (typically, some sort of certification 
> 
> requirement). Otherwise, one ought to forget about it and use Ada as it was 
> 
> intended.

Interesting point.  I understood the "why Ravenscar" to mean "why any tasking, even if limited?" which may have been a misunderstanding on my part.  Of course I'd like to get as much Ada tasking on bare metal as possible, but I'd willing to give up having the whole package to get something useable that will fit on smaller hardware.  I'd be willing to settle for some tasking sweet spot as regards code size vs tasking features.  That was the point of my reply.  

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  1:01                 ` mjsilva
@ 2013-07-03  2:41                   ` Luke A. Guest
  2013-07-03  7:17                     ` Shark8
  0 siblings, 1 reply; 65+ messages in thread
From: Luke A. Guest @ 2013-07-03  2:41 UTC (permalink / raw)


<mjsilva@scriptoriumdesigns.com> wrote:

>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very 
>> 
>> specialized circumstances (typically, some sort of certification 
>> 
>> requirement). Otherwise, one ought to forget about it and use Ada as it was 
>> 
>> intended.
> 
> Interesting point.  I understood the "why Ravenscar" to mean "why any
> tasking, even if limited?" which may have been a misunderstanding on my
> part.  Of course I'd like to get as much Ada tasking on bare metal as
> possible, but I'd willing to give up having the whole package to get
> something useable that will fit on smaller hardware.  I'd be willing to
> settle for some tasking sweet spot as regards code size vs tasking
> features.  That was the point of my reply.

The biggest problem will be lack of a secondary stack, a tiny one can be
implemented, but is it worth it? Maybe.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  2:41                   ` Luke A. Guest
@ 2013-07-03  7:17                     ` Shark8
  0 siblings, 0 replies; 65+ messages in thread
From: Shark8 @ 2013-07-03  7:17 UTC (permalink / raw)


On Tuesday, July 2, 2013 8:41:06 PM UTC-6, Luke A. Guest wrote:
> 
> The biggest problem will be lack of a secondary stack, a tiny one can be
> implemented, but is it worth it? Maybe.

I've been reading a bit on FORTH the past few weeks, and was wondering if it would be suitable for writing the Ada runtime in -- given that it's a stack-based language that has words* defined in a dictionary it might work fairly well for implementing these second-stack requiring operations.


* since a word is either a list of more words or some chunk of machine code; the system could be built so that porting would require only a change of some base words (call it an assembly abstraction layer, if you will).

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 22:21                 ` mjsilva
@ 2013-07-03  7:18                   ` Dmitry A. Kazakov
  2013-07-03  8:03                     ` Georg Bauhaus
  2013-07-03 14:50                     ` mjsilva
  0 siblings, 2 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-03  7:18 UTC (permalink / raw)


On Tue, 2 Jul 2013 15:21:06 -0700 (PDT), mjsilva@scriptoriumdesigns.com
wrote:

> I could add to this list of examples indefinitely, without coming anywhere
> near your Windows/Linux/VxWorks world.

Sure, like doing physical layer of Ethernet using digital inputs and
outputs. The only question is why anybody would like to?

Anyway if you want this, why don't you use some Ada to C compiler?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  7:18                   ` Dmitry A. Kazakov
@ 2013-07-03  8:03                     ` Georg Bauhaus
  2013-07-03 11:11                       ` Dmitry A. Kazakov
  2013-07-03 14:50                     ` mjsilva
  1 sibling, 1 reply; 65+ messages in thread
From: Georg Bauhaus @ 2013-07-03  8:03 UTC (permalink / raw)


On 03.07.13 09:18, Dmitry A. Kazakov wrote:
> On Tue, 2 Jul 2013 15:21:06 -0700 (PDT), mjsilva@scriptoriumdesigns.com
> wrote:
>
>> I could add to this list of examples indefinitely, without coming anywhere
>> near your Windows/Linux/VxWorks world.
>
> Sure, like doing physical layer of Ethernet using digital inputs and
> outputs. The only question is why anybody would like to?

Rather, the question is, what *are* these programmers actually
*doing*, and *buying*?

For just one example of the sizes of things (and markets), have
you seen the Anki Drive demo? That's AI which steers model racing
cars that are slightly above the size of a matchbox. In Anki's
Facebook presence, they talk a little about their technology,

"Using cutting edge sensors and powerful
algorithms, each car in Drive knows where it is."

Now imagine more cars, faster movements, improved precision
of motion ... they won't be mounting a $$$, 6" x 6" board on
the roofs of cars not half this size, will they? Now take
that to the hobbyist level, or even the low cost commercial
level.

Another fashionable product, which is currently pricey, is
LED light bulb control. Is an Arduino with ham radio attached
to every bulb even reasonable?


> Anyway if you want this, why don't you use some Ada to C compiler?

AdaCore's (formerly SofCheck's) requires a C (or C++) runtime,
and builds a runtime for Ada on top of it, IIUC. So this doesn't
change the picture.



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  8:03                     ` Georg Bauhaus
@ 2013-07-03 11:11                       ` Dmitry A. Kazakov
  2013-07-03 12:49                         ` G.B.
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-03 11:11 UTC (permalink / raw)


On Wed, 03 Jul 2013 10:03:30 +0200, Georg Bauhaus wrote:

> On 03.07.13 09:18, Dmitry A. Kazakov wrote:
>> On Tue, 2 Jul 2013 15:21:06 -0700 (PDT), mjsilva@scriptoriumdesigns.com
>> wrote:
>>
>>> I could add to this list of examples indefinitely, without coming anywhere
>>> near your Windows/Linux/VxWorks world.
>>
>> Sure, like doing physical layer of Ethernet using digital inputs and
>> outputs. The only question is why anybody would like to?
> 
> Rather, the question is, what *are* these programmers actually
> *doing*, and *buying*?

They buy Ethernet controllers...

> "Using cutting edge sensors and powerful
> algorithms, each car in Drive knows where it is."

No idea, except that "cutting edge" sensors by no mean require us cycles.
 
> Another fashionable product, which is currently pricey, is
> LED light bulb control. Is an Arduino with ham radio attached
> to every bulb even reasonable?

http://en.wikipedia.org/wiki/DMX512

We used DMX for Landegartenschau outdoor installation in Hamburg:

This is one of the lamps:

http://payload8.cargocollective.com/1/0/20783/2464449/lg_10.jpg

Each lamp's LED is individually controlled over DMX. This is the map:

http://cargocollective.com/christinametzler/Infografik-Landesgartenschau

Each dot on the map is a lamp. The installation is controlled from Windows
computers. We could possibly do it much easier (and cheaper) using our
embedded Ada middleware and its network protocol instead of Windows + DMX.
But it was not available then.

No us cycles needed to control LED lamps. Essential is exact time
synchronization and huge data flow needed for such an installation.

>> Anyway if you want this, why don't you use some Ada to C compiler?
> 
> AdaCore's (formerly SofCheck's) requires a C (or C++) runtime,
> and builds a runtime for Ada on top of it, IIUC. So this doesn't
> change the picture.

It does because the premise was: no run-time at all. Then it is perfectly
feasible to compile some arithmetic stuff written in Ada into C.

My point is either you have no run-time or else, full Ada, please.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-02 20:21                   ` Dmitry A. Kazakov
@ 2013-07-03 12:08                     ` Simon Clubley
  2013-07-03 12:47                       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: Simon Clubley @ 2013-07-03 12:08 UTC (permalink / raw)


On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Tue, 2 Jul 2013 19:29:52 +0000 (UTC), Simon Clubley wrote:
>
>> I don't understand why you think the only way to get data into a board
>> is via a A/D converter.
>
> Because digital stuff is better to handle by dedicated hardware. This is
> why I wrote that if you are using main CPU for the purpose of making a
> signal generator or an incremental encoder or what you wrote below, it is
> an architectural problem.
>

You still need to interface that hardware to the rest of your circuit and
the SPI/I2C protocols (which generally use GPIO lines) are common ways of
doing that.

>
> Why didn't you take an RF TV remote receiver? It has USB/COM interface and
> is fairly simple to use. We deployed such stuff in some projects.
>

I wasn't aware of any devices which remotely match what I need.

Do you have a pointer to the unit you are thinking of ?

It would be very interesting to have a look.

Thanks,

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 12:08                     ` Simon Clubley
@ 2013-07-03 12:47                       ` Dmitry A. Kazakov
  2013-07-03 16:56                         ` Simon Clubley
  0 siblings, 1 reply; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-03 12:47 UTC (permalink / raw)


On Wed, 3 Jul 2013 12:08:33 +0000 (UTC), Simon Clubley wrote:

> On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>> On Tue, 2 Jul 2013 19:29:52 +0000 (UTC), Simon Clubley wrote:
>>
>>> I don't understand why you think the only way to get data into a board
>>> is via a A/D converter.
>>
>> Because digital stuff is better to handle by dedicated hardware. This is
>> why I wrote that if you are using main CPU for the purpose of making a
>> signal generator or an incremental encoder or what you wrote below, it is
>> an architectural problem.
> 
> You still need to interface that hardware to the rest of your circuit and
> the SPI/I2C protocols (which generally use GPIO lines) are common ways of
> doing that.

Yes. Usually we use Ethernet (ModBus, EtherCAT) and CAN, because for us
size is not so important as modular design. So we prefer standardized I/O
terminals. And yes, they are not cheap.

>> Why didn't you take an RF TV remote receiver? It has USB/COM interface and
>> is fairly simple to use. We deployed such stuff in some projects.
> 
> I wasn't aware of any devices which remotely match what I need.

That depends of course of what you want. Some of our customers use IrDA and
proprietary deviations from it. It is usually set on an UART. That is in
case you needed a bidirectional communication, half-duplex though.
 
> Do you have a pointer to the unit you are thinking of ?

No. The things get out of stock each 2-5 years. It was something like this
(IR receiver on the left):

http://thumbs4.ebaystatic.com/d/l225/m/mvJHLSCI_af75fy731KBUWw.jpg

though it was RS232, not USB. I don't know if RS232 ones are anywhere to
find now. This is always a problem with such things. We needed only a
receiver. The sender was a special design. It was used in several
interactive rides in an amusement park. The sender was in a fake pistol,
you get the idea.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 11:11                       ` Dmitry A. Kazakov
@ 2013-07-03 12:49                         ` G.B.
  2013-07-03 16:14                           ` Dmitry A. Kazakov
  0 siblings, 1 reply; 65+ messages in thread
From: G.B. @ 2013-07-03 12:49 UTC (permalink / raw)


On 03.07.13 13:11, Dmitry A. Kazakov wrote:

>> Another fashionable product, which is currently pricey, is
>> LED light bulb control. Is an Arduino with ham radio attached
>> to every bulb even reasonable?
>
> http://en.wikipedia.org/wiki/DMX512

Cables, huh? 8-)

> http://cargocollective.com/christinametzler/Infografik-Landesgartenschau

Nice! Yet, W-DMX is what people may prefer in their living
rooms, home-made or via meethue.com. Mind you, they are talking
RESTfully to the bulbs' network. Embedded programmers might have
different goals and preferences.

DIY'ers seem to use an Atmega88 and such for connecting via W-DMX.
So, not really $$$ (or even $$) PC hardware.

> No us cycles needed to control LED lamps.

Fewer µs means more reason to not throw $$$ of PC hardware at small,
frugal things.  But, austerity has never been associated with Ada,
correct?


>>> Anyway if you want this, why don't you use some Ada to C compiler?
>>
>> AdaCore's (formerly SofCheck's) requires a C (or C++) runtime,
>> and builds a runtime for Ada on top of it, IIUC. So this doesn't
>> change the picture.
>
> It does because the premise was: no run-time at all. Then it is perfectly
> feasible to compile some arithmetic stuff written in Ada into C.

"OS, or run-time environment should be minimal", from which premise
I might deduce a more inclusive premise than no run-time at all ;-).
But OK, if http://en.wikipedia.org/wiki/AdaMagic is not all true
any longer.

> My point is either you have no run-time or else, full Ada, please.

Ada's runtime has been both extended and restricted over the years,
via additions and language defined subsets, repsectively. Furthermore,
taking optional Annexes into account, there is no one full Ada,
practically speaking.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  7:18                   ` Dmitry A. Kazakov
  2013-07-03  8:03                     ` Georg Bauhaus
@ 2013-07-03 14:50                     ` mjsilva
  1 sibling, 0 replies; 65+ messages in thread
From: mjsilva @ 2013-07-03 14:50 UTC (permalink / raw)


On Wednesday, July 3, 2013 12:18:27 AM UTC-7, Dmitry A. Kazakov wrote:
> On Tue, 2 Jul 2013 15:21:06 -0700 (PDT), mjsilva@scriptoriumdesigns.com
> 
> wrote:
> 
> 
> 
> > I could add to this list of examples indefinitely, without coming anywhere
> 
> > near your Windows/Linux/VxWorks world.
> 
> 
> 
> Sure, like doing physical layer of Ethernet using digital inputs and
> 
> outputs. The only question is why anybody would like to?

I don't even know what to make of such a comment.  There is a _huge_ market for sub Linux/Windows microcontrollers out there (tens of billions of devices per year), and none of that market involves doing physical layer Ethernet using GPIO.  Obviously these parts fill a need, or they wouldn't be manufactured by dozens of companies and purchased by thousands upon thousands of companies to be installed in billions of devices.

> Anyway if you want this, why don't you use some Ada to C compiler?

I only know of one, AdaMagic, and that is only Ada 95 AFAIK.  But it would certainly be better than nothing.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 12:49                         ` G.B.
@ 2013-07-03 16:14                           ` Dmitry A. Kazakov
  0 siblings, 0 replies; 65+ messages in thread
From: Dmitry A. Kazakov @ 2013-07-03 16:14 UTC (permalink / raw)


On Wed, 03 Jul 2013 14:49:54 +0200, G.B. wrote:

> On 03.07.13 13:11, Dmitry A. Kazakov wrote:
> 
>>> Another fashionable product, which is currently pricey, is
>>> LED light bulb control. Is an Arduino with ham radio attached
>>> to every bulb even reasonable?
>>
>> http://en.wikipedia.org/wiki/DMX512
> 
> Cables, huh? 8-)

I would say yes. If you know how to light a bulb without electric power, I
am ready to invest everything I have into your startup! (:-))

>> http://cargocollective.com/christinametzler/Infografik-Landesgartenschau
> 
> Nice! Yet, W-DMX is what people may prefer in their living
> rooms, home-made or via meethue.com.

I would rather prefer something PoE-based (Power over Ethernet).

>> No us cycles needed to control LED lamps.
> 
> Fewer µs means more reason to not throw $$$ of PC hardware at small,
> frugal things.  But, austerity has never been associated with Ada,
> correct?

Well, I believe in standards and modular design.

Does Ada RM still have an example about positioning disk drive heads? The
main problem we faced was running LEDs a smooth ramp without blinking. It
required small latencies and a huge synchronous flow of data. It was a
gigantic waste of resources, just because the DMX controller had no command
"go from Color1 to Color2 in N seconds".

>> My point is either you have no run-time or else, full Ada, please.
> 
> Ada's runtime has been both extended and restricted over the years,
> via additions and language defined subsets, repsectively. Furthermore,
> taking optional Annexes into account, there is no one full Ada,
> practically speaking.

True. Let us talk about a "reasonable full Ada" then: tasks (with
identification), protected objects (with interrupt handlers), tagged types,
exceptions, floating and fixed point, Interfaces.C. Plus sockets.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 12:47                       ` Dmitry A. Kazakov
@ 2013-07-03 16:56                         ` Simon Clubley
  0 siblings, 0 replies; 65+ messages in thread
From: Simon Clubley @ 2013-07-03 16:56 UTC (permalink / raw)


On 2013-07-03, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On Wed, 3 Jul 2013 12:08:33 +0000 (UTC), Simon Clubley wrote:
>
>> On 2013-07-02, Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
>>> Why didn't you take an RF TV remote receiver? It has USB/COM interface and
>>> is fairly simple to use. We deployed such stuff in some projects.
>> 
>> I wasn't aware of any devices which remotely match what I need.
>
> That depends of course of what you want. Some of our customers use IrDA and
> proprietary deviations from it. It is usually set on an UART. That is in
> case you needed a bidirectional communication, half-duplex though.
>  

Several hundred bytes per second, capable of running in a pseudo full
duplex mode (uplink is command/control, downlink is telemetry), up to
several hundred metres range, low power license free band (ie: covered
by the Short Range Devices regulations in IR 2030 within the UK).

Needs to operate without line of sight. (That's why your RF reference above
caught my attention. :-))

>> Do you have a pointer to the unit you are thinking of ?
>
> No. The things get out of stock each 2-5 years. It was something like this
> (IR receiver on the left):
>
> http://thumbs4.ebaystatic.com/d/l225/m/mvJHLSCI_af75fy731KBUWw.jpg
>
> though it was RS232, not USB. I don't know if RS232 ones are anywhere to
> find now. This is always a problem with such things. We needed only a
> receiver. The sender was a special design. It was used in several
> interactive rides in an amusement park. The sender was in a fake pistol,
> you get the idea.
>

Thanks, but as you can see from my required specs that would not be
suitable. Thanks for the pointer however.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03  0:22                 ` Luke A. Guest
@ 2013-07-03 19:13                   ` Randy Brukardt
  2013-07-03 19:19                     ` Randy Brukardt
  2013-07-04 16:02                     ` Luke A. Guest
  0 siblings, 2 replies; 65+ messages in thread
From: Randy Brukardt @ 2013-07-03 19:13 UTC (permalink / raw)


"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>> specialized circumstances (typically, some sort of certification
>> requirement). Otherwise, one ought to forget about it and use Ada as it 
>> was
>> intended.
>
> The point of this thread is this, you can't use stock GNAT rts with these
> small boards, it has to be custom and is something I'm working on.

You can't really use Ada on those very small systems -- you can only use a 
tiny Ada subset, one that reduces the advantages of Ada a lot. Unless you're 
in the tiny minority of people that prefer the Ada *syntax* to that of C, 
you're not really gaining anything. (Ada witthout exceptions and most 
tasking isn't Ada at all, IMHO). RRS tried to serve that market back in the 
early days and got nowhere.

                                                 Randy.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 19:13                   ` Randy Brukardt
@ 2013-07-03 19:19                     ` Randy Brukardt
  2013-07-03 20:50                       ` Georg Bauhaus
                                         ` (2 more replies)
  2013-07-04 16:02                     ` Luke A. Guest
  1 sibling, 3 replies; 65+ messages in thread
From: Randy Brukardt @ 2013-07-03 19:19 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote in message 
news:kr1t5k$9tq$1@loke.gir.dk...
> "Luke A. Guest" <laguest@archeia.com> wrote in message 
> news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
>> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>>> specialized circumstances (typically, some sort of certification
>>> requirement). Otherwise, one ought to forget about it and use Ada as it 
>>> was
>>> intended.
>>
>> The point of this thread is this, you can't use stock GNAT rts with these
>> small boards, it has to be custom and is something I'm working on.
>
> You can't really use Ada on those very small systems -- you can only use a 
> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless 
> you're in the tiny minority of people that prefer the Ada *syntax* to that 
> of C, you're not really gaining anything. (Ada witthout exceptions and 
> most tasking isn't Ada at all, IMHO). RRS tried to serve that market back 
> in the early days and got nowhere.

Rereading this, it comes off as more negative than I intended. Ada was 
designed as a programming language for "programming in the large", and that 
means that it's strengths don't really show up on tiny programs (which is 
what you can fit on tiny boards). That's a problem for Ada if you consider 
the tiny boards as an entry to working on larger systems down the road; so 
I'm not against efforts to use Ada on those sorts of systems -- I'm just 
dubious that they really can be successful (if they make Ada into "just 
another programming language", it's unclear that anyone will understand why 
Ada is so great).

                                              Randy.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 19:19                     ` Randy Brukardt
@ 2013-07-03 20:50                       ` Georg Bauhaus
  2013-07-08 12:53                         ` Eryndlia Mavourneen
  2013-07-03 21:29                       ` Luke A. Guest
  2013-07-03 22:02                       ` Niklas Holsti
  2 siblings, 1 reply; 65+ messages in thread
From: Georg Bauhaus @ 2013-07-03 20:50 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:

>> You can't really use Ada on those very small systems -- you can only use a 
>> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless 
>> you're in the tiny minority of people that prefer the Ada *syntax* to that 
>> of C, you're not really gaining anything. (Ada witthout exceptions and 
>> most tasking isn't Ada at all, IMHO). RRS tried to serve that market back 
>> in the early days and got nowhere.
> 
> Rereading this, it comes off as more negative than I intended. Ada was 
> designed as a programming language for "programming in the large", and that 
> means that it's strengths don't really show up on tiny programs (which is 
> what you can fit on tiny boards). That's a problem for Ada if you consider 
> the tiny boards as an entry to working on larger systems down the road; so 
> I'm not against efforts to use Ada on those sorts of systems -- I'm just 
> dubious that they really can be successful (if they make Ada into "just 
> another programming language", it's unclear that anyone will understand why 
> Ada is so great).

This still seems pessimistic, in particular since Ada 2012.

Ada has a few features that single it out. It could not become
just another programming language, even when
tasking we dropped and exception handling limited.

1) The type system uses name equivalence for every kind of  type.
2) If you define a scalar type, you know it, unlike int, or CARDINAL.
3) Structures are built from types, not from pointers and preprocessing
definitions.
3) static binding of operations is the default.
4) Geared to explicit formality, not to artful exegesis of things implied.
5) change a type and have the compiler remind you of the other necessary
changes.

When writing low level software in Ada, you can set the third bit of
something
by assigning True to a component of a packed array. In C, the main
contender,
you can pride yourself on having mastered C's shifting and masking.
(Problem solving provides for combinatorial exercise already. Why more?)

McCormick's long term study shows how this has made a real difference,
more than tasking has.

I think that Ada 2012 adds to that set. It is a good language for
expressing
exactly what you want to happen in the small, and a good language for
describing interfaces of objects explicitly, in packaged types, including
all scalar types, and bridled named pointer types.

A reasonably small Ada, therefore, could not
be just like some other language, I think.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 19:19                     ` Randy Brukardt
  2013-07-03 20:50                       ` Georg Bauhaus
@ 2013-07-03 21:29                       ` Luke A. Guest
  2013-07-03 22:02                       ` Niklas Holsti
  2 siblings, 0 replies; 65+ messages in thread
From: Luke A. Guest @ 2013-07-03 21:29 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:
> "Randy Brukardt" <randy@rrsoftware.com> 
> Rereading this, it comes off as more negative than I intended. Ada was 
> designed as a programming language for "programming in the large", and that 
> means that it's strengths don't really show up on tiny programs (which is 
> what you can fit on tiny boards). That's a problem for Ada if you consider 
> the tiny boards as an entry to working on larger systems down the road; so 
> I'm not against efforts to use Ada on those sorts of systems -- I'm just 
> dubious that they really can be successful (if they make Ada into "just 
> another programming language", it's unclear that anyone will understand why 
> Ada is so great).
> 
>                                               Randy.

Whilst it was programming in the large it was also in embedded in which it
was aimed.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 19:19                     ` Randy Brukardt
  2013-07-03 20:50                       ` Georg Bauhaus
  2013-07-03 21:29                       ` Luke A. Guest
@ 2013-07-03 22:02                       ` Niklas Holsti
  2 siblings, 0 replies; 65+ messages in thread
From: Niklas Holsti @ 2013-07-03 22:02 UTC (permalink / raw)


On 13-07-03 22:19 , Randy Brukardt wrote:
> "Randy Brukardt" <randy@rrsoftware.com> wrote in message 
> news:kr1t5k$9tq$1@loke.gir.dk...
>> "Luke A. Guest" <laguest@archeia.com> wrote in message 
>> news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
>>> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>>>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>>>> specialized circumstances (typically, some sort of certification
>>>> requirement). Otherwise, one ought to forget about it and use Ada as it 
>>>> was
>>>> intended.
>>>
>>> The point of this thread is this, you can't use stock GNAT rts with these
>>> small boards, it has to be custom and is something I'm working on.
>>
>> You can't really use Ada on those very small systems -- you can only use a 
>> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless 
>> you're in the tiny minority of people that prefer the Ada *syntax* to that 
>> of C, you're not really gaining anything.

In addition to the syntax, you are gaining much of the conceptual and
compile-time support of Ada, which is a vast improvement over C, IMO.

>> (Ada witthout exceptions and 
>> most tasking isn't Ada at all, IMHO).

Still much better than C.

>> RRS tried to serve that market back 
>> in the early days and got nowhere.

That was a shame, but I don't think it proves your point.

> Rereading this, it comes off as more negative than I intended.

Good that you also think that it was too negative.

> Ada was 
> designed as a programming language for "programming in the large", and that 
> means that it's strengths don't really show up on tiny programs (which is 
> what you can fit on tiny boards).

Present-day "tiny boards" or microcontrollers can have up to a few
megabytes of code; more if off-chip memory is added. By 1983 standards,
that qualifies as "large".

> That's a problem for Ada if you consider 
> the tiny boards as an entry to working on larger systems down the road; so 
> I'm not against efforts to use Ada on those sorts of systems -- I'm just 
> dubious that they really can be successful (if they make Ada into "just 
> another programming language", it's unclear that anyone will understand why 
> Ada is so great).

I concur with other replies that even an Ada with limited or no tasking
and run-time support still has much of the goodness of Ada.

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
      .      @       .

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 19:13                   ` Randy Brukardt
  2013-07-03 19:19                     ` Randy Brukardt
@ 2013-07-04 16:02                     ` Luke A. Guest
  2013-07-05 21:08                       ` Randy Brukardt
  1 sibling, 1 reply; 65+ messages in thread
From: Luke A. Guest @ 2013-07-04 16:02 UTC (permalink / raw)


"Randy Brukardt" <randy@rrsoftware.com> wrote:
> "Luke A. Guest" <laguest@archeia.com> wrote in message 
> news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
>> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>>> specialized circumstances (typically, some sort of certification
>>> requirement). Otherwise, one ought to forget about it and use Ada as it 
>>> was
>>> intended.
>> 
>> The point of this thread is this, you can't use stock GNAT rts with these
>> small boards, it has to be custom and is something I'm working on.
> 
> You can't really use Ada on those very small systems -- you can only use a 
> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless you're 
> in the tiny minority of people that prefer the Ada *syntax* to that of C, 
> you're not really gaining anything. (Ada witthout exceptions and most 
> tasking isn't Ada at all, IMHO). RRS tried to serve that market back in the 
> early days and got nowhere.
> 
>                                                  Randy.

You can have local exceptions no propagation, also can have a small
secondary stack and tasking.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-06-17 16:05   ` Max Herman
@ 2013-07-04 16:13     ` Lucretia
  0 siblings, 0 replies; 65+ messages in thread
From: Lucretia @ 2013-07-04 16:13 UTC (permalink / raw)


On Monday, 17 June 2013 17:05:44 UTC+1, Max Herman  wrote:
> On Sunday, June 16, 2013 8:38:40 PM UTC-4, Luke A. Guest wrote:
> 
> > I might've able to help as I've built gnat for arm bare metal. Do you want
> > to program for this board directly, ie no os?
> 
> Luke, it'll be great if you can help. No, or minimal OS is preferred, if possible.

Do you really need such a big board? That's basically quite a powerful machine. That could easily run Linux + GNAT no problem. I ported GNAT to Yocto (on GitHub), for exceptions it uses setjmp/longjmp, like all ARM targets will right now due to lack of understanding of DWARF EH and the GNAT sources needing to be re-arranged to support it on ARM.

You could easily boot into Ada on any ARM board, I've done it on a Cortex-M4 board.

From what I read here, there seems to be a misunderstanding re ports. For any GCC backend, GNAT can be directed to target it at some level.

Luke.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-04 16:02                     ` Luke A. Guest
@ 2013-07-05 21:08                       ` Randy Brukardt
  0 siblings, 0 replies; 65+ messages in thread
From: Randy Brukardt @ 2013-07-05 21:08 UTC (permalink / raw)


"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:1042950743394579585.161198laguest-archeia.com@nntp.aioe.org...
> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>> "Luke A. Guest" <laguest@archeia.com> wrote in message
>> news:237325009394503647.389498laguest-archeia.com@nntp.aioe.org...
>>> "Randy Brukardt" <randy@rrsoftware.com> wrote:
>>>> So, IMHO (and much like SPARK), Ravenscar is a tool needed only in very
>>>> specialized circumstances (typically, some sort of certification
>>>> requirement). Otherwise, one ought to forget about it and use Ada as it
>>>> was
>>>> intended.
>>>
>>> The point of this thread is this, you can't use stock GNAT rts with 
>>> these
>>> small boards, it has to be custom and is something I'm working on.
>>
>> You can't really use Ada on those very small systems -- you can only use 
>> a
>> tiny Ada subset, one that reduces the advantages of Ada a lot. Unless 
>> you're
>> in the tiny minority of people that prefer the Ada *syntax* to that of C,
>> you're not really gaining anything. (Ada witthout exceptions and most
>> tasking isn't Ada at all, IMHO). RRS tried to serve that market back in 
>> the
>> early days and got nowhere.
>
> You can have local exceptions no propagation, also can have a small
> secondary stack and tasking.

A "local exception" is just a very complicated way to write a go-to. 
Propagation (at least from a subprogram to its caller) is the entire point; 
without it, you have to handle potential errors after every call which 
clutters the code far too much. (Think a subprogram that includes a bunch of 
Puts; without exception propagation, one has to check for errors after every 
Put, even though write errors are very unlikely.)

I don't see any point in worrying about a secondary stack; that's mainly 
used for returning objects of unknown size from functions, and that's a 
capability that can easily be avoided in programs (even if you don't allow 
heap use). (Besides the fact that it is better, IMHO to use managed heap for 
that anyway, especially on very memory-limited systems; programs that can't 
use the heap need very strong determinism and thus are going to be very 
limited in constructs in any case.)

                                          Randy.


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: Help with embedded hardware/software platform selection for ADA
  2013-07-03 20:50                       ` Georg Bauhaus
@ 2013-07-08 12:53                         ` Eryndlia Mavourneen
  0 siblings, 0 replies; 65+ messages in thread
From: Eryndlia Mavourneen @ 2013-07-08 12:53 UTC (permalink / raw)


On Wednesday, July 3, 2013 3:50:15 PM UTC-5, Georg Bauhaus wrote:
> . . .
> When writing low level software in Ada, you can set the third bit of
> something
> by assigning True to a component of a packed array. In C, the main
> contender,
> you can pride yourself on having mastered C's shifting and masking.
> (Problem solving provides for combinatorial exercise already. Why more?)
> 
> . . .
> 
> A reasonably small Ada, therefore, could not
> be just like some other language, I think.

And don't forget the ability to specify the address of a variable -- Sooo much easier and clearer than using offsets and address arithmetic!

-- Eryndlia

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2013-07-08 12:53 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-14 15:39 Help with embedded hardware/software platform selection for ADA Max Herman
2013-06-14 17:05 ` Dmitry A. Kazakov
2013-06-17 15:51   ` Max Herman
2013-06-17 17:12     ` Dmitry A. Kazakov
2013-06-14 17:45 ` G.B.
2013-06-14 20:52   ` Simon Wright
2013-06-14 20:16 ` RasikaSrinivasan
2013-06-14 20:51   ` Simon Wright
2013-06-17 16:00   ` Max Herman
2013-06-17  0:38 ` Luke A. Guest
2013-06-17 16:05   ` Max Herman
2013-07-04 16:13     ` Lucretia
2013-06-17  6:55 ` Help with embedded hardware/software platform selection for Ada Jacob Sparre Andersen
2013-06-17 16:15   ` Max Herman
2013-06-26 23:58   ` Luke A. Guest
2013-06-17 21:46 ` Help with embedded hardware/software platform selection for ADA Marcus F
2013-07-01 18:45   ` mjsilva
2013-07-01 19:32     ` Dmitry A. Kazakov
2013-07-01 23:35       ` Simon Clubley
2013-07-02  7:27         ` Georg Bauhaus
2013-07-02  8:46           ` Dmitry A. Kazakov
2013-07-02  9:09             ` Georg Bauhaus
2013-07-02 14:50               ` Shark8
2013-07-02 15:08             ` mjsilva
2013-07-02 16:53               ` Robert A Duff
2013-07-02 22:47               ` Randy Brukardt
2013-07-03  0:22                 ` Luke A. Guest
2013-07-03 19:13                   ` Randy Brukardt
2013-07-03 19:19                     ` Randy Brukardt
2013-07-03 20:50                       ` Georg Bauhaus
2013-07-08 12:53                         ` Eryndlia Mavourneen
2013-07-03 21:29                       ` Luke A. Guest
2013-07-03 22:02                       ` Niklas Holsti
2013-07-04 16:02                     ` Luke A. Guest
2013-07-05 21:08                       ` Randy Brukardt
2013-07-03  1:01                 ` mjsilva
2013-07-03  2:41                   ` Luke A. Guest
2013-07-03  7:17                     ` Shark8
2013-07-02 16:52             ` Simon Clubley
2013-07-02 17:27               ` Dmitry A. Kazakov
2013-07-02 19:29                 ` Simon Clubley
2013-07-02 20:21                   ` Dmitry A. Kazakov
2013-07-03 12:08                     ` Simon Clubley
2013-07-03 12:47                       ` Dmitry A. Kazakov
2013-07-03 16:56                         ` Simon Clubley
2013-07-02 22:21                 ` mjsilva
2013-07-03  7:18                   ` Dmitry A. Kazakov
2013-07-03  8:03                     ` Georg Bauhaus
2013-07-03 11:11                       ` Dmitry A. Kazakov
2013-07-03 12:49                         ` G.B.
2013-07-03 16:14                           ` Dmitry A. Kazakov
2013-07-03 14:50                     ` mjsilva
2013-07-02  8:26         ` Dmitry A. Kazakov
2013-07-02 10:44           ` Bill Findlay
2013-07-02 13:02             ` Dmitry A. Kazakov
2013-07-02 13:59               ` Bill Findlay
2013-07-02 14:41                 ` Dmitry A. Kazakov
2013-07-02 16:45                   ` Simon Clubley
2013-07-02 17:40                     ` Dmitry A. Kazakov
2013-07-02 16:57           ` Simon Clubley
2013-07-02 17:44             ` Dmitry A. Kazakov
2013-07-02 14:55         ` mjsilva
2013-07-02 15:20           ` Dmitry A. Kazakov
2013-07-02 15:58             ` mjsilva
2013-07-02 16:58               ` Dmitry A. Kazakov

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