From: Simon Wright <simon@pushface.org>
Subject: Re: longest path through a task
Date: Thu, 28 May 2015 17:37:26 +0100
Date: 2015-05-28T17:37:26+01:00 [thread overview]
Message-ID: <lymw0o1wvt.fsf@pushface.org> (raw)
In-Reply-To: 7d56e720-5e91-4950-b4ae-29d7ddbdc11a@googlegroups.com
jan.de.kruyf@gmail.com writes:
> I dumped the multithread stuff and made a single-thread / multitask
> runtime (slow in Ada unfortunately, but not as slow as multi-threading
> and interrupts. The Ravenscar runtime tries to be everything for
> everybody).
Just did some measurements (clumsily) using the Cortex-M4 counter as in
[1], and from entering the Ada handler to the triggered task starting to
execute averaged at 1200 cycles (6.7 us) with -Og, 1070 cycles (5.9 us)
with -O2. There is some code in the C handler to redirect to the Ada
handler: see [2], starting at line 236.
I wrote the C handling using weak symbols, so there's no reason (that I
can see) why an interrupt that needed better performance shouldn't hook
in directly, avoiding the Ada RTS; not so obvious how it would then
communicate with the rest of the code.
[1] http://stackoverflow.com/a/19124472
[2]
https://sourceforge.net/p/stm32f4-gnat-rts/code/ci/default/tree/stm32f429i-disco-rtos/src/stm32f4xx_it.c
next prev parent reply other threads:[~2015-05-28 16:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 19:38 longest path through a task jan.de.kruyf
2015-05-27 20:09 ` Niklas Holsti
2015-05-28 6:54 ` jan.de.kruyf
2015-05-28 9:04 ` Niklas Holsti
2015-05-28 12:27 ` brbarkstrom
2015-05-28 14:01 ` jan.de.kruyf
2015-05-28 13:04 ` jan.de.kruyf
2015-05-29 4:38 ` Niklas Holsti
2015-05-28 16:37 ` Simon Wright [this message]
2015-05-28 17:43 ` jan.de.kruyf
2015-05-28 17:52 ` Simon Wright
2015-05-28 18:12 ` jan.de.kruyf
2015-05-29 16:31 ` Simon Wright
2015-05-30 10:50 ` jan.de.kruyf
2015-06-01 13:32 ` Patrick Noffke
2015-06-01 19:09 ` Simon Wright
2015-06-02 22:15 ` Stephen Leake
2015-06-01 4:27 ` Windows Text_IO.Get_Line issue tornenvi
2015-06-01 5:01 ` tornenvi
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox