comp.lang.ada
 help / color / mirror / Atom feed
From: Tero Koskinen <tero.koskinen@iki.fi>
Subject: Re: How can I get this data into the .data section of the binary?
Date: Tue, 16 Jun 2020 21:19:43 +0300	[thread overview]
Message-ID: <hksgpvFplhU1@mid.individual.net> (raw)
In-Reply-To: <rcaajp$g3k$1@gioia.aioe.org>

Hi,

Luke A. Guest wrote on 16.6.2020 14.31:
> Hi,
> 
> I'm trying to get some static data tables into the data section rather
> than be elaborated at runtime. I can see no reason why this particular
> set of types, records and aggregates cannot go into the data section.

I haven't tried with your example, but is GNAT specific pragma 
Linker_Section acceptable?

https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/implementation_defined_pragmas.html#pragma-linker-section

I use that for some AVR-Ada code when I want to relocate some of the 
stuff to progmem.

Example:

package PM_Strings is
    type Text_In_Progmem (Len : AVR.Nat8) is record
       Text : AVR.Strings.AVR_String(1..Len);
    end record;

    Select_Action_Str      : constant AVR.Strings.AVR_String := "---- 
Select action ----";
    Read_NFC_Str           : constant AVR.Strings.AVR_String := "1 - 
Read NFC tag";

    Select_Action_PM : constant Text_In_Progmem := 
(Select_Action_Str'Length, Select_Action_Str);
    Read_NFC_PM      : constant Text_In_Progmem := (Read_NFC_Str'Length, 
Read_NFC_Str);

    pragma Linker_Section (Select_Action_PM, ".progmem");
    pragma Linker_Section (Read_NFC_PM, ".progmem");
end PM_Strings;


-Tero

  parent reply	other threads:[~2020-06-16 18:19 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-16 11:31 How can I get this data into the .data section of the binary? Luke A. Guest
2020-06-16 11:37 ` Luke A. Guest
2020-06-16 11:50   ` J-P. Rosen
2020-06-16 12:36     ` Luke A. Guest
2020-06-16 12:45       ` Luke A. Guest
2020-06-16 12:56         ` J-P. Rosen
2020-06-16 12:59           ` Luke A. Guest
2020-06-16 13:29             ` J-P. Rosen
2020-06-16 13:44               ` Luke A. Guest
2020-06-18  2:55                 ` Randy Brukardt
2020-06-18  9:55                   ` Niklas Holsti
2020-06-21  3:55                     ` Randy Brukardt
2020-06-21  6:55                       ` Niklas Holsti
2020-06-16 13:52             ` Mark Lorenzen
2020-06-16 14:08               ` Luke A. Guest
2020-06-16 13:03           ` Luke A. Guest
2020-06-16 14:14 ` Niklas Holsti
2020-06-16 14:25   ` Dmitry A. Kazakov
2020-06-16 14:32     ` Niklas Holsti
2020-06-16 14:42     ` Luke A. Guest
2020-06-16 15:21       ` Dmitry A. Kazakov
2020-06-16 15:43         ` Luke A. Guest
2020-06-16 16:11           ` Dmitry A. Kazakov
2020-06-16 14:40   ` Luke A. Guest
2020-06-16 18:19 ` Tero Koskinen [this message]
2020-06-17 12:37   ` Luke A. Guest
2020-06-17 14:01     ` Niklas Holsti
2020-06-17 15:17       ` Luke A. Guest
2020-09-03 10:32 ` c+
2020-09-13 13:36 ` patelchetan1111992
2020-09-19 14:08 ` erchetan33
2020-09-28 11:36 ` yhumina stir
replies disabled

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