Gast
#4617219
Hallo miteinander, ich benutzeeinen STM32f429 mit 2Mbyte Flash und 256kbyte RAM und den Keil Compiler. Ich sample 32bit Werte mit einer Frequenz von 96kHz. Das würde ich nun gerne möglichst lang machen. Das Program macht folgendes: Nach einem Trigger fängt der externe ADC an zu samplen und sendet die Daten via I2S an den uC. Dieser schreibt sie dann mittels DMA in eine variable BUFFER. Sobald BUFFER voll ist werden die Daten mittels Ethernet versendet. Es ist nun wichtig dass BUFFER möglichst groß ist. Die einfache Rechnung (aber natürlich falsche Rechnung) ist 2MB/4/96000=5s sampling Zeit. Eine oder zwei Sekunden wären aber auch schon super. #define ADCBUFFER_LENGTH 55000 uint16_t I2SBuffer[ADCBUFFER_LENGTH]; Das geht im Moment gut allerdings nur bis genau 75207. Dann fangen die Fehler an. .\Objects\UC1_Test.axf: Error: L6220E: Execution region RW_IRAM1 size (196616 bytes) exceeds limit (196608 bytes). Region contains 15 bytes of padding and 0 bytes of veneers (total 15 bytes of linker generated content). Ist es mit meiner HW möglich ein array mit beispielsweiße #define ADCBUFFER_LENGTH 800000 anzulegen? Wo wird die Variable im Moment gespeichert? Benutze ich den Flash über haupt? Brauch ich einen externen Flash? Sorry aber ich habe im Moment gar keine Ahnung. Wäre auch dankbar über Tipps/Links wo man solche Dinge nachlesen kann. Vielen Dank schon mal