comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Ada: A beginners experience
Date: Sat, 14 Jul 2018 07:57:23 -0700 (PDT)
Date: 2018-07-14T07:57:23-07:00	[thread overview]
Message-ID: <a73a6899-66f4-402c-9e2c-36ad417b3a59@googlegroups.com> (raw)
In-Reply-To: <821c650e-72ae-4bd1-97a4-3a9bd7433d48@googlegroups.com>

On Friday, July 13, 2018 at 11:53:15 PM UTC-4, blakemi...@gmail.com wrote:
> On Saturday, July 14, 2018 at 10:53:02 AM UTC+8, Dan'l Miller wrote:
> > On Friday, July 13, 2018 at 9:36:32 PM UTC-5, blakemi...@gmail.com wrote:
> > > At the moment I spend too much time trying understand how to make my tools work, and not enough time
> > > using my tools. 
> > 
> > Specifically what do you mean by “make the tools work”?  Do you spend
> > 1) more time tweaking the command-line and build scripts and surrounding ecosystem, as getting exasperated trying to get the toolchain to work together (almost independent of Ada-the-language-per-se) 
> > or
> > 2) more time having lengthy errors/warnings-from-compiler conversations with the GNAT compiler about Ada source code, as cycles of learning of learning Ada itself?
> 
> The first of the two options, well at least most of the time. An example of the entry barrier level is the Inspirel tutorials for Ada on the Cortex-M. I have tried many times to make this work, but so far I have had no luck. (The author posts here so I will add that I have still learnt a lot from the tutorial). This is the only beginner style tutorial that I have found, but I have run into trouble with it.
>  I have been able to get lights blinking on a STM32F4discovery board using the GPL-2018-community release and I am working my way through the code to truely understand it. I've been able to get some external leds flashing so I am having some success along the way. 
>  I don't mind the compiler telling me off, and correcting my mistakes but fighting the toolchain, and even trying to understand the toolchain completely is hard going.
>  I am determined to understand how it all works, and learning to deal with problems of building software and board support packages may simply come with the territory. But some clear documentation that doesn't make assumptions about prior knowledge would also help.
> 
> Mike Blake

Back a few years ago, I started similarly to where you did.  I did find
the Inspirel book to be very good, but you had to understand the context
it was coming from.  It seemed to assume you were natively (not cross)
compiling your code.  I ran into trouble because I wanted to work on
a controller bare-metal (it was too small for a full Ada runtime).  There
were various small issues with the examples in the book vs what I found
trying to cross compiler, so I stopped for a bit and decided to change up.

I looked into taking baby steps of making a Zero-Foot-Print (ZFP) runtime.
I grabbed a copy of one of Simon Wright's old ZFP projects and took
the time to figure out what needed to be changed for that board, this
included not only the ada files, but the linker script as well.  Once
I got that working and I continued on with the Inspirel book and got
some basic IO stuff working.  I found some other inconsistencies which
appeared to be due to differences in the linkerscript I was using and
the one used in the book.  After that I worked on adding small extra
features (leaving ZFP behind at this point and becoming nearly-ZFP).

I guess the point of all this, is bare-metal is not easy in Ada, it
takes a lot of small steps.  I do wish there were more beginner friendly
resources, but what I have found is that there is just not enough
community with both time and money to get there (perhaps in the future
though).  I think the suggestions to go with a higher level embedded
project targetting something like the beagle bone or raspberry pi are
very good suggestions until you are more comfortable with the tools.

I agree, definitely not very beginner friendly, which is a shame.

  parent reply	other threads:[~2018-07-14 14:57 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-14  2:36 Ada: A beginners experience blakemichael073
2018-07-14  2:53 ` Dan'l Miller
2018-07-14  3:53   ` blakemichael073
2018-07-14 11:26     ` Brian Drummond
2018-07-14 12:11       ` blakemichael073
2018-07-14 13:27     ` Dan'l Miller
2018-07-14 14:57     ` Jere [this message]
2018-07-16 21:38       ` Maciej Sobczak
2018-07-20 12:00         ` Jere
2018-07-20 21:05           ` Maciej Sobczak
2018-07-21  8:25             ` Simon Wright
2018-07-14  3:36 ` Paul Rubin
2018-07-14  4:08   ` blakemichael073
2018-07-14  6:21     ` Paul Rubin
2018-07-14  8:30       ` Rene
2018-07-14 15:10         ` Paul Rubin
2018-07-14 15:13   ` Jere
2018-07-14 15:42     ` Paul Rubin
2018-07-14 16:01       ` Dmitry A. Kazakov
2018-07-14 19:05         ` Dennis Lee Bieber
2018-07-15  0:31         ` Paul Rubin
2018-07-14 15:55     ` Simon Wright
2018-07-15 22:44     ` Bill Findlay
2018-07-16  1:17       ` Jere
2018-07-16  1:41         ` Paul Rubin
2018-07-16  2:01         ` Bill Findlay
2018-07-16  2:46       ` Dan'l Miller
2018-07-16 15:54         ` Bill Findlay
2018-07-14  8:01 ` Dmitry A. Kazakov
2018-07-14 12:20   ` blakemichael073
2018-07-14 13:15     ` Dmitry A. Kazakov
2018-07-14 14:15       ` blakemichael073
2018-07-14  8:19 ` Jeffrey R. Carter
2018-07-16  9:25 ` fabien.chouteau
2018-07-17  1:18   ` blakemichael073
2018-07-17  1:44     ` Dennis Lee Bieber
2018-07-17 12:59     ` fabien.chouteau
2018-07-20  1:08     ` Philip Munts
2018-07-23  4:04       ` blakemichael073
2018-07-23 13:15         ` Dennis Lee Bieber
2018-07-26 10:20   ` fabien.chouteau
2018-07-16 17:36 ` G. B.
2018-07-16 18:43   ` Simon Wright
2018-07-16 19:08     ` Paul Rubin
replies disabled

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