comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Ravenscar-sfp and interrupt priorities on Cortex-M4
Date: Fri, 13 Feb 2015 18:40:36 +0000
Date: 2015-02-13T18:40:36+00:00	[thread overview]
Message-ID: <ly1tltlknv.fsf@pushface.org> (raw)
In-Reply-To: f500a3f0-5cb4-4890-ae7b-bd16222e2b26@googlegroups.com

Patrick Noffke <patrick.noffke@gmail.com> writes:

> On Friday, February 13, 2015 at 4:06:59 AM UTC-6, Simon Wright wrote:

>> I'm working with FreeRTOS (for STM32F4), which supports priorities from
>> 0 to 7 out of the box.
>
> I only just learned about the FreeRTOS-based runtime yesterday.  I
> will look into that.  I might need to repeat my porting efforts in the
> future for an Atmel SAM4S (or similar) MCU, and I think they offer a
> FreeRTOS port.
>
> I am using the TM4C123 MCU which only has 32 KB of SRAM.  As it is, I
> had to reduce the interrupt handler stack size (from 1024 to either
> 256 or 512 -- TBD) in order to fit in the BSS section, and I'm still
> approaching the limit with the rest of the stuff in my application (1
> KB just for the UDMA control table, 512-1024 bytes for the tasks,
> application data, etc.).  I'm not sure if FreeRTOS would add much
> overhead.  Do you have any input on that?

I found that (for a fairly paltry task) 768 bytes was too small for the
stack, 1024 was OK. I don't know how much of that was used by FreeRTOS
calls.

This blinky application (3 tasks, 2 POs) used 18k of RAM, including 15k
of heap (the task stacks are allocated on the heap).

>> Which base distribution are you working with? Doesn't look like the GPL
>> one, which doesn't have any of the files you mention.
>
> I am working with the "bare metal" Linux-hosted ARM32-elf distribution
> from libre.adacore.com.  I grabbed the binary toolchain and runtime
> (gnat-gpl-2014-arm-elf-linux-bin.tar.gz) and
> zfp-support-gpl-2014-src.tar.gz, and I extended the code in the zfp
> tarball to add support for the TM4C(123) MCU.  Is development of this
> implementation going to continue in the future, or do you think
> Free-RTOS-based runtimes will be the norm for Cortex-M4?

I'd forgotten about zfp-support-gpl-2014-src.tar.gz.

AdaCore are basing the libre release on the bare-board runtimes they
supply for the high integrity market. I doubt very much whether they'd
want to use FreeRTOS in that context; I can see it being a selling point
that almost the whole system is in Ada.

I chose FreeRTOS for two reasons: first, to have a basis for building
proprietary systems, if people want to, and second, to avoid most of the
porting exercise. I find myself most comfortable in the space between
applications and the bare metal!


      reply	other threads:[~2015-02-13 18:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-12 20:38 Ravenscar-sfp and interrupt priorities on Cortex-M4 Patrick Noffke
2015-02-13 10:06 ` Simon Wright
2015-02-13 15:10   ` Patrick Noffke
2015-02-13 18:40     ` Simon Wright [this message]
replies disabled

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