Raspberry Pico, Micropython: Frage zum Assembler

Gast #6628423
Lesenswert?
• ▲
▼
Auf meinem Raspberry Pico ist Micropython rp2-pico-20210202-v1.14.uf2 
installiert. Der Controller (RP2040) des Picos ist ein ARM-M0+.

Nun habe ich erwartet, dass der Inline-Assembler des Micropythons so 
funktioniert, wie hier beschrieben: 
https://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutorial/assembler.html

Was jedoch nicht der Fall ist. Das erste Minimalbeispiel für zu einer 
Fehlermeldung:
1
MicroPython v1.14 on 2021-02-05; Raspberry Pi Pico with RP2040
2

3
Type "help()" for more information.
4
>>> @micropython.asm_thumb
5
def fun():
6
    movw(r0, 42)
7
Traceback (most recent call last):
8
  File "<stdin>", line 3, in fun
9
SyntaxError: expecting an assembler instruction
10
>>>

Wer hat den Raspberry Inline-Assembler bereist verwendet und kann mir 
sagen wo das Problem lieht?
Gast #6628461
Lesenswert?
• ▲
▼
Werner schrieb:
> Nun habe ich erwartet, dass der Inline-Assembler des Micropythons so
> funktioniert, wie hier beschrieben:
> https://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutorial/assembler.html

Warum schaust Du in die ranzalte Doku und nimmst nicht die zu der von 
Dir verwendeten aktuellen Version?

> Wer hat den Raspberry Inline-Assembler bereist verwendet und kann mir
> sagen wo das Problem lieht?

Die Fehlermeldung sagt es: Du musst eine Cortex-M0+ Assemblerinstruktion 
verwenden, wie sollte es auch anders gehen?
Gast #6628539
Lesenswert?
• ▲
▼
Dr. MCU schrieb:

> Warum schaust Du in die ranzalte Doku und nimmst nicht die zu der von
> Dir verwendeten aktuellen Version?

Du bist ein echtes Schlauchen. Hier die 1.14: 
https://docs.micropython.org/en/latest/pyboard/tutorial/assembler.html

> Die Fehlermeldung sagt es: Du musst eine Cortex-M0+ Assemblerinstruktion
> verwenden, wie sollte es auch anders gehen?

Wie ich schon schrieb, du bist ein echtes Schlauchen. Eine Hilfe bist du 
nicht.


P. S. Bitte nur antworten, wenn man Erfahrung mit dem Micropython 1.14 
Inlineassembler auf einem Raspberry Pi Picos hat und etwas sachliches & 
fachliches zu meinem Problem schreiben kann. Antworten auf dem Niveau 
des Schlauchens (siehe oben) kann ich nicht gebrauchen.
Gast #6628542
Lesenswert?
• ▲
▼
Werner schrieb:
> Dr. MCU schrieb:
>
>> Warum schaust Du in die ranzalte Doku und nimmst nicht die zu der von
>> Dir verwendeten aktuellen Version?
>
> Du bist ein echtes Schlauchen. Hier die 1.14:
> https://docs.micropython.org/en/latest/pyboard/tutorial/assembler.html

Die kenne ich, aber wieso postest Du so einen uralten Link?

>> Die Fehlermeldung sagt es: Du musst eine Cortex-M0+ Assemblerinstruktion
>> verwenden, wie sollte es auch anders gehen?
>
> Wie ich schon schrieb, du bist ein echtes Schlauchen. Eine Hilfe bist du
> nicht.
>
> P. S. Bitte nur antworten, wenn man Erfahrung mit dem Micropython 1.14
> Inlineassembler auf einem Raspberry Pi Picos hat und etwas sachliches &
> fachliches zu meinem Problem schreiben kann. Antworten auf dem Niveau
> des Schlauchens (siehe oben) kann ich nicht gebrauchen.

Nochmal für Ultra-Doofe:
Mit einem Assembler-Befehl für einen Cortex-M4 wirst Du auf einem 
Cortex-M0+ nix anfangen können.
RTFM!
Vielleicht liest Du einfach erstmal die Doku zum M0+, bevor Du 
sinnbefreit einfach irgendwelche Assembler-Befehle einer der 
mittlerweile in 3-stelliger Anzahl vorhandenen ISAs durchprobierst?


Ansonsten: Dieter Nuhr: ...
Gast #6628688
Lesenswert?
• ▲
▼
Möglicherweis ist nicht nur der Assembler-Befehl falsch. Wenn du das 
Beispiel von der Webseite kopierst musst du vor dem Einfügen am REPL mit 
Strg-E in den Paste-Mode wechseln. Das fünktioniert bei mir in Thonny 
nicht. Einfaches abtippen geht auch nicht, da krieg ich schon nach dem 
Eintippen von "@micropython.asm_thumb" eine Fehlermeldung. Wenn ich aus 
Thonny die System-Shell starte funktioniert es darin.
Wenn ich die paar Befehle als Script speicher, kann ich auch Thonny 
nutzen:
1
@micropython.asm_thumb
2
def fun():
3
    mov(r0, 42)
4
    
5
print(fun())
1
MicroPython v1.14 on 2021-02-02; Raspberry Pi Pico with RP2040
2

3
Type "help()" for more information.
4
>>> %Run -c $EDITOR_CONTENT
5
42
6
>>>

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.