Speicherverwaltung eines Dsp-Microcontrollers



  • Hallo,

    Ich möchte ein 16 zelliges Batteriesystem überwachen. Die nötige Hardware hab ich schon aufgebaut: Die Spannungen werden mit einem AD-Wandler digitalisiert und über SPI-Bus an einen DSP vom Texas Instruments übegeben.
    Ich will den DSP in C programmieren, habe aber nur wenig Erfahrung. Bisher habe ich außschließlich in Java programmiert.
    Nun meine Frage:
    Wie speicher ich die aufgenommenen Spannungen am besten ab.
    Gibt es in C so etwas wie dynamische Arrays ?
    Ich möchte gerne pro Messung die Zeit + 16 Blockspannungen abspeichern.

    Bin sehr dankbar für Anregungen.



  • wenn du das grosse glueck hast, fuer dein dsp einen compiler zu finden, der dir malloc() und free() bietet, dann... hast du glueck.
    ansonsten auto-arrays (die "normalen")

    int *dynarray = malloc(sizeof(int) * 1234);
    int autoarray[1234];
    /* was machen... */
    free(dynarray);
    


  • Vielen Dank erst mal.

    Laut Dokumentation des Compilers Umfasst seine Bibliothek aucv stdlib.h .
    Trotzdem gibt er beim Kompilieren eine Fehlermeldung :
    "syntax error at or near symbol 'int' "

    Ich hab die stdlib.h im header mit

    #include <stdlib.h>

    eingebunden.

    Dann hab ich mit

    void *malloc(size_t size);

    den Prototyp eingegeben und in main{}

    int *dynarray = malloc(sizeof(int) * 1234);
    int autoarray[1234];
    /* was machen... */
    free(dynarray);
    

    eingegeben. Da er bei der include Anweisung keinen Fehler ausgibt, gehe ich davon aus, dass die bib. verhanden ist.

    Hab ich einen Fehler gemacht ?



  • lass den prototypen weg, der gehoert zum c standard.

    http://www.pronix.de/pronix-4.html



  • ich weiss ja nicht wie das bei den ti-dsp's ist, aber meistens musste noch deine speicherverwaltung irgendwo initialisieren, also der zumindest mitteilen welche ram-adressen sie benutzen soll, sonst compiliert zwar alles, aber das programm stürzt trotzdem ab. du hast ja eigentlich ein array fester grösse, da bietet sich schon eher ein globales oder static array an. (besser keins auf dem stack, weil der stack ist sicher recht klein und das kann auch schnell schief gehen).
    btw: dieses board wird meist von pc-freaks und theoretikern besucht. wenn du irgendwelche fragen zu embedded-kram hast, dann guck mal da: http://www.mikrocontroller.net/


Anmelden zum Antworten