Mein Raspberry Pi Pico rp2040 meldet Speicher Probleme

  • 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?

  • 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?

    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.” — Edsger Dijkstra

  • 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.

  • Moin siha59,


    dann lese das mal:

    Quote

    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.

  • 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.

    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.” — Edsger Dijkstra

  • 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.

  • 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.

    Edited 2 times, last by siha49: 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.

  • 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.