From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b865518fde7413cd,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1993-03-01 17:02:22 PST Newsgroups: comp.lang.ada Path: sparky!uunet!enterpoop.mit.edu!ira.uka.de!news.dfn.de!tubsibr!postnntp From: hestermeyer@ida.ing.tu-bs.de (Andreas Hestermeyer) Subject: Grouping data from different modules together Message-ID: <1993Mar1.153217.3290@ibr.cs.tu-bs.de> Sender: postnntp@ibr.cs.tu-bs.de (Mr. Nntp Inews Entry) Organization: Inst. f. DV-Anlagen, TU Braunschweig, Germany Date: Mon, 1 Mar 1993 15:32:17 GMT Date: 1993-03-01T15:32:17+00:00 List-Id: We are designing software for small space borne control systems of scientific experiments on spacecrafts. Because of the radiation environment, one main goal is to keep the amount of memory needed, especially the ROM memory, as small as possible. One possible contribution to small code is to group data from several modules with the same functional semantics together in memory and let another, centralized, module use the data. Examples for such data groups are address lists of initialization functions, error counters, configuration data. Whereas the data defining modules know the inidividual meaning of each data item in a group, a system module may only know the structure and basic semantics of each item and know nothing about the individual meaning. I.e. the system initialization code would run through the list of initialization function addresses and call each initialization function. Or a reconfiguration module would take the block of configuration data and store it in a permanent powered RAM (without knowing about each individual item). An error checking module could cyclically browse through the block of error counters and notify any changes in the outgoing datastream. So far for the basic concept. To be efficient, all items of a group should be allocated an undivided space in memory. It is usually very easy to define such GROUPS in assembler language and have the linker taking care of grouping the data together. So each data item can be defined in the source code file of the module it belongs to. No extra source file, where all data items of a group would be defined together, is needed and this serves the aspects of modularization and independance very well. Is there any language construct in C,C++,PASCAL,Modula or ADA to support such data groups ? I haven't found any. If not : why didn't anybody invent such things ? Comments to this are welcome. Andreas Hestermeyer internet : hestermeyer@ida.ing.tu-bs.de