Forum: Mikrocontroller und Digitale Elektronik Raspberry Pico, Micropython: Frage zum Assembler


von Werner (Gast)


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?

von Dr. MCU (Gast)


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?

von Werner (Gast)


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.

von Dr. MCU (Gast)


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

von Stefan (Gast)


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

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.