From: Simon Wright <simon@pushface.org>
Subject: Re: How do I disable elaboration code on this
Date: Sat, 09 Apr 2011 20:19:18 +0100
Date: 2011-04-09T20:19:18+01:00 [thread overview]
Message-ID: <m2oc4fteq1.fsf@pushface.org> (raw)
In-Reply-To: 87ipunqpyv.fsf@ludovic-brenta.org
Ludovic Brenta <ludovic@ludovic-brenta.org> writes:
> Simon Wright <simon@pushface.org> writes on comp.lang.ada:
>> Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> writes:
>>
>>> On 04/09/2011 06:58 AM, Lucretia wrote:
>>>> The following code will not compile no matter what I do. Basically, I
>>>> want to write the startup code for Cortex-M3 in Ada with no assembly.
>>>> So, the ISR code needs to be elaboration free as it's the first bit of
>>>> code that would run on reset.
>>>
>>>> Vector : constant Vectors :=
>>>> (Dummy'Access,
>>>> Dummy'Access,
>>>> Dummy'Access,
>>>> Dummy'Access);
>>>> pragma Convention (C, Vector);
>>>> for Vector'Address use Addr;
>>>
>>> I think what you need here is
>>>
>>> Vector : constant Vectors;
>>> pragma Import (Ada, Vector);
>>> for Vector'Address use Addr;
>>>
>>> since you don't want Vector to be initialized.
>>>
>>> Vector will not be initialized because you have pragma Import for it.
>>>
>>> Note that you don't need procedure Dummy.
>>
>> But the real code will have actual ISR procedures. OP is merely sparing
>> us the unnecessary detail of the real ISRs.
>
> But the vector being in Flash ROM, the Ada code needs not and indeed may
> not initialize it, so I think Jeffrey's reply is correct. The pragma
> Import and the address clause will make the actual vectors (in ROM)
> visible to the Ada program.
That would be true if the vector was built in a separate C or ASM file,
but Luke wants to do the whole thing in Ada and then write it to
Flash. See above: "Basically, I want to write the startup code for
Cortex-M3 in Ada with no assembly."
next prev parent reply other threads:[~2011-04-09 19:19 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-09 13:58 How do I disable elaboration code on this Lucretia
2011-04-09 16:57 ` Jeffrey Carter
2011-04-09 17:01 ` Simon Wright
2011-04-09 17:44 ` Ludovic Brenta
2011-04-09 19:19 ` Simon Wright [this message]
2011-04-09 19:32 ` Jeffrey Carter
2011-04-10 9:06 ` Lucretia
2011-04-10 9:31 ` Simon Wright
2011-04-09 19:35 ` Ludovic Brenta
2011-04-09 22:05 ` Simon Wright
2011-04-10 5:39 ` Simon Wright
2011-04-10 17:20 ` Lucretia
2011-04-10 20:12 ` Jeffrey Carter
2011-04-10 20:47 ` Georg Bauhaus
2011-04-10 21:19 ` Lucretia
2011-04-11 5:08 ` Lucretia
2011-04-11 6:28 ` Simon Wright
2011-04-11 8:54 ` Lucretia
2011-04-11 10:10 ` Simon Wright
2011-04-11 11:59 ` Simon Clubley
2011-04-11 18:30 ` Simon Wright
2011-04-11 19:12 ` Simon Wright
2011-04-11 19:50 ` Simon Wright
2011-04-11 21:40 ` Lucretia
2011-04-11 23:12 ` Lucretia
2011-04-11 23:16 ` Lucretia
2011-04-11 23:31 ` Lucretia
2011-04-12 5:22 ` Simon Wright
2011-04-12 17:07 ` Simon Clubley
2011-04-13 16:53 ` Simon Wright
2011-04-15 8:38 ` Simon Wright
2011-04-11 23:08 ` Lucretia
2011-04-12 11:50 ` Simon Clubley
2011-04-12 16:48 ` Lucretia
2011-04-11 11:19 ` Georg Bauhaus
2011-04-11 13:50 ` Simon Wright
2011-04-14 19:19 ` Florian Weimer
2011-04-10 16:34 ` Rolf
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox