Bibliothek beim Linken verändern?

OP #2805478
Lesenswert?
• ▲
▼
Hallihallo,

ich bin gerade dabei, eine mathematische Bibliothek für den MSP430FG4618 
zu schreiben (Varianz, RMS, FFT, Sorts, etc.).

Das klappt soweit ganz gut.

Jetzt habe ich mir mithilfe des msp430-ar Archiver eine statische 
Bibliothek gebaut, die ich nun in der eigentlichen Software als Library 
einbinde.

Da die meisten Funktionen gefenstert sind, und daher anpassbare Arrays 
benötigten, habe ich mir eine Klasse "defines.h" geschrieben:
1
#ifndef DEFINES_H_
2
#define DEFINES_H_
3

4
#ifndef WINDOW_SIZE
5
#define WINDOW_SIZE 64
6
#endif
7

8
#ifndef WINDOW_OVERLAP
9
#define WINDOW_OVERLAP (WINDOW_SIZE >> 1)
10
#endif
11

12
#define WINDOW_MASK (WINDOW_SIZE - 1)

Alle Funktionen benutzen Arrays der Größe "WINDOW_SIZE", welche 
allerdings veränderlich sein sollte.

Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die 
Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein 
beim  Linken der Library in das Hauptprogramm geändert werden kann.

Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?

Eine andere Idee wäre, dass ich verschieden benötigte Libraries 
anfertigte, die dann vom Benutzer einfach selbst gelinkt werden.

Ich habe auch gelesen, dass shared bzw. dynamische Bibliotheken nicht 
unterstützt werden, ist das auch richtig, oder gibt es eine Möglichkeit?


Viele Grüße,
Michael
#2805487
Lesenswert?
• ▲
▼
Michael A. schrieb:

> Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die
> Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein
> beim  Linken der Library in das Hauptprogramm geändert werden kann.

Ist auch so.
In der Lib ist alles bereits kompiliert. So wie es da drinnen steht, so 
wird es benutzt.

> Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?
Natürlich.
Aber das willst du nicht wirklich tun.
Nicht auf einem kleinen µC.



Lass denjenigen, der die Funktionen benutzt das Fenster anlegen. Er muss 
den Bibliotheksfunktionen das zu benutzende Fenster zur Verfügung 
stellen.
OP #2805509
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> Michael A. schrieb:
>
>> Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die
>> Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein
>> beim  Linken der Library in das Hauptprogramm geändert werden kann.
>
> Ist auch so.

Dachte ich mir ;)

>> Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?
> Natürlich.
> Aber das willst du nicht wirklich tun.
> Nicht auf einem kleinen µC.

Dachte ich mir auch ;)

> Lass denjenigen, der die Funktionen benutzt das Fenster anlegen. Er muss
> den Bibliotheksfunktionen das zu benutzende Fenster zur Verfügung
> stellen.

Werde ich nun tun.

Vielen Dank!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.