Aufrufen einer Inline-Assembler Funktion

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
DerSuchende
User
Beiträge: 31
Registriert: Montag 21. Februar 2011, 07:37

Im Netz gibt es mehrere simple Beispiele, die ich einfach mal ausprobieren wollte. Wie z.B.

Code: Alles auswählen

@micropython.asm_thumb
def fun():
    movw(r0, 42)

print(fun()) # you will see it print out 42.
Beim aufrufen einer Inline-Assembler Funktion kommt immer Decorator nicht bekannt. Habe es noch mit
einem anderen Decorator versucht, nix. Da ich mit Thonny arbeite, habe ich bewusst die Befehle aus
einem Script heraus gestartet.
Die getesteten Platinen waren RPi-Pico und ESP32 s2.
Nun habe ich versucht, mit import-Befehlen die Schlüsselwörter bekannt zu machen, z.B.
import micropython, hat aber nicht geholfen.
Nun meine Frage:

1. Kann es ein, dass die aktuellen Firmwareversionen keinen Inlineassembler unterstützen?

2. Gibt es andere notwenige Voraussetzungen, die ich nicht beachtet habe?

Jede neue Idee ist willkommen. :-)
Benutzeravatar
__blackjack__
User
Beiträge: 14365
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@DerSuchende: In der MicroPython-Dokumentation ist das nur für das Pyboard dokumentiert, nicht für den Pico oder ESP. Bei ESP wäre es auch komisch, denn das ist ja gar kein ARM-Prozessor.
“It is easier to optimize correct code than to correct optimized code.” — Bill Harlan
DerSuchende
User
Beiträge: 31
Registriert: Montag 21. Februar 2011, 07:37

Habe den Fehler gefunden. Mit dem Pico geht es. Ich musste den movw-Befehl nur etwas ändern auf:
mov(r0, 42)
Meine erste Sorge, dass bereits der Decorator beanstandet wird, war unbegründet. Aber Danke für den Hinweis mit dem ESP, das hatte ich
im jugendlichen Elan ganz verdrängt.
Antworten