Forum: Mikrocontroller und Digitale Elektronik Laufzeitfehler Raspberry Pi Simulink, Audio Signalverarbeitung


von Levy (levo2322)


Angehängte Dateien:

Lesenswert?

Hallo Liebe Leute,

Ich versuche gerade eine zweikanälige Audioverarbeitung über Simulink 
auf externe Hardware in Form eines Raspberry Pis zum Laufen zu bringen.

Ich verwende hierfür zwei USB Mikrofone welche an den USB-Ports des Pis 
angeschlossen sind und eine IQaudioDAC AMP+  Audiokarte an denen ich 
zwei LSP angeschlossen habe.

Die Lautsprecher haben dabei die gleiche Hardwareadresse, da es die der 
Audiokarte ist.

Nun bekomme ich jedoch folgende Fehlermeldung:

Error:A run-time error is encountered when running External mode 
simulation on the Raspberry Pi hardware. This usually occurs when a 
hardware resource, such as a web camera or an audio card, is not 
available or configured incorrectly. The log file, 
/home/pi/MATLAB_ws/R2023a/G_id.log, storing model diagnostic information 
on the Raspberry Pi hardware has the following content: **** Starting 
the application ****
free(): double free detected in tcache 2

Die Meldung "free(): double free detected in tcache 2" deutet auf einen 
Speicherfehler hin, dass eine Speicherfreigabeoperation (ein "free" 
Aufruf) zweimal auf denselben Speicherblock angewendet wurde. Dies ist 
ein häufiger Fehler in C- oder C++-Programmen und kann zu undefiniertem 
Verhalten oder Abstürzen des Programms führen.

Nun wollte ich fragen, wie ich dieses Problem lösen könnte?
Wohlgemerkt hatte es zuvor funktioniert.

Es ist wichtig, dass beide Lautsprecher separat bleiben und nicht in 
einem Block zusammengefasst werden, da ich dies für ein größeres Modell 
benötige.

Treiber und Hardware habe ich überprüft, eventuell könnte ich eine 
andere Audiokarte verwenden.

Hat jmd noch nützliche Tipps oder das selbe Problem gehabt?

LG

von Peter (pittyj)


Lesenswert?

Die Üblichen Stati:
Was sagt dmesg?
Was sagt lsusb?
Manche SW kommt nicht klar, wenn die gleiche Hardware doppelt 
angeschlossen wird. Funktioniert das mit nur einem Sender/Emfänger?

von Levy (levo2322)


Lesenswert?

Mit einem Sender und Empfänger habe ich keine Probleme.
lsusb zeigt mir an, dass zwei USB Mikrofone angeschlossen sind:
 lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 003: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg zeigt folgendes an:
dmesg | grep -i iqaudio
[    8.160415] snd-rpi-iqaudio-dac soc:sound: 
snd_rpi_iqaudio_gpio_unmute: un-muting amp using GPIO22

Die Audiokarte scheint erkannt zu sein.

von Motopick (motopick)


Lesenswert?

Wie es scheint, brauchst du 2 Ausgabemodule solange du deiner
verwendeten Software nicht klarmachen kannst, dass da eigentlich
2 Kanaele verwendbar sind.
Nur wird das mit 2 Ausgabemodulesn nicht sehr phasentreu :) werden.

von Levy (levo2322)


Lesenswert?

Merkwürdigerweise hat es in der Vergangenheit geklappt.

Wenn ich im Pi-Terminal die Soundkarte teste, funktionieren beide 
Kanäle.

Auch in Simulink hatte es zuvor mal geklappt, da hatten beide 
Lautsprecher ein Signal gleichzeitig gesendet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.