Mein Raspberry Pi Pico rp2040 meldet Speicher Probleme

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • hallo,

    Adafruit CircuitPython 6.2.0 on 2021-04-05; Raspberry Pi Pico with rp2040

    Programmgröße: 1600 Zeilen code und 38k groß

    bei 150768 freiem Speicher kommt diese Fehlermeldung.

    MemoryError: Speicherzuordnung fehlgeschlagen, Zuweisung von 2204 Bytes.

    kann mir jemand helfen?

  • Mein Raspberry Pi Pico rp2040 meldet Speicher Probleme? Schau mal ob du hier fündig wirst!

  • siha49 Was macht das Programm? Wobei genau kommt der `MemoryError`? Woher stammt die Information mit den 150.768 Bytes freiem Speicher? Ist das wirklich der freie Speicher direkt vor der Operation, die zu dem `MemoryError` führt, oder passiert dazwischen noch etwas? Falls ja, was?

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • hi,

    das programm

    def insel19():

    print("aktiv")

    led.value = True

    m.move(-2600, -1500, 0)

    time.sleep(1)

    m.move(442, 722, 0)

    time.sleep(1)

    die speicheranzeige, import gc, print(gc.mem_free())

    Beim Thonny Start: skript ausführen

    MemoryError: Speicherzuordnung fehlgeschlagen, Zuweisung von 2204 Bytes

    >>> %Run -c $EDITOR_CONTENT

    150768

    Was ich nicht verstehe ist, das bei 4x64kb Speicher die Fehlermeldung kommt.

    Ich bin extra von Arduino Mirco wegen nur 28k Speicher zum Pico 256k Speicher gewechselt

  • Moin siha49,

    erstmal: Herzlich Willkommen im Forum!

    um dein Problem einzugrenzen, solltest du den kompletten Code hier einstellen.

    Und dann, bitte, in Codetags. Dazu muss man nur in der Editorleiste diesen Button </> drücken. Es sollte dann so aussehen.

    Code
    import irgendwas

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin siha59,

    dann lese das mal:

    Zitat

    What is a MemoryError?

    Memory allocation errors happen when you're trying to store too much on the board. The CircuitPython microcontroller boards have a limited amount of memory available. You can have about 250 lines of code on the M0 Express boards. If you try to import too many libraries, a combination of large libraries, or run a program with too many lines of code, your code will fail to run and you will receive a MemoryError in the serial console (REPL).

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • siha49 In einem Modui? Das wäre in jedem Fall zu viel. Also nicht mal wegen Speicher, sondern dass das einfach nach deutlich zu viel Code für ein Modul klingt. Steigt da ein Leser noch durch? Und ist das überhaupt notwendig? `insel19()` klingt als wenn es da mindestens noch 18 andere solcher ”Funktionen” gibt, und das klingt nach einem „code smell“. Beispielsweise das da Code anstelle von Daten verwendet wird.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Moin siha49,

    du hast sicherlich mpy Versionen als Libraries genommen, weil kleiner...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • danke erstmal für die Infos.

    ja, die Libraries sind die adafruit-circuitpython-hid-6.x-mpy-5.0.0.zip

    Habe mein Programm nun umgeschrieben auf nur noch 1200 Code Zeilen, 22k Programm.

    ein Problem habe ich noch. Der Pico circuitpython-hid soll ja nur mit einem 5V-Usb-Akku gespeist werden.

    Mit CircuitPython habe ich nichts gefunden, wie das machbar ist.

    Bei micropython funktioniert das , nur da gibt es kein HID.

    Bin für jede Idee dankbar

  • Moin siha49,

    damit wir klarer sehen. Der Pico soll als HID funktionieren?

    Und damit wir nicht alle lesen müssen, was funktioniert den bei micropython?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • moin,

    ja, der Pico soll als HID und mit LCD ssd1306 funktionieren.

    Bei micropython funktioniert LCD ssd1306.

    Bei circuitpython funktioniert LCD ssd1306 und HID , aber nur mit USB Anschluß mit Thonny

    Der Pico soll als Standalone laufen.

    2 Mal editiert, zuletzt von siha49 (6. Juni 2021 um 09:47) aus folgendem Grund: korrektur und ergänzt

  • Moin siha49,

    das versteh ich nicht!

    Du kopierst mit Thonny dein Programm in das CIRCUITPY und dann soll das Programm sofort starten.

    Beende mal Thonny und stecke den Pico einfach an ein USB-Schnittstelle.

    Was passiert dann?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin siha49,

    Danke für die Rückmeldung!

    Manchmal sollte man sich mit den Dingen beschäftigen die man einsetzt.

    Dann, bitte, nach dein Thema als erledigt markieren. Das geht oben bei "Thema bearbeiten".

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • ps915 30. Januar 2024 um 19:50

    Hat das Label Pico hinzugefügt.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!