comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jere.groups@gmail.com>
Subject: Re: STM32F4 GNAT Run Time System - roadmap
Date: Mon, 7 Dec 2015 09:56:53 -0800 (PST)
Date: 2015-12-07T09:56:53-08:00	[thread overview]
Message-ID: <be9e6349-43e0-492c-ab44-f10ef747244b@googlegroups.com> (raw)
In-Reply-To: <lywpsqfbll.fsf@pushface.org>

On Monday, December 7, 2015 at 11:49:11 AM UTC-5, Simon Wright wrote:
> Jere writes:
> 
> > I am currently looking at an M0+ chip, which as far as I can tell, has
> > no GNAT cross compiler's available (nor runtimes).  It does have a GCC
> > port for 4.9.3 I think, but not GNAT.  Speaking from the perspective
> > of developing on a Windows machine.
> >
> > At some point I guess I will have to dig in and figure out how to
> > build GNAT for the m0+ using windows, then I'll have to figure out the
> > runtime, but I am light years from understanding that stuff at the
> > moment.
> 
> I think it'd be simple enough to make an M0+ compiler (once one's found
> the proper incantation); the problem I had was getting one compiler to
> generate M3 or M4F code as required. I think the ARM branch at
> https://launchpad.net/gcc-arm-embedded can do it, but the changes
> haven't been rolled in to the GCC trunk; and there are apparently
> problems building Ada with that source tree; and they are up to 4.9.3
> only.
That the one I have been looking at in my off time.  The vendor for my chip actually provides a version of that build for their IDE.  I've been going through various webpages with references to building a GNAT cross compiler.  I'll get that down eventually I hope.

> Of course the work I've done has been on Mac OS X; perhaps look at
> TDM-GCC, starting at http://getadanow.com/#get_windows
I'm definitely able to get Ada for Windows (Both GNAT GPL and FSF) for windows development.  I guess I meant that so far all the references to building a cross compiler have been from the Linux context.  Translating to a windows environment is sometimes challenging.  Again though, I'll get there.  Just have to take my time and figure things out.  The other issue is all the tutorials seem to target M3 and M4, so I need to translate those to M0+ as well.

> If your chip has FreeRTOS you might be able to work from my
> http://sourceforge.net/projects/cortex-gnat-rts/ - there are 12 or so
> board-specific sources, though I think that at least two of the files
> could be moved to common.
This is something I should ask about:  I am running pure bare metal.  We won't have SD cards or hard drives.  Everything we do will need to run straight on the micro's Flash itself.  We may or may not have EEPROMs, but even if we do, we are talking 512K bits (64k bytes) of standard EEPROM (so too slow for general use ... 1-5ms write times).  I am pretty sure there is a FreeRTOS port for my chip (I'll need to verify, but I am pretty sure).  Is there a configuration where I am able to use the FreeRTOS runtime you made in that context?  Does the runtime have all it needs to operate on a baremetal board or do I need to have FreeRTOS installed and running similar to windows or Linux with an SD card to hold the application executable?  In my ideal world, I would simply write an Ada program, compile it, and write it straight to the micro's Flash.  I am unsure if the runtime you proposed works in that manner or not.  The ravenscar profile based runtime provided by AdaCore appears to (I have not had to install an OS to use that cross compiler).

That said, I am mostly familiar with straight up bare metal, so a zero foot print runtime (if I understand what that entails) would be fine as well and maybe preferable due to our timing constraints. I don't really need tasking.  In the past I've not had it...well that is not entirely true depending on how you define it.  I remember yall joking about Duff's device in another thread, but I've used an implementation of that for some cooperative threading in C (see Adam Dunkels protothreads).  Not the prettiest thing, but in lei of no actual tasking primitives, it made some of the programming easier.  Either way, that was a one off thing.  I usually just program without anything resembling tasking.

If any of this sounds brash or curt or dismissive, I apologize.  I in no way mean it to sound so.  I am writing quickly as I have to run to a meeting.  I am really excited about this stuff.  

  reply	other threads:[~2015-12-07 17:56 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-09 12:02 STM32F4 GNAT Run Time System - roadmap Simon Wright
2015-06-09 19:44 ` Tero Koskinen
2015-06-12 17:31   ` MIchael Erdmann
2015-06-12 18:19     ` Simon Wright
2015-06-09 20:08 ` jan.de.kruyf
2015-06-10 17:47   ` Simon Wright
2015-06-10 19:54     ` jan.de.kruyf
2015-06-10 21:11       ` Simon Wright
2015-06-10  8:19 ` jan.de.kruyf
2015-06-10  8:24 ` jan.de.kruyf
2015-06-10 17:55   ` Simon Wright
2015-06-10 19:30     ` jan.de.kruyf
2015-06-10 11:20 ` Brian Drummond
2015-06-10 21:19   ` Simon Wright
2015-06-11 10:10     ` Brian Drummond
2015-06-13 13:21     ` Jedi Tek'Unum
2015-06-13 14:15       ` Dmitry A. Kazakov
2015-06-13 14:55       ` Simon Wright
2015-06-13 17:43         ` Jedi Tek'Unum
2015-12-06 18:34   ` Simon Wright
2015-12-07 10:39     ` Brian Drummond
2016-01-28 20:52       ` Simon Wright
2016-01-30 14:21         ` Brian Drummond
2015-12-07 15:13     ` Jere
2015-12-07 16:31       ` Simon Wright
2015-12-07 16:49       ` Simon Wright
2015-12-07 17:56         ` Jere [this message]
2015-12-07 22:02           ` Simon Wright
2015-12-08 14:03             ` Jere
2015-12-08 15:07               ` Tero Koskinen
2015-12-09  1:46                 ` Jere
2015-12-08  2:11     ` Randy Brukardt
2015-12-09 18:46       ` Simon Clubley
2015-12-09 22:47         ` Randy Brukardt
2015-12-10 18:22           ` Simon Clubley
2015-12-11 14:59       ` AI12-0128 (was: STM32F4 GNAT Run Time System - roadmap) Simon Wright
2015-12-11 21:18         ` Randy Brukardt
2015-06-10 15:20 ` STM32F4 GNAT Run Time System - roadmap Patrick Noffke
2015-06-15 19:03 ` Simon Wright
replies disabled

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